Page 93 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 93
Kimlik Doğrulama Altyapılarının Kullanımı | 93
db-urlhost=${MY_DB_HOST} ya da varsayılan değer ile db-url-host=${MY_DB_
HOST:mydb}
Örnek Kullanımı:
kc.bat start-dev --config-file=/conf/my-custom.conf
• Varsayılan keycloak.conf (/conf klasörü altında) dosyası üzerinden yapılandırılabilir.
Keycloak tarafından sağlanan tüm konfigürasyonlara ya https://www.keycloak.org/server/all-
config sitesi üzerinden ya da kb.bat start-dev –help komutuyla erişilebilir. Bazen Keycloak’ın
desteklemediği fakat Quarkus Framework’ün sağladığı davranışı etkinleştirmek için conf altında
quarkus.properties oluşturulur ve ihtiyacımız olan özellikler (property) tanımlanır. https://quarkus.
io/guides/all-config ile bu konfigürasyonlara ulaşılabilir. Eğer bir özellik hem quarkus.properties de
hem de keycloak.conf’da varsa, keyclok’taki çalışır, çünkü üstünlük ondadır.
5. Keycloak Istemcilerinin Kayıt Edilmesi
Eklenecek istemcilerin ait olacağı realm’e gidilir ve clients tabından yeni bir istemci yaratılır.
Keycloak’ın, Apereo CAS gibi kendine ait protokolü yoktur. Istemciler ile olan iletişimini OpenID
Connect ya da SAML üzerinden yapar. Burada gerekli bilgiler ile istemci oluşturulur.
Örnek olarak, Spring uygulamasının (geliştirme ortamının 8081 portunda çalışsın) OpenID Connect
ile Keycloak üzerinden kimlik doğrulaması yapılmak istenirse, valid redirect URI kısmına http://
localhost:8081/* eklenir. Oluşturulan istemci, curl kullanılarak password grant type ile test edilebilir.
Bu istek sonucunda, access token elde edilmesi beklenir.
curl -X POST -d “client_id=myclient&username=&password= &grant_type=password” -H
“Content-Type: application/x---w-form-urlencoded” http:-/localhost:8080/realms/
myrealm/protocol/openid-connect/token
6. Spring Framework Entegrasyonu
Spring Security’nin Keycloak ile entegre edilebilmesi için Keycloak istemcisi olduğunu belirten bir
kütüphane eklemelidir. (org.keycloak:keycloak-spring-boot-starter)
keycloak.auth-server-url=http:-/localhost:8080
keycloak.realm=myrealm
keycloak.resource=myclient
keycloak.public-client=true