1.6.2. OIDC
Geliştiriciler için OIDC Entegrasyonu Rehberi#
Bu belge, Keysis'te OIDC entegrasyonunun nasıl çalıştığına dair geliştiricilere rehberlik etmeyi amaçlamaktadır.
Ayarlamalar:
- Uygulama çalıştırıldığında /.well-known/openid-configuration dosyası oluşturulur.
- application-authentication.yml dosyasında:
- AUTH_OIDC_LOGIN_PAGE_URL -> UI URL ile aynı olmalı.
- keycloak docker-compose.yml dosyasında:
- extra_host ile local auth instance erişilebilir olmalı.
- Veritabanında:
- Bir client tanımı yapılmalıdır.
- redirect_uris eşleşmesinde realms ve display name alanları uyumlu olmalı.
Bilgiler:
- OIDC
OpenId Connect ile Keysis login akışı kullanılarak uygulamalarınızı authenticate yapabilmek için kullanılan özelliktir. Keycloak uygulaması ayarlamalar bölümündeki detaylar göz önüne alınarak çalıştırıldıktan sonra aşağıdaki adımlar takib edilerek OIDC akışı test edileblir.
- Veritabanında yazılı redirect_urls ile uyumlu olacak şekilde bir realms tanımı yapılır.
- Identity Provider bölümünden OIDC v1.0 seçilir
- Use discovery endpoint ile "/.well-known/openid-configuration" servis ucu deploy ettiğiniz url olarak eklendiğinde tüm OIDC tanımlamaları otomatik gelecektir.
- well-known ucunu provide eden url ile keycloakda yapılan extra_host tanımı uymalıdır. Aksi taktirde keycloak docker localde çalışan well-known ucunu provide eden instance içerisine istek atamaz.
- Sertifika ayarlamaları ile uğraşmamak için test aşamasında "Validate Signatures" kısmını false olarak bırakmalısınız.
- Client-Id alanına => auth-experimental
- Client-Secret alanına => test
- Bu aşamadan sonra keycloak üzerinde client sekmesine gelerek Home URL yazan uçlardan birine tıklayarak signin yapmalısınız.
- OIDC için tanımladığınız display name ile login ol seçeneğini seçerek keysis arayüzlerinden login olduktan sonra geri keycloak ekranına yönlendirileceksiniz.
Örnek Docker Compose Dosyası
version: '3'
volumes:
postgres_data:
driver: local
services:
keycloak:
container_name: keycloak
image: quay.io/keycloak/keycloak:latest
network_mode: hvl_core_network
command: ["start-dev"]
restart: unless-stopped
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://hvlpostgresmultipledatabases:5432/hvl
KC_DB_USERNAME: HVL
KC_DB_PASSWORD: hvl12345
KC_HEALTH_ENABLED: 'true'
KC_HTTP_ENABLED: 'true'
KC_METRICS_ENABLED: 'true'
# KC_HOSTNAME: keycloak.hvlnet.net:8080
# KC_HOSTNAME_PORT: 8180
# KC_HOSTNAME_URL: keycloak.hvlnet.net:8080
KC_PROXY: reencrypt
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: password
KEYCLOAK_USER: admin
KEYCLOAK_PASSWORD: Pa55w0rd
ports:
- "8080:8080"
extra_hosts:
- "keycloak.hvlnet.net:YOUR_IP_ADDRESS"
- "keysis.hvlnet.net:127.0.0.1"