Ana içeriğe geç

Güvenlik Modeli#

Bu doküman, keysis entegrasyonunda güvenlik sorumluluklarının nasıl dağıldığını açıklar.

Sorumluluk Dağılımı#

keysis (Identity Provider / Authorization Server)#

  • Kullanıcı doğrular (authentication)
  • Token üretir ve imzalar (ID Token / Access Token / Refresh Token)
  • Claim ve scope politikalarını uygular
  • SSO / MFA gibi kimlik politikalarını yönetir

Uygulama (OAuth2 Client)#

  • Authorization Code Flow'u başlatır
  • Authorization code'u token ile değiştirir
  • Token’ları güvenli şekilde kullanır
  • Security context ve session yönetimini kurar

Token Türleri (OIDC)#

  • ID Token: kullanıcı kimliğini temsil eder (OIDC)
  • Access Token: resource server çağrılarında kullanılır
  • Refresh Token: access token yenileme için kullanılır (policy’ye bağlı)

Session Yönetimi#

  • OAuth2 login sonrası oluşan kullanıcı oturumu, Spring Session mekanizması ile yönetilir.
  • Session verileri:
    • Varsayılan olarak in-memory
    • Redis profili aktifken Redis üzerinde saklanabilir.

Session saklama şekli, kimlik doğrulama sürecini değil, oturumun sürekliliğini etkiler.

Yetkilendirme (Authorization)#

  • Uygulama tarafında yetkilendirme, token içeriğindeki claim/scope/role bilgilerine göre yapılır.
  • “Kimlik doğrulama” keysis’te, “yetki kontrolü” uygulama/resource server tarafında uygulanır.

Logout Desteği (OIDC)#

hvl-oauth-oidc-client, OpenID Connect Logout spesifikasyonuna uygun logout senaryolarını destekler.

Front-Channel Logout#

  • Logout işlemi kullanıcı tarayıcısı üzerinden başlatılır.
  • keysis, tanımlı front-channel logout URI’lerine yönlendirme yapar.
  • Uygulama, ilgili kullanıcıya ait HTTP session’ı sonlandırır.

Back-Channel Logout#

  • Logout isteği keysis tarafından sunucu–sunucu (server-to-server) çağrı ile iletilir.
  • Kullanıcı etkileşimi olmadan aktif oturumlar geçersiz kılınır.
  • Dağıtık (cluster) yapılarda tutarlı logout sağlanır.

Logout mekanizmaları, kullanıcı doğrulama sürecini etkilemez; yalnızca login sonrası oluşan oturum ve token yaşam döngüsünü yönetir.

“Client” Terminoloji Notu#

Bu bölümde geçen OAuth2 Client, OAuth2 standardındaki “Client” rolüdür. Modül altındaki “İstemci API (Client)” dokümanı ise Feign Client kullanımını anlatır.