AFAIK

Single Sign-On (SSO) Nedir?

Güncelleme:
e-Devlet Kapısı kimlik doğrulama sistemini kullandığınızı varsayıyorum. Güncel durumda sağlık işlemlerinden online bankacılık işlemlerine daha pek çok vatandaşlık işleminde de bu kimlik doğrulama, yetkilendirme (authorization) ...
GÖRSEL

e-Devlet Kapısı kimlik doğrulama sistemini kullandığınızı varsayıyorum. Güncel durumda sağlık işlemlerinden online bankacılık işlemlerine daha pek çok vatandaşlık işleminde de bu kimlik doğrulama, yetkilendirme (authorization) gibi çözümlerinden faydalanabilmekteyiz. Diğer yandan, Facebook ve Twitter gibi sosyal ağlar ve Gmail gibi e-posta servisleri ile de kullanıcı erişimleri sağlanabilmekte. Bu erişimler için kullanılabilecek pek çok denetim / kimlik doğrulaması (authentication) çözümünden faydalanılabilmekte. Adım adım ilerlemek ve bu çözümlerden nasıl faydalanabileceğimize bakmak adına yeni bir yazı serisine başlayalım. Bu anlamda, ilk yazımısın konusu Single Sign-On (SSO).

Ancak, SSO ile odaklanılan çözümü tam olarak anlayabilmek için oturum sürecinin normalde nasıl işlediğine kısaca bir bakalım.

Kullanıcı bir X uygulamasına giriş yapmak istediğinde bu uygulamaya ait bir çerez (cookie) oluşturulur. Paralelde bir diğer uygulamaya (Y diyelim) giriş yaptığında bu defa Y uygulaması için ayrı bir çerez oluşturulacaktır. Çünkü oluşturulacak bu çerezler benzersizdir ve her biri ayrı bir şekilde tarayıcıda işlenir. Kullanıcının aynı kullanıcı bilgilerini kullanması bir değişiklik yaratmaz ve her uygulama için bu süreci tekrarlaması gerekir. Çünkü tarayıcı bu işleme izin vermemektedir.

Single Sign-On (SSO) işte tam bu noktada çözüm sağlar. SSO sayesinde oluşturulan bir token uygulamalar arasında işlenebilir.

Single Sign-On

Single Sign-On (SSO)

Yazının giriş bölümünde de bahsi geçtiği üzere, pek çok farklı servis üzerinden dağıtıklaştırılmış ve çoğu birbiriyle ilişkili uygulamalarda farklı mimariler tercih edilebilmekte. Erişim sağlamak isteyen kullanıcı kimliğinin (user credential) doğrulamasını tek seferde gerçekleştirmek, farklı uygulamalar üzerinden tekrar kimlik doğrulamasına gerek kalmadan işlemlerin sağlanabilmesi kullanıcı deneyimi ve güvenlik için bir gereklilik haline gelmiş durumda.

Single Sign-On (tek oturum açma) işte bu noktada değerlendirilebilecek çoklu erişim kontrolü çözümlerinden biri. Birden çok ilişkili, ancak bağımsız yazılım sisteminin erişim denetimi sağlayan Single Sign-On (SSO) sayesinde bir kullanıcı ilgili birkaç sisteme erişmek için tek bir kullanıcı kimliği ve şifre ile giriş yapabilmekte. Bu işlemler, temel olarak yetkilendirme sunucusu, kullanıcıların bağlandıkları sitelerin sunucuları ve istemciler olmak üzere üç tip öge aracılığıyla gerçekleştirilir.

Single Sign-On

Single Sign-On (SSO) vasıtasıyla bir kullanıcı kimliğiyle oturum başlatarak (Signing in) çok sayıda uygulamaya / servise erişim sağlanabilmekte. Authorization (yetkilendirme) sürecinin merkezinde kimlik doğrulama (authentication) işlemi için kullanılan bir SSO sunucusu yer alır. İstemci bir kullanıcı adı ve şifresi ile SSO sunucusuna yönlendirilir, bilgilerin doğrulanmasının ardından oturum başlatılır ve bir session token (oturum anahtarı) oluşturulur. Oluşturulan bu anahtar ilişkili diğer uygulamalar ve/ya servislerle ortak bir şekilde kullanılabilmektedir. İlişkili uygulama kendisine iletilen token‘i kontrol eder. Doğrulamada bir sorun olması durumunda işlem tekrarlanır. Doğrulama başarılı ise giriş yetkisi sağlanır. Bu şekilde aynı kullanıcı adı ve şifresiyle pek çok uygulama ve servise güvenli bir şekilde erişim sağlanabilmektedir. Aşağıda yer verdiğim SSO for Web APIs başlıklı videoyu da incelemenizi tavsiye ederim.

Single Sign-On (SSO) tek bir kullanıcı kimliği ile ilişkili pek çok uygulama ve/ya servise erişim sağlayan bir konsept/çözüm olarak ele alınabilir. Bu maksatla, çeşitli dil ve platformlar için özelleştirilmiş alternatifler değerlendirilebilir. Aşağıda örnek olarak ele alınabilecek bazı örnekleri görebilirsiniz.

Uygulama AdıLisans
Active Directory Federation Services / Azure Active DirectoryLisanslı
Auth0Lisanslı
Central Authentication ServiceAçık Kaynak
IBM Enterprise Identity MappingÜcretsiz
JBoss SSOÜcretsiz
OktaLisanslı

SSO’da ise X uygulamasına giriş yapıldığında SSO server üzerinden işlemler (token oluşturma ve kontrolü, cookie işlemleri gibi) gerçekleştirilir. Bu işlemin gerçekleştirilmesinin ardından X uygulamasına giriş sağlanır. Y uygulamasına giriş yapılmak istendiğinde yine SSO server üzerinden işlemler gerçekleştirilir; cookie içeriğindeki token kontrol edilir ve doğrulama sağlanırsa uygulama girişi gerçekleştirilir.

İleri Okumalar

  1. Web Servislerinde Single-Sign-On ile Yetkilendirme
  2. .NET’te Single Sign-On (SSO)
  3. SSO (Single Sign-On) Nedir?

Kaynakça

  1. Single sign-on, @wikipedia
  2. Single Sign-On (SSO), @techtarget
  3. What is single sign-on (SSO)?, @citrix
  4. How does single sign-on work?, @onelogin
  5. Busting Myths: What is Single Sign-On?
Ceyhun Enki Aksan

Kullanıcı Davranışları Analizi (User Behavior Analysis) ve Kullanıcı Deneyim Tasarımı (UX Design) üzerine çalışmalar yürütmekte, bu süreçte edindiğim teknik ve pratik bilgileri fayda sağlamak motivasyonuyla (afaik / as far as i know) paylaşmaktayım.

HABERDAR OL

Yeni eklenen projeler, eğitimler, içerikler ve yayınlanan videolar e-posta adresine gelsin.