Page 90 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 90

90 | Kimlik Doğrulama Altyapılarının Kullanımı



           Yüksek erişilebilirliği sağlamak için, Şekil 2’de görülen mimari tasarım örnektir. Birçok CAS sunucusu,
           Kubernetes tarafından yönetilebilir şekilde konfigüre edilebilir. Bu konfigürasyon ile CAS sunucu

           uygulamalarından herhangi birisinin çöktüğü durumda, Kubernetes’in küme orkestratörü tarafından
           başka bir sunucu üzerinde kaldırılmaktadır. CAS Sunucularının bir hata durumunda servisler için
           oluşturdukları  biletlerin  (TGT,  ST)  kaybedilmemesi  için  Redis,  master-slave  yapısında  replike
           edilmiştir. CAS Sunucu uygulamaları, yük dengeleyicisi (load balancer) arkasından sunulmaktadır.

                                                                  Merkezi Kimlik Doğrulama Servisi
                                                                                      Redis Kümesi
                                                CAS Sunucusu

                                                   CAS Sunucusu
                      http://merkezikimlik
                        Yük Dağıtıcısı                                     Sentinel    Sentinel    Sentinel




                                                                         Redis Master  Redis Slave  Redis Slave
                                               CAS Yönetim Uygulaması










                                                Şekil 2. CAS’ın Örnek Küme Yapısı




           10. Spring Framework Entegrasyonu


           Spring Security’nin CAS ile entegre edilebilmesi için, CAS istemcisi olduğunu belirten bir kütüphane
           eklemelidir. (org.springframework.security:spring-security-cas)

           Kullanıcı uygulamaya ilk defa istek attığında AuthenticationException ile karşılaşılır. Bu noktada,
           casAuthenticationEntryPoint ile CAS adresi tanımlayarak CAS’a yönlendirme yapılması gereklidir.
           Ikinci olarak, CAS’a giriş yapıldıktan sonra ST ile uygulamaya gelen istekteki bileti doğrulamak için
           yapılandırmalar  gereklidir.  UsernamePasswordAuthenticationToken  ile  ST’yi  temsil  edecek  sınıf

           oluşturulur. Uygulamaya ST içeren istek geldiğinde (bu da UsernamePasswordAuthenticationToken),
           yalnızca bu tip isteklere cevap verecek casAuthenticationProvider oluşturulur ve ticket’ı doğrulamak
           için TicketValidator arayüzünü implement eden Cas20ServiceTicketValidator nesnesi oluşturulur.
           Bu sınıf, CAS’a ST’yi doğrulamak için istek atar. CAS da, içerisinde kullanıcı adı olan bir XML cevap
           döner.  Cas20TicketValidator,  dönen  XML’i  parse  eder  ve  kullanıcı  adını  içeren  TicketResponse
           oluşturur.  casAuthenticationProvider,  bu  kullanıcının  sahip  olduğu  rolleri  (GrantedAuthority)
           yüklemek  için  AuthenticationUserDetails’e  istek  atar  ve  en  sonda  sahip  olduğu  TicketResponse
           ve  GrantedAuthority  bilgileri  ile  casAuthenticationToken  oluşturur.  Bu  noktada  kontrol  tekrar
           casAuthenticationFilter sınıfına geçer ve casAuthenticationToken’ı SecurityContext’e yerleştirilir.

           AuthenticationException’a neden olan sayfaya geri yönlendirme yapılır.
   85   86   87   88   89   90   91   92   93   94   95