1. Ana Sayfa
  2. Java
  3. Central Authentication Service (CAS) Entegrasyonu

Central Authentication Service (CAS) Entegrasyonu

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

  • Uygulama Get olarak Server dan user tarafından çağırılır,
  • 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,
  • Kullanıcının karşısına CAS Login ekranı gelir ve kullanıcı Login olur,
  • Login işleminden sonra CAS Authentication işlemini yapar,
  • Bir sonraki adım olarak service parametresi olarak verilen linke GET olarak sonuna ticket queryString ini ekleyerek yönlendirme yapar. Bu yönlendirmeden önce yapılacak olan isteğin içerisine CASTGC Cookie’sini ekler,
  • 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.
  • 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,
  • Bu aşamadan sonra artık kullanıcının Authentication işlemi tamamlanır.
  • Bir başka uygulamaya ilk erişiminde ise 5.aşamada Cookie’ye atılan CASTGC bilgisi Request’in Cookie bilgisine eklenerek CAS üzerinde Validate yapılır ve CAS yeni bir ticket üretir ve querystring ile bizim querystring olarak verdiğimiz service bilgisindeki linke yönlendirme yapar,
  • Yeni oluşan ticket bu şekilde alındıktan sonra 6. Aşama tekrarlanır,


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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Yorum Yap

Yazar Hakkında

İ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.

Yorum Yap