Skip to main content

Organization Erişim Baseline'ı (Access Decision Contract'a Tabi)

Kural

Etkin Organization erişimi, üst-doktrinin Access Decision Contract'ına tabidir (CAN-STR-DOCTRINE-001); Code-Security-Ceiling, Entitlement ve Visibility eksenleri o sözleşmede yaşar ve bu kayıtla sessizce dışlanmaz:

UCG-013 ORGANIZATION ACCESS BASELINE
IS EVALUATED INSIDE
CAN-STR-DOCTRINE-001 ACCESS DECISION CONTRACT

UCG-013'ün altı organization-ekseni bu sözleşmenin organization-baseline'ını oluşturur:

ACTIVE MEMBERSHIP ∩ ROLE/CAPABILITY ∩ ASSIGNMENT/RESOURCE-SCOPE
∩ POLICY ∩ WORKSPACE/TENANT-MATCH ∩ RESOURCE/WORKFLOW-STATE

Uygulanabilir her eksen açıkça ALLOW / NEUTRAL / DENY / UNKNOWN sonucuna çözülür. Bir eksen yalnız ilgili Rule tarafından uygulanamaz olarak tanımlanmışsa açık NEUTRAL olabilir; eksik veya UNKNOWN eksen fail-closed DENY üretir:

NOT APPLICABLE = EXPLICIT NEUTRAL
MISSING / UNKNOWN ≠ NEUTRAL

Hiçbir tekil eksen tek başına erişim veremez. users.tenant_id alanı authorization kaynağı (SoT) değildir. UI-görünürlüğü (menü, buton, ekran-durumu) authorization değildir; her karar server-side yeniden türetilir ve uygulanır.

Gerekçe

Erişim tek bileşenden (ör. yalnız rol veya yalnız tenant-alanı) türetilirse membership/assignment/context ayrımı çöker; stale veya sahte tek-sinyal yetki sızıntısı üretir.

Test edilebilir hükümler

  • Uygulanabilir bir eksen sağlanmıyorken korumalı işlem DENY döner.
  • Uygulanamaz-tanımlı eksen açık NEUTRAL olarak çözülür; eksik/UNKNOWN eksen-değerlendirmesi hiçbir yoldan ALLOW üretemez (fail-closed DENY).
  • users.tenant_id değeri tek başına hiçbir korumalı işlemi geçiremez.
  • UI'da gizlenmiş bir aksiyonun endpoint'i doğrudan çağrıldığında server-side RED döner.
  • Erişim kararı istek anında server-side türetilir; istemci beyanı karar girdisi değildir.

Kapsam

Tüm organization-scoped okuma/yazma yüzeyleri (admin-panel + API + frontend-BFF). Kapsanan UC'ler: UC-OAM-001/004/007 (görünüm-yetkisi) + tüm mutation-UC'lerinin yetki-önkoşulu. Karar-sunum ayrımı (HIDE/LOCK) bu kuralın dışıdır (Access-Decision-Contract hattı).