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ı