Skip to main content

Senkron Erişim İptali (Fail-Closed)

Kural

Membership/role/authority mutation'ı commit olduğunda authoritative-authorization gerçeği ANINDA değişir:

SECURITY DENIAL ≠ WAIT FOR OUTBOX

Outbox/event-akışı yalnız secondary yan-etkiler içindir (cache-invalidation, session-cleanup, notification). Mutation-sonrası ilk korumalı istek eski membership/rol gerçeğiyle geçemez; stale session veya cache yetki kaynağı olamaz. Reactivation restore değildir: askı-öncesi yetkiler sorgusuz geri dönmez, mevcut role/policy üzerinden yeniden değerlendirilir.

Gerekçe

Erişim iptali asenkron kuyruğa bağlanırsa, kuyruk gecikmesi kadar bir "hayalet-yetki penceresi" doğar. Güvenlik kararının doğruluğu altyapı-sağlığına bağlanamaz.

Test edilebilir hükümler

  • Revoke/remove/suspend commit'inin hemen ardından (outbox-worker hiç koşmadan) yapılan korumalı istek DENY döner.
  • Askıya alınan üyenin açık oturumu, bir sonraki korumalı istekte eski org-context'e erişemez.
  • Reactivate sonrası yetki-kümesi "askı-öncesi kopya" değil, güncel role/policy türetimidir (fark-üreten senaryoyla test edilir).
  • Outbox-worker'ın durdurulması hiçbir erişim-iptalini geciktirmez (yalnız secondary temizlik gecikir).

Kapsam

Tüm membership/rol/authority mutation'larının erişim-etkisi. Kapsanan UC'ler: UC-OAM-008/009/010/011/013/014 — ownership-transfer (UC-OAM-013) sonrası eski-owner-authority'sinin iptali de bu senkron fail-closed sözleşmeye tabidir. Context-geçiş doğrulaması: CAN-REQ-RULE-020.