Ana içeriğe geç

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"