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

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



           Bir  tema  yaratırken,  önbelleği  devre  dışı  bırakmak  iyi  bir  pratiktir,  bu  sayede  keycloak’ı  restart
           etmeye gerek kalmadan themes klasörü altındaki değişikleri direkt olarak görmek mümkün olur.



            kc.bat start-dev --spi-theme-static-max-age=-1 --spi-theme-cache-themes=false
            --spi-theme-cachetemplates=false





           8. Varsayılan Kodları Ezme (Override)

           Keycloak, kendisinin desteklemediği fakat ihtiyaç duyulan şeylerin yazılabilmesi için SPI’lar (Service
           Provider  Interface)  sunar.  Örnek  olarak  Keycloak;  kerberos,  password,  OTP  gibi  farklı  kimlik

           doğrulama mekanizmaları sağlar. Fakat ihtiyaç karşılanmıyorsa, yeni tip mekanizmalar yazabilmek
           için  Authentication  SPI  da  sunar.  Authentication  SPI  kullanarak,  varolan  akışa  yeni  bir  davranış
           eklenebilir ya da tamamen yeniden kodlanabilir.

           Yazılan özel davranışlar ve provider’lar, keycloak’a dışarıdan jar olarak sağlanır. Uygulama ayağa
           kalkarken  Keycloak,  classpath’i  tarar  ve  tüm  mevcut  provider’ları  seçer.  Bu  yüzden,  dışarıdan
           sağlanan  jar’daki  META-INF/services  klasöründe,  sağlanacak  servis  arayüzünün  adını  taşıyan
           bir  dosya  oluşturulmalıdır.  Bu  servis  klasörü,  Keycloak  tarafından  providerları  taramak  ve  kendi
           sistemine yüklemek için kullanılır. Keycloak’ta halihazırda hangi tip servisler var sorusu icin keycloak

           ekranında  “provider  info”  ekranına  bakılabilir.  http://localhost:8080/admin/master/console/#/
           master/providers adresinden kontrol edilebilir.

           SPI sütunu altındakiler ve sağdakiler de o SPI için mevcut provider’lardır.

           SPI dokümantasyonunda, kullanıcı kimlik doğrulaması için gerekli aksiyonları tanımlayacak şey org.
           keycloak.authentication.AuthenticatorFactory’dir,  dolayısıyla  servis  klasörü  altında  bu  isimde  bir
           dosya olacaktır. Bu dosya da, oluşturulan özel factory sınıfın paket adı da dahil adını içerir.



            # SPI class implementation
            test.spi.CustomAuthenticatorFactory























                                                   Şekil 4. Özel SPI Tasarımı
   91   92   93   94   95   96   97   98   99   100   101