Central
Authentication Service Entegrasyonu (CAS)
·
CAS Nedir ?
CAS Single Sign-On hizmetini
sağlayan open source bir sistemdir.Birden fazla sistemi CAS ile entegre edip
merkezi bir authentication sağlayabilirsiniz. Böylelikle n tane sistem tek bir
yerden authentication işlemi yapar ve n tane sistemi tek bir kez authentication
işleminden sonra kullanabilirsiniz.
·
CAS Mimarisi
Aşağıdaki Şekil 1 resminde de detaylı
incelendiğinde CAS mimarisinin adımları aşağıdaki maddelerde anlatıldığı gibi
olduğu görülebilir.
o
Uygulama Get olarak server dan user tarafından
çağırılır,
o
Sunucu response olarak CAS ın bulunduğu linkin
login sayfasını service parametresi ile birlikte çağırır. Bu service
parametresinde kullanıcı CAS üzerinden login olduktan sonra CAS’ın gelen isteği
hangi sayfaya yönlendireceğinin bilgisi olmalıdır,
o
Kullanıcının karşısına CAS login ekranı gelir ve
kullanıcı login olur,
o
Login işleminden sonra CAS authentication
işlemini yapar ,
o
Bir sonraki adım olarak service parametresi
olarak verilen linke GET olarak sonuna ticket queryString ini ekleyerek
yönlendirme yapar. Bu yonlendırmeden once yapılacak olan isteğin içerisine
CASTGC cookie’sini ekler,
o
Daha sonra CAS’ın yönlendirme yaptığı sayfa
içerisinde istek ile gelen ticket querystring i ile birlikte CAS’a Get olarak
“casserverlink/serviceValidate?ticket=…&service=…” istek yapılır ve CAS üzerinden gelen ticket
bilgisinin validation işlemi yapılır.
o
Bu işlemden sonra CAS’dan xml olarak gelen
kullanıcı bilgileri içerisindeki bilgiler alınır ve Cookie lere JSESSIONID
olarak asp sessionID atılır,
o
Bu aşamadan sonra artık kullanıcının
authentication işlemi tamamlanır.
o
Bir başka uygulamaya ilk erişiminde ise
5.aşamada cookie’ye atılan CASTGC bilgisi request’in cookie bilgisine eklenerek
CAS uzerınde validate yapılır ve CAS yeni bir ticket üretir ve querystring ile bizim
querystring olarak verdiğimiz service bilgisindeki linke yönlendirme yapar,
o
Yeni oluşan ticket bu şekilde alındıktan sonra
6. Aşama tekrarlanır,
Şekil 1
Asp.Net web form projelerinde CAS 2.0 entegrasyonu çok sıkıntılı bir süreçtir. Asp.Net web form uygulamalarında bulunan page life cycle nedeni ile kullanıcının ilk yaptığı istek CAS'a yapılan yönlendirmeden sonra kaybolmaktadır. Bu durum CAS'ın hazırladığı .Net Library kullanıldığında oluşur. Bu nedenle eğer Asp.Net web form uygulaması ile CAS entegrasyonu yapıyorsanız malesef yapamayacaksınız. İnternet üzerinde CASP.cs class'ına rahatlıkla erişip onun üzerinden işlemlerinizi yapabilirsiniz. Bu class içerisindeki Authenticate methodunu kullanarak authentication işlemini gerçekleştirebilirsiniz. Fakat CAS'ın resmi sitesindeki dökümanları incelediğinizde de göreceksiniz ki CAS tarafından oluşturulan ticket sadece 1 kez validate ettirilir. Bu nedenle bir kez validate işlemi yapıldıktan sonra asp.net uygulamnızda kullanıcı bilgilerini session üzerinde tutarsanız CAS üzerinden kullanıcı login ve validation işlemini yapmış olursunuz. Fakat Bu senaryoda ise kullanıcı CAS uzerınden logout olduğunda , sizin uygulama üzerinde kullanıcı bilgileri session da tutulduğu için single sign out olarak ayarlayamacaksınız. Malesef bu durumu göze almak zorundasınız.
Uygulamanız üzerinden logout olunduğunda CAS üzerinde de logout olması için tek yapmanız aşağıdaki link'e redirect yapmanız yetecektir.
casserverlinki/logout
Umarım faydalı olmuştur. Bir sonraki makalemizde görüşmek üzere.