Page 91 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 91
Kimlik Doğrulama Altyapılarının Kullanımı | 91
Keycloak
Keycloak, web tabanlı uygulamalara güvenli tekil oturum açma (Single Sign On / SSO) hizmeti
sağlayan açık kaynak yazılımdır. Keycloak, 2013 yılında geliştirilmeye başlanmış ve ilk sürümü Eylül
2014’te yayınlanmıştır. 2016 yılında Red Hat, SSO ürününü olan PicketLink projesini Keycloak ile
birleştirmiştir. Keycloak, eskiden Wildfly uygulama sunucusu üzerine kurulu bir uygulama iken,
Keycloak 2017 itibariyle Quarkus framework’ü üzerine inşa edilmis bir uygulama oldu. Wildfly
versiyonu, konfigürasyon için karmaşık XML dosyaları barındırıyordu. Bu da sürüm yükseltme
aşamasında hatalara yol açıyordu.
Keycloak şu özellikleri sağlar:
• Kimlik Doğrulama
• Kullanıcı Yetkilendirme
• Kullanıcı Yönetimi
• User Federation (Kimlik bilgilerinin Keycloak harici yerlerde saklanması ve bu credentialları
görmeden kimlik kontrolünün SAML, OAuth, OpenID Connect gibi yöntemlerle yapılmasıdır.)
1. Tenant ve Realm
Yazılım terminolojisinde tenant, bir organizasyona hizmet eden uygulama demektir. Multi-tenant ise farklı
organizasyonlara hizmet eden uygulama demektir. Keycloak’ta tenant’ın karşılığı olarak realm terimi kullanılır.
Birbirinden izole edilmiş kullanıcı ve uygulama grupları oluşturmaya izin verir. Realm, güvenlik alanı (security
domain) olarak görev yapar. Keycloak, varsayılan olarak master isminde tek bir realm ile gelir. Bu, Keycloak’ı
yönetmek için kullanılır. Bu sebeple uygulamalar için ayrı realm’ler oluşturulması tavsiye edilir.
2. Kurulum
Keycloak kullanabilmek için, 11 ya da daha yeni bir sürüme sahip Java kurulu olmalıdır. Aynı Apereo
CAS’da olduğu gibi, tüm Keycloak kodlarını indirmek yerine, ayağa kaldırmak için gerekli minimal
kod ve jar’ların olduğu proje (keycloak-19.0.1.zip ) indirilir. Daha sonra binary klasörü altındaki (/bin),
kc.bat dosyası, aşağıdaki komut ile çalıştırılır.
• Development ortamı için; kc.bat start-dev
Burada HTTP bağlantı kullanılır. Önbellek mekanizması devre dışıdır. Alan adı (hostname) ayarlamadan
da çalışabilir.
• Production ortamı için; kc.bat start
Burada “secure by default” prensibi takip edilir. Eğer ayar yapmadan direkt bu komut calıştırılırsa,
hata verir. Çünkü HTTPS ayarı ve alan adı ayarlaması yapılmalıdır.