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 Resim-2’de detaylı incelendiğinde CAS mimarisinin adımları aşağıdaki maddelerde anlatıldığı gibi olduğu görülebilir.
Resim-1
Resim-2
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 dokü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 uygulamanı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 üzerinden Logout olduğunda, sizin uygulama üzerinde kullanıcı bilgileri Session da tutulduğu için Single Sign-out olarak ayarlayamayacaksı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.
Bu konuyla ilgili sorularınızı http://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.
Referanslar
İzmir Atatürk Anadolu Teknik Lisesi, Dokuz Eylül Üniversitesi Bilgisayar Teknolojisi ve Programlama Bölümü mezunuyum. Şuan Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği Bölümünde son sınıftayım. Yazılım ile 2004 yılında tanıştım ve yaklaşık olarak 4-5 yıldır piyasaya freelance olarak proje geliştiriyorum. Ek olarak MCP unvanına sahibim.