Page 84 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 84
84 | Kimlik Doğrulama Altyapılarının Kullanımı
2. CAS Yazılım Bileşenleri
CAS sunucusu üç katmanlı alt sistemler kullanılarak tanımlanmaktadır:
• Web (Spring MVC/Spring Webflow)
• Biletlendirme (Ticketing)
• Kimlik denetimi (Authentication)
Web katmanı, CAS istemcileri arasında iletişim için uçlar (endpoints) sağlar ve sahip olduğu view’ları
webflow sayesinde yönlendirilmiş uygulama (Guided Application) haline getirir. Kullanıcı, CAS
üzerinde kimlik doğrulaması yaptıktan sonra, CAS tarafından SSO oturumu (session) yaratılır ve TGC
isminde çerez (cookie) ile TGT (Ticket Granting Ticket) sağlanır. Bu TGT kullanılarak CAS istemcilerine
ST (Service Ticket) sağlanır ve CAS’ta bu bilet (ticket) denetlenir. Bu işlemler, biletleme (ticketing)
katmanında gerçekleştirilir. Bu işlemler için daha ayrıntılı akış aşağıda anlatılmıştır. Henüz CAS’a giriş
yapmamış bir kullanıcı, CAS istemcisi uygulamaya istek attığında, giriş yaptırılması için HTTP 302
cevabı dönülür. Kullanıcı bu isteği aldığında CAS’a otomatik istek atar. Burada kullanıcı adı ve şifre
girildikten sonra TGC isminde çerez ayarlanır ve kullanıcıya tek kullanımlık ST verilir. Kullanıcının
CAS’a yönlendirilmesine neden olan uygulamaya tekrar gitmesi için HTTP 302 cevabı dönülür.
Kullanıcı, bu ST’yi kullanarak uygulamaya istek atar. Uygulama gelen istekteki ST’yi denetlemek
için CAS’a istek atar, Eğer doğrulama sağlanırsa HTTP 200 dönülür ve uygulama da, kullanıcıya giriş
yapıldığını belirten oturum bilgisini JSESSIONID çerezi ile cevap döner. Kullanıcı, bundan sonraki
tüm isteklerinde bu JSESSIONID’yı ekler ve CAS’a gerek kalmadan uygulama üzerinden oturum
doğrulama gerçekleşir. Kullanıcı başka bir CAS istemcisi uygulamaya erişim sağladığında, burada
giriş yapmamış olduğundan giriş yapması için kullanıcıya HTTP 302 cevabı dönülür. Kullanıcı, bu
isteği aldığında CAS’a otomatik istek atar. Gelen istek içerisinde TGC olduğundan kullanıcı adı-şifre
işlemi atlanır. Kullanıcıya direkt tek kullanımlık ST verilir ve akış yukarıdaki gibi devam eder.
3. Kurulum
CAS, kodu indirip derlemek yerine zaten derlenmiş haline eklemeler/çıkarmalar yapmayı sağlamak için
overlay adında şablon (template) sağlar. Yani tüm kodları indirip, içerisinde değişiklik yaparken kaybolmak
yerine bu sade hali üzerinde kolayca değişiklik yapılabilir. Overlay template ile binary dosyalar indirilir,
ekleme/çıkarma ile yapılandırma dosyaları binary hale getirilip eskileri ile değiştirilir ve son olarak kalan
binary dosyaları ile birleştirilip war altında arşiv oluşturulur. Java sınıflarını, resources ve static dosyalarını
(js, css, images) değiştirebilmek için src klasörü altında yapılandırma dosyaları oluşturulur. Bunlar, önceden
indirilmiş binary dosyaları ile paket konumu ve ad olarak tam eşleşmelidir. src klasörü dışında yapılan tüm
değişiklikler derleme aşamasında kaybolur. Sistemde gradle yüklü olmalıdır ve JAVA_HOME, Java yolunu
(path) göstermelidir.
Kurulum Kaynak Kodu
https:-/github.com/apereo/cas-overlay-template.git