Skip to main content

Davet Yaşam Döngüsü ve Token Güvenliği

Kural

Her davet zorunlu geçerlilik-süresi taşır (varsayılan 7 gün; süresiz davet üretilemez). Süre-parametresi yalnız yetkili Control-Plane üzerinden değiştirilebilir ve güvenlik-politikasıyla belirlenmiş SONLU bir aralık içinde kalır (exact min/max NFR/configuration-contract'ta belirlenir; fiilen-süresiz değer aralık-dışıdır). Politika-değişikliği ileriye-dönüktür: mevcut davetleri sessizce uzatmaz — davetin expires_at değeri üretim anında materialize edilir ve yalnız açık cancel/resend/supersede işlemiyle değişir. Süre-parametresi değişikliği audit edilir. Davet-token'ı tek kullanımlıktır. Expired/cancelled davet kabul edilemez. Resend yeni token üretir ve eskisini geçersizleştirir. Davet edilen kimlik ile kabul eden kimlik uyuşmuyorsa (identity-mismatch) sistem güvenli akış ister; sessiz otomatik-bağlama yapılmaz. Token-enumeration/brute-force denemeleri rate-limit edilir.

Sonuç-durum adları (expired/cancelled/accepted vb.) normatif semantik sonuç sınıflarıdır; fiziksel enum/API adları değildir.

Gerekçe

Davet-token'ı fiilen bir erişim-kapısı anahtarıdır. Süresiz, çok-kullanımlı veya tahmin-edilebilir token; hesap ele geçirme ve yetkisiz üyelik üretiminin en kısa yoludur.

Test edilebilir hükümler

  • Süresi geçmiş davetin kabul denemesi RED döner.
  • Kullanılmış token ile ikinci kabul denemesi RED döner ve ikinci membership üretmez.
  • Resend sonrası eski token RED döner; yalnız yeni token geçerlidir.
  • Davet edilen kimlikten farklı bir hesapla kabul denemesi otomatik-üyelik üretmez; güvenli-akış (açık kullanıcı-kararı) tetiklenir.
  • Ardışık geçersiz-token denemeleri rate-limit'e takılır (deneme-sayısı sınırı doğrulanabilir).
  • Geçerlilik-süresi yalnız yetkili Control-Plane'den değişir; aralık-dışı veya "süresiz" değer RED döner.
  • Süre-politikası değişikliği sonrası mevcut davetin expires_at değeri değişmemiştir (prospective-effect testi); değişiklik audit-izi bırakır.

Kapsam

Davet üretim + kabul + iptal + resend akışlarının tamamı. Kapsanan UC'ler: UC-13/UC-25 (devralınan, CAN-REQ-UCG-005) + UC-OAM-005/006 arayüzü. Duplicate/çelişki-kontrolü: CAN-REQ-RULE-011.