EN
EN

Web Tabanlı Single On; CAS, OAuth2


SingleSignOn, Web tabanlı CAS, OAuth2

Single-Sign-On

Single-Sign-On, kullanıcıların bir kurumun web sitesinde bulunan her bir uygulama için ayrı ayrı kullanıcı adı/parola ikilisi tanımlama zorunluluğunu ortadan kaldırır; bunun yerine birçok uygulamaya sadece bir kullanıcı adı/parola ikilisi ile erişebilmeyi sağlar.

Single-Sign-On, hem lokal hem de bulut bilişim tabanlı servislerde uygulanabilmektedir;  aynı zamanda kullanıcının statüsü göz önünde bulundurularak erişim hakkına sahip olduğu kaynak ve uygulamaların dışında diğer bilgilere ulaşamayacağı şekilde bir erişim kontrolü sağlanmaktadır. Bu sistemde güvenlik ve kullanışlılık gibi ikisinin aynı anda işletilmesi zor olan servisler bir arada uygulanabilmektedir. Hem kullanıcının birden fazla kimlik bilgisi tutmasına gerek kalmamakta hem de sistemin güvenliği arttırılmış olmaktadır. Bu süreç işletilirken kullanıcı hangi uygulamadan giriş yapmak isterse istesin sistem kimlik doğrulama için kullanıcıyı merkezi kimlik doğrulama sunucusuna yönlendirmektedir. Böylelikle kullanıcının kimliği tanımlanmakta ve eğer doğrulandığı takdirde bu veriye ihtiyaç duyan diğer tüm alt sistemlerle paylaşılmaktadır.

                Şekil1. SSO çalışma mekanizması(Kaynak: https://auth0.com/blog/what-is-and-how-does-single-sign-on-work/)

Web Tabanlı SSO

Web tabanlı SSO sistemi, bir domaine ait birçok uygulamaya kullanıcıların sadece bir kimlik bilgisi ile bir oturumda yanlızca bir login işlemi yaparak erişmelerini sağlar. Kullanıcının yanlızca bir uygulama için doğrulama işlemi yaptırması yeterli olmaktadır. İlk doğrulamayı gerçekleştiren web tabanlı SSO, oturum bilgisini kullanıcıyı tanıması gereken diğer uygulamalara dağıtmaktadır.

Tarayıcılar güvenlik hizmetlerinin bir gereği olarak cookie veya lokalde saklanması gereken diğer verilere sadece bu veriyi üreten domainin ulaşmasını şart koşan Same Origin Policy servisini uygulamaktadır. Bu da domainler arası oturum bilgisini paylaşmayı zorlaştırmaktadır. Bunun çözümü için de farklı domainlere oturum bilgisi tokenlarını paylaşmayı sağlayan web tabanlı SSO kullanılmaktadır. Bu sistemde oturum bilgisini içeren token imzalanarak paylaşılmaktadır, bu da oturum verilerinin kullanıcı tarafından değiştirilmesini zorlaştırmaktadır.

SAML(Security Assertion Markup Language) protokolü web tabanlı SSO için kullanılan OneLogin tarafından geliştirilmiş açık kaynak kodlu önemli protokollerden biridir. Bu protokol kullanıcı bilgilerini dijital imza ile imzalanmış XML dosyaları halinde göndermektedir.

SAML’in Çalışma Mekanizması

- Kullanıcı login olmak istediği sitenin linkine tıkladığında, uygulama IP adresi gibi bilgileri kullanarak istemcinin kaynak bilgisini tespit eder ve kullanıcıyı kimlik doğrulamasının yapılabilmesi kimlik sağlayıcıya(identitiy provider) yönlendirir.
- Kullanıcının zaten kimlik sağlayıcısı ile aktif olan bir oturumu mevcut olabilir, yada eğer mevcut oturumu yoksa kimlik sağlayıcıya giriş yaparak yeni oturum alır.
- Kimlik sağlayıcı, XML formatında düzenlenmiş olan ve kullanıcının isim ve email adresini barındıran kimlik doğrulama bilgisini X.509 sertifikası ile imzalayarak servis sağlayıcıya gönderir.
- Kimlik sağlayıcısını zaten tanıyan ve sertifika özetini(certificate fingerprint) tutan servis sağlayıcı sertifika parmak izini kullanarak kimlik doğrulama bilgisinin geçerliliğini denetler.
- Kimlik doğrulamadan sonra kullanıcı kimliği tanımlanmış olur ve kullanıcının uygulamaya erişimine izin verilir.

Aktif Dizinin SSO ile Entegrasyonu

Aktif dizinin(Active Directory)  SSO ile entegrasyonu iki-faktörlü ve çok faktörlü kimlik doğrulama yöntemlerinin uygulanarak kullanıcıların güvenli bir şekilde kimlik doğrulamasından geçirilmesini sağlamaktadır. Aktif dizin entegrasyonu aynı zamanda BT yöneticisinin uygulamalara ve veritabanlarına kimlerin, ne zaman ve nerden hangi bilgilere ulaştığı gibi erişim denetlemelerini gerçekleştirmesine imkân vermektedir.

Sanal makineler, yazıcılar, BYOD, personel giriş çıkış kartı, biyometrik kimlik doğrulama veya personel bilgisayar başından ayrıldığında iş istasyonunun otomatik olarak kilitlenip personel döndüğünde ise tekrar kimlik bilgilerini istemesi gibi servisler SSO ile entegrasyonu faydalı olacak sistemler arasında sayılmaktadır. 

LDAP’ın SSO ile entegrasyonu

LDAP’ın SSO’yla entegrasyonu; kullanıcılar oluşturulduğunda, güncellendiğinde veya engellendiğinde değişikliklerin otomatik olarak SSO’ya bildirilmesini sağlar.  Bu yöntemin avantajları:

- Kullanıcıların sisteme giriş ve kimlik doğrulama işlemlerinin hızlı ve güvenli bir şekilde yapılabilmesi
- Çalışan işten çıktığında yetkisiz erişimlerin ve veri kayıplarının önlenmesi için kullanıcının sistemden ve aktif dizin servislerinden engellenmesi
- Mail adreslerinin, kullanıcı ismi ve grup üyeliklerinin güncellenmesi

CAS(Central Authentication Service) Çalışma Mekanizması

Kullanıcı kimlik doğrulaması isteyen bir uygulamayı ziyaret ettiğinde uygulama kullanıcıyı Merkezi kimlik doğrulama servisine yani CAS’e yönlendirir. Genellikle CAS kullanıcı adı ve parolasını Kerberos, LDAP veya Active Directory gibi bir veri tabanında kontrol edip eşleştirme yoluyla kullanıcıyı doğrulamaya çalışır. Kimlik doğrulaması başarıyla gerçekleştirilirse CAS bir servis token(service ticket) oluşturarak kullanıcıyı uygulamaya geri döndürür. Tokenın geçerliliğini kontrol etmek için uygulama CAS’e güvenli bir bağlantı üzerinden kendi servis tanımlayıcı(service identifier) ve bilet(ticket) bilgilerini gönderir. Bunun üzerine CAS kullanıcının başarılı bir şekilde doğrulandığına dair veriyi uygulamaya gönderir.

OAuth Çalışma Mekanizması

Kimlik doğrulamadan( Authentication) farklı olarak yetkilendirme(Authorization) işlemi istemcinin hangi kaynaklara erişim hakkı olduğunu denetleyen ve belirlenen kısıtlamalara göre erişim kontrolü sağlayan bir yetkilendirme sistemidir. Erişim kontrolü ve yetkilendirme işlemi yapan OAuth sistemi ile kimlik doğrulama işlemi yapan CAS Authentication sistemi birbirinden farklı işlevleri yerine getirir, ancak yetkilendirme süreci kendi içinde ayrı bir kimlik doğrulama mekanizması barındırmaktadır. OAuth sisteminde yetkilendirme sürecinden önce veri kaynaklarının sahibi yetkilendirme(authorization) sunucusu tarafından kimlik doğrulama işlemine tabi tutulmaktadır, aynı şekilde istemci de kimlik doğrulama işleminden geçirilmektedir. Kimlik doğrulamayı yetkilendirme üzerine uygulamanın yararı domainler arası kimlik bağımsızlığını koruması ve son kullanıcı izninin alınmasını kolaylaştırmasıdır. Bir diğer kolaylık ise kullanıcının doğrulanmış kimlik bilgileri ile başka diğer korunmuş API’lere erişim izni de isteyebilmesidir. Bu hem geliştiricilerin hem de kullanıcıların süreci yönetmesini kolaylaştırmaktadır.