IdP başlatılan SSO ve SP başlatılan SSO
IdP başlatılan SSO ve SP başlatılan SSO arasındaki farkları ve neden SP başlatılan SSO'nun daha güvenli olduğunu öğrenin.
IdP başlatılan SSO ve SP başlatılan SSO
Terminoloji
- Kimlik Sağlayıcı (IdP): Kullanıcı kimliklerini saklayan ve doğrulayan hizmet.
- Hizmet Sağlayıcı (SP): Kullanıcılara hizmet sunan bir web veya hizmet.
- Tek oturum açma (SSO): Kullanıcının bir dizi oturum açma kimlik bilgilerini (örneğin, isim ve şifre) kullanarak birden fazla uygulamaya erişmesine izin veren bir oturum ve kullanıcı kimlik doğrulama hizmeti.
- SAML: Kimlik sağlayıcı ile hizmet sağlayıcı arasında kimlik doğrulama ve yetkilendirme verilerini değiş tokuşu için açık bir standart olan Güvenlik Beyanı İşaretleme Dili. SSO için yaygın olarak kullanılan bir protokoldür. Kullanıcı IdP tarafından başarıyla doğrulandıktan sonra, IdP SP'ye bir SAML beyanı gönderir, SP bunu doğrular ve kullanıcıya erişim izni verir.
- OIDC: OAuth 2.0 üzerine inşa edilmiş ve IdP tarafından gerçekleştirilen kimlik doğrulama temelinde kullanıcının kimliğini doğrulamak için bir yol sağlayan daha modern ve güvenli bir SSO protokolü olan OpenID Connect. Kullanıcı IdP tarafından başarıyla doğrulandığında, IdP SP'ye JWT biçiminde bir token gönderir, SP bunu doğrular ve kullanıcıya erişim izni verir.
SP başlatılan SSO
Adından da anlaşılacağı gibi, SP başlatılan SSO hizmet sağlayıcı tarafından başlatılır. Kullanıcı, SP'nin web sitesindeki bir kaynağa erişerek kimlik doğrulama sürecini başlatır. SP, kullanıcının kimlik doğrulaması için kullanıcıyı IdP'ye yönlendirir. Kullanıcı doğrulandıktan sonra IdP, bir token (OIDC) ya da SAML beyanı (SAML) oluşturur ve SP'ye geri gönderir. SP token veya beyanı doğrular ve kullanıcıya erişim izni verir.
- Kullanıcı, SP'nin web sitesini ziyaret eder ve bir kaynağa erişmeye çalışır.
- Kullanıcı SSO sağlayıcısının giriş butonuna tıklar (örneğin, Google, Azure AD, Okta, vb.).
- SP, kullanıcıyı kimlik doğrulaması için IdP'ye yönlendirir.
- Kullanıcı IdP'ye giriş yapar.
- IdP, SP'ye bir token veya beyan gönderir.
- SP token veya beyanı doğrular ve kullanıcıya erişim izni verir.
IdP başlatılan SSO
SP başlatılan SSO'nun aksine, IdP başlatılan SSO kimlik sağlayıcı tarafından başlatılır. Kullanıcı kimlik doğrulama sürecini IdP'nin web sitesinden başlatır. Normalde, kullanıcı IdP'nin portalında desteklenen SP uygulamalarının bir listesini bulacaktır. Kullanıcı SP uygulamasına tıklar ve önceden doğrulanmış kimlik ile SP'nin web sitesine yönlendirilir.
- Kullanıcı IdP'ye giriş yapar.
- Kullanıcı IdP'nin portalını ziyaret eder ve bir SP uygulaması seçer.
- IdP, kullanıcının mevcut oturumunu doğrular ve kullanıcıyı önceden doğrulanmış SSO kimliği ile SP'ye yönlendirir.
- SP, SSO kimliğini doğrular ve kullanıcıya erişim izni verir.
IdP başlatılan SSO ve SP başlatılan SSO
IdP başlatılan SSO'nun SP başlatılan SSO'ya göre avantajları
IdP başlatılan SSO, çeşitli üçüncü taraf uygulamalara veya hizmetlere bağlı büyük işletmeler ve organizasyonlar tarafından daha fazla benimsenir. Salesforce, Workday gibi. Kullanıcı erişimini birden fazla uygulamaya yönetmek ve SSO kimlik doğrulamalarını uygulamak için merkezi bir yol sağlar. IdP başlatılan SSO'yu etkinleştirerek, çalışanlar IdP'nin portalından bağlı uygulamalara doğrudan erişebilirler, her uygulamanın web sitesini ziyaret etmek zorunda kalmadan. Kullanıcı deneyimini iyileştirir ve giriş süresini azaltır.
IdP başlatılan SSO'nun SP başlatılan SSO'ya göre riskleri
IdP başlatılan SSO, SP başlatılan SSO'ya göre daha fazla risk taşır.
-
Kimlik doğrulama bağlamının eksikliği: IdP'den başlatılan tüm kimlik doğrulama istekleri isteğe bağlıdır. Böylece, kimlik doğrulama sürecini SP başlatarak, izinsiz erişime kap ı açabilir. Kullanıcının oturumu ele geçirilebilir. Kötü niyetli bir kişi, kullanıcının bilgisi veya izni olmadan kullanıcı adına giriş yapmayı başlatabilir.
-
Oturum sabitleme: SP kimlik doğrulama sürecini başlatmadığı için, kullanıcının oturumu IdP'nin oturumu ile sabitlenebilir. Bu, saldırganın kullanıcının oturumunu IdP'nin oturumuna sabitleyerek, kullanıcının hesabına izinsiz erişim sağlayabileceği oturum sabitleme saldırılarına yol açabilir.
-
Phishing saldırıları: IdP başlatılan SSO, phishing saldırılarına karşı savunmasız olabilir. Kötü niyetli bir kişi, kullanıcıyı sahte bir IdP portalına ziyaret ettirip kullanıcının kimlik bilgilerini çalabilir. Kullanıcı giriş yaptıktan sonra, saldırgan kullanıcıyı önceden doğrulanmış bir kimlikle SP'ye yönlendirebilir.
-
İstek doğrulaması konusunda garanti yok: SP'nin kimlik doğrulama sürecini başlattığı bir SP başlatılan SSO'da, normalde SP, isteğin bütünlüğünü korumak için IdP'ye gerekli güvenlik bilgilerini ekler. SP kimlik doğrulama yanıtını aldığında, bu bilgileri doğrulayıp herhangi bir CSRF saldırısını önlemek için kullanır. Örneğin, OIDC'deki
state
parametresi ve SAML'dekiRelayState
. Ancak, IdP başlatılan SSO'da, SP kimlik doğrulama sürecini başlatmadığı için, SP isteğin doğrulanması konusunda garanti veremez.
IdP başlatılan SSO'nun SP başlatılan SSO'ya göre sınırlamaları
OIDC, yukarıdaki güvenlik açıkları nedeniyle IdP başlatılan SSO'yu desteklemez. OIDC, isteğin bütünlüğünü sağlamak için kimlik doğrulama sürecini SP'nin başlatmasını gerektirir. Kullanıcı üçüncü taraf bir hizmetten kimlik doğrulama sürecini başlatırsa bile, kullanıcı önce kimlik doğrulama sürecini başlatmak için SP'ye yönlendirilmelidir.
Ancak, SAML'de, IdP başlatılan SSO mümkündür. IdP, SP kimlik doğrulama sürecini başlatmadan bir SAML beyanı üretebilir. SAML IdP başlatılan SSO'da, uygun bir RequestID
ve RelayState
olmadan bir SAML beyanı doğrudan SP'nin ACS URL'sine gönderilebilir. SP, bu tür bir beyanı işleyebilmelidir ve kullanıcıya erişim izni vermelidir. (Not: RequestID
ve RelayState
olmadan SP isteğin bütünlüğü konusunda garanti veremez).
Sonuç
IdP başlatılan SSO, kullanıcı erişimini birden fazla uygulamaya merkezi bir şekilde yönetme imkanı sağlasa da, SP başlatılan SSO'ya göre daha fazla risk taşır. SP başlatılan SSO daha güvenlidir ve kimlik doğrulama isteğinin bütünlüğü konusunda daha fazla garanti sağlar. OIDC ve SAML tabanlı SSO için SP başlatılan SSO kullanılması tavsiye edilir.