SSO Nedir
SSO'dan tek bir kullanıcı kimliği ile birden fazla servise (uygulama / web sayfası) erişim sağlayıp kullanma imkanı sağlayan bir konsept olarak bahsedilebilir.Bu konsepti daha iyi anlayabilmek için genelde bu süreç nasıl işliyor buna bir örnek verelim.
- Normalde kullanıcı X bir servisi (uygulama / web sayfası) kullanmak istediğinde o servisin oturum açma ekranıyla karşılaşır, kullanıcı adı şifresiyle giriş yapar ve tarayıcıda bu servis için bir cookie (çerez) oluşur.
- Kullanıcı başka bir servisi kullanmak istediği zaman tekrardan bu servisin oturum açma ekranıyla karşılaşır, kullanıcı adı şifresiyle giriş yapar ve tekrardan tarayıcıda bu servis için cookie oluşturulur ve bu işlem kullanıcının kullanmak istediği servis sayısı kadar tekrarlanır.
Bu durumda kullanıcı her bir servis için ayrı ayrı hesap/şifre oluşturmak ve oturum açmak için vakit harcar. Bu hesapların şifrelerinin belirli zaman aralıklarında değiştirilmeside zaman kaybına ve buna ek olarak kullanıcının aynı şifreyi bütün servisler için kullanmasıda güvenlik zafiyetine sebep olur.
SSO Nasıl Çalışır
SSO konseptinde temel olarak üç tip öğe bulunur. Bunlar;
- Yetkilendirme sunucusu (Identity provider)
- Kullanıcıların bağlandıkları servislerin sunucuları (Server)
- İstemciler (Tarayıcı, Mobil uygulama vb.)
Bir servisi kullanmak isteyen kullanıcı, yetkilendirme sunucusuna (IdP) ait oturum açma sayfasına yönlendirilir genelde kullanıcı adı ve şifresiyle login olur.
MonoSign içerisinde Passwordless Login gibi alternatif oturum açma yöntemleri mevcuttur
Daha sonra sunucu (IdP) tarafından kimlik doğrulama (Authentication) yapılır ve oturuma özel bir anahtar (Session Token) oluşturulur, bu anahtarla beraber kullanıcı kullanmak istediği servisin sayfasına geri yönlendirilir. Oluşturulan bu token ilişkili diğer servisler tarafından da kullanılabilir yani bir kez şifre ile yetkilenen kullanıcı, aynı SSO sistemine ait tüm servislere yetkisi dahilinde tekrar şifre girmeden bağlanabilir.
Kullanıcı aynı SSO sistemine ait bir servise kullanmak istediğinde kullanılacak olan servis, kendisine session token ile gelen kullanıcının/istemcinin tokenını yetkilendirme sunucusu üzerinden kontrol eder ve olumlu yanıt alırsa kullanıcının servisi kullanmasına izin verir, gelen token yetkilendirme sunucusu tarafından onaylanmazsa kullanıcı yetkilendirme sunucusuna ait oturum sayfasına yönlendirilir ve oturum açma işlem tekrarlanır. Bu sayede şifre sadece yetkilendirme sunucusunda kullanılmış olur ve her servis özelinde oturum açma işlemi ile vakit kaybedilmemiş olur.