OIDC oturum yönetimi
Bu makale, OIDC oturumlarının ve kullanıcı kimlik doğrulama durumunun IdP ve SP arasındaki etkileşimler bağlamında nasıl yönetildiğini açıklar.
OIDC oturum yönetimi nedir
OpenID Connect (OIDC), OAuth 2.0 protokolünün üzerine inşa edilmiş basit bir kimlik katmanıdır. Müşterilerin, yetkilendirme sunucusu tarafından gerçekleştirilen kimlik doğrulamasına dayanarak son kullanıcının kimliğini doğrulamasına ve temel profil bilgilerini taşınabilir ve REST-benzeri bir şekilde elde etmesine olanak tanır.
OIDC, kullanım ve uygulama kolaylığı hedeflenerek tasarlanmıştır, basitlik ve esnekliğe odaklanır. Web uygulamaları, mobil uygulamalar ve API'ler için tek oturum açma (SSO) ve kimlik doğrulamada yaygın olarak kullanılır.
OIDC'de kimlik doğrulama durumu ve oturum yönetimini anlamak önemlidir. Bu makale, Kimlik Sağlayıcı (IdP) ve Dayanan Taraf (RP) veya Hizmet Sağlayıcı (SP) arasındaki etkileşimler bağlamında OIDC oturumlarının ve kullanıcı kimlik doğrulama durumunun nasıl yönetildiğini açıklar.
Bu makale birkaç önemli terimi içerir.
- Kimlik Sağlayıcı (IdP): Kullanıcı kimliklerini depolayan ve kimlik doğrulamalarını gerçekleştiren servis.
- Hizmet Sağlayıcı (SP) veya Dayanan Taraf (RP): Kullanıcılara hizmet sağlayan ve kullanıcı kimlik doğrulaması için IdP'ye güvenen bir web uygulaması veya hizmeti.
- Oturum Açma Oturumu veya Kimlik Doğrulama Oturumu: Bir kullanıcının IdP'ye giriş yaptığında kurulan oturum.
- Yetkilendirme: IdP tarafından oluşturulan ve yönetilen merkezi kullanıcı kimlik doğrulama ve yetkilendirme bilgisi.
- Tek Oturum Açma (SSO): Kullanıcının birden fazla uygulamaya tek bir giriş bilgisi (örneğin, ad ve şifre) ile erişmesine izin veren bir oturum ve kullanıcı kimlik doğrulama hizmeti.
OIDC kimlik doğrulama akışı nasıl çalışır
OIDC oturum ve kullanıcı kimlik doğrulama durumunun yönetimini daha iyi anlamak için, bir web uygulaması için OIDC kimlik doğrulama akışını kısaca inceleyelim:
- Kullanıcı web uygulamasına (RP) erişir.
- RP, kullanıcıyı kimlik doğrulama için OIDC sağlayıcısına (IdP) yönlendirir.
- OIDC sağlayıcı, kullanıcının oturum açma durumunu kontrol eder. Eğer oturum yoksa veya oturum süresi dolmuşsa, kullanıcı oturum açmaya yönlendirilir.
- Kullanıcı, oturum açma sayfasıyla etkileşim kurarak kimliğini doğrular.
- Oturum açma sayfası, etkileşim sonucunu OIDC sağlayıcısına gönderir.
- OIDC sağlayıcı, kullanıcı için yeni bir oturum açma oturumu ve kimlik doğrulama yetkisi oluşturur.
- OIDC sağlayıcı, kullanıcıyı RP'ye kimlik doğrulama kodu ile geri yönlendirir (Yetkilendirme Kodu akışı).
- RP, kimlik doğrulama kodunu alır ve kullanıcı bilgilerine erişmek için tokenler ile değiştirir.
RP oturum açma oturumu yönetimi nedir
Bir kullanıcı IdP'ye oturum açtığında bir oturum açma oturumu kurulmuştur. Bu oturum, kullanıcının IdP'deki kimlik doğrulama durumunu izlemek için kullanılır. Oturum genellikle kullanıcının kimliği, kimlik doğrulama zamanı ve oturum süresi dolum zamanını içerir. Kullanıcı ilk oturum açtığında oluşturulur ve kullanıcı çıkış yapana kadar veya oturum süresi dolana kadar devam ettirilir.
Bir oturum çerezi, kullanıcı tarayıcısında oturum durumunu sürdürmek için güvenli bir şekilde ayarlanacaktır. Oturum çerezi, kullanıcının oturumunu belirlemek ve sonraki kimlik doğrulama istekleri için kullanıcıyı doğrulamak için kullanılır. Bu çerez genellikle HttpOnly
ve Secure
bayrakları ile ayarlanır, böylece istemci tarafı erişimi engellenir ve güvenli iletişim sağlanır.
Tek RP için bir oturum
Kullanıcının farklı cihazlar veya tarayıcılar üzerinden eriştiği her RP için ayrı bir kullanıcı oturum açma oturumu kurulacaktır. Bu, kullanıcının kimlik doğrulama durumunun her RP için ayrı ayrı sürdürüldüğü anlamına gelir. Kullanıcı bir RP'den çıkış yapsa bile, diğer RP'lerde hala kimlik doğrulanmış durumda kalır, oturum süresi dolana kadar veya tüm RP'lerden çıkış yapana kadar.
Birden çok RP için merkezi oturum
Bu merkezi oturum yönetimi, IdP'nin kullanıcının oturumu aktif olduğu sürece ve kimlik doğrulama istekleri aynı kullanıcı ajandan (cihaz/tarayıcı) geldiği sürece birden çok RP arasında tutarlı bir kimlik doğrulama durumu sürdürmesine olanak tanır. Bu mekanizma, kullanıcıların tekrar oturum açmak zorunda kalmadan birden fazla RP'ye erişmesine olanak tanıyan SSO yeteneklerini etkinleştirir.
İstemci tarafı kimlik doğrulama durumu
OIDC'de, istemci uygulama (RP), kullanıcının kimliğini ve kimlik doğrulama veya yetkilendirme durumunu doğrulamak için IdP tarafından verilen verilere güvenir. İstemci tarafındaki "oturum açma oturumu", IdP tarafından verilen verilere dayalı olarak korunur.
- Kimlik Doğrulama Belgesi: Kullanıcı bilgilerini içeren ve doğrulanan kullanıcının kimliğini doğrulamak için kullanılan kısa ömürlü bir belge.
- Erişim Belgesi: Kullanıcı adına korumalı kaynaklara erişim sağlayan bir belge. Erişim belgesinin ömrü, yapılandırmaya bağlı olarak kısa veya uzun ömürlü olabilir. İstemci uygulamaları, kullanıcının kimlik doğrulama durumu için erişim belgesinin geçerliliğine güvenebilir. Erişim belgesi süresi dolduğunda veya temizlendiğinde, kullanıcı "çıkış yapmış" veya "kimliği doğrulanmamış" olarak kabul edilebilir ve yeniden kimlik doğrulaması yapması gerekebilir.
- Yenileme Belgesi:
offline_access
kapsamı talep edilip kabul edilirse, istemci uygulama bir yenileme belgesi alabilir. Kullanıcının kimlik doğrulama durumunu yeniden kimlik doğrulama yapmaya gerek kalmadan uzatmanın bir yolunu sağlar. Geçerli erişim belgesi sonlandığında istemci uygulama yeni bir erişim belgesi almak için yenileme belgesini kullanabilir. Yenileme belgesi geçerli oldukça, kullanıcının kimlik doğrulama durumu kullanıcı etkileşimine ihtiyaç duymadan sürdürülebilir.
Bu belgelerin birleşimi, istemci uygulamanın kullanıcının kimlik doğrulama durumunu sürdürmesine ve kullanıcı adına korumalı kaynaklara erişmesine olanak tanır. İstemci uygulama, bu belgeleri güvenli bir şekilde saklamalı ve yaşam döngülerini yönetmelidir. (Örn. SPA uygulamaları için, belgeler tarayıcının yerel deposunda veya oturum deposunda saklanabilir. Web uygulamaları için, belgeler sunucu tarafı oturum verilerinde veya çerezlerde saklanabilir.)
OIDC oturumdan çıkış mekanizmaları
OIDC'deki oturumdan çıkış süreci, hem merkezi IdP tarafından yönetilen oturum açma oturumlarının hem de dağıtılmış istemci tarafı belgelerinin katılımı nedeniyle çok yönlü bir konsepttir.
İstemci tarafında belgeleri ve yerel oturumu temizleme
İstemci tarafındaki bir kullanıcının kimlik doğrulama durumunu kapatmak veya iptal etmek, nispeten basittir. İstemci uygulama, kullanıcının tarayıcısından veya belleğinden depolanmış belgeleri (Kimlik doğrulama belgesi, erişim belgesi ve yenileme belgesi) kaldırabilir. Bu işlem, kullanıcı oturumunun istemci tarafında geçersiz kalmasını etkili bir şekilde sağlar.
Kendi kullanıcı oturum açma oturumlarını yöneten web uygulamaları için ek adımlar gerekebilir. Bunlar, merkezi kimlik sağlayıcıdan (IdP) veya IdP tarafından verilen belgeler gibi herhangi bir oturum verisini (ör. oturum bilgileri) temizlemeyi ve kullanıcıyı tamamen çıkış yaptırmayı içerir.
IdP'deki merkezi oturum açma oturumunu temizleme
IdP, her kullanıcı için merkezi bir oturum açma oturumu yönetir. Bu oturum aktif olduğu sürece, kullanıcı istemci tarafındaki belgeler temizlense bile otomatik olarak yeniden kimlik doğrulamaya tabi tutulabilir, bu da kullanıcının IdP ile tekrar etkileşime gerek kalmadan müşteri uygulamasına yeni belgeler verilmesine izin verir.
Kullanıcıyı IdP'den tamamen çıkış yaptırmak için müşteri uygulaması (RP) bir çıkış isteği gönderebilir. Uygulama (RP), kullanıcıyı oturum bitiş noktası ya da oturum açma oturumunu sonlandırmak için IdP'ye yönlendirmelidir ve oturum çerezlerini temizlemelidir. Bu, aynı merkezi oturumu paylaşan tüm uygulamalar (RP'ler) arasında tam bir çıkış sağlar. Oturum açma oturumu sonlandırıldıktan sonra, IdP aynı oturumu paylaşan herhangi bir bağlı RP'den bir belge isteği aldığında, kullanıcıyı yeniden kimlik doğrulama yapmaya yönlendirir.
OIDC arka kanal çıkışı
Bazı durumlarda, bir kullanıcı bir uygulamadan (RP) çıkış yaptığında, tüm diğer uygulamalardan (RP'ler) da otomatik olarak çıkış yapmak isteyebilir. Bu, arka kanal çıkışı mekanizması kullanılarak gerçekleştirilebilir.
IdP, bir RP'den çıkış isteği aldığında, sadece oturum açma oturumunu sonlandırmakla kalmaz, aynı oturumu kullanan ve kayıtlı bir arka kanal çıkışı uç noktasına sahip olan tüm RP'lere de bir arka kanal çıkışı bildirimi gönderir.
RP'ler arka kanal çıkışı bildirimini aldıklarında, kullanıcının oturumunu ve belgelerini temizlemek için gereken adımları atabilirler, bu da kullanıcının tüm uygulamalardan tamamen çıkış yaptırılmasını sağlar.