Skip to main content
Her ortamın (dev / stage / prod) kendi Keycloak instance’ı ve kendi realm çiftleri vardır. Realm isimleri ortam suffix’i ile tekrarlanır.

Dev

  • Keycloak bir Docker container’ıdır (docker-compose.override.yml, keycloak26).
  • API açılışta KeycloakProvisioning ile realm/client/rol/kullanıcı/mapper’ı otomatik kurar (Enabled: true, RunOnce: true).
  • RequireHttpsMetadata: false — HTTP yeterlidir.
  • Tarayıcı ve API aynı localhost:8080’i gördüğü için BaseUrl == PublicBaseUrl.

Stage / Prod

  • Keycloak genelde müşterinin harici instance’ıdır (https://auth.diyanet.gov.tr).
  • Provisioning kapatılır (Enabled: false); realm bir kez kurulup yönetilir.
  • RequireHttpsMetadata: true olmalı.
  • Realm/URL değerleri .env üzerinden gelir.

BaseUrl vs PublicBaseUrl

Bu ayrım çift-realm doğrulamanın kalbidir (KeycloakSchemeOptions):
Issuer doğrulaması her ikisini de kabul eder:
Docker dev’de API container’ı Keycloak’a diyanet-keycloak:8080 üzerinden ulaşır ama token’ın iss’i localhost:8080’dir. PublicBaseUrl set edilmezse issuer mismatch → her token 401 alır. Bu yüzden BaseUrl ile PublicBaseUrl farklıysa ikisini de doğru girin.

Hetzner paylaşımlı Keycloak

Hetzner çoklu-proje kurulumunda (docker-compose.platform.yml / .shared-infra.yml) Keycloak platform seviyesinde paylaşımlıdır: birden fazla proje aynı Keycloak instance’ını kullanır, her proje kendi realm çiftiyle izole olur. Bu durumda:
  • KEYCLOAK_BASE_URL paylaşımlı Keycloak’ı işaret eder.
  • Realm isimleri proje + ortam ile ayrışır (ProjectKeycloakId template sembolü).
  • Provisioning genelde kapalıdır; realm’ler bir kez platform kurulumunda hazırlanır.

Ortam doğrulama

API açılışında console’a hangi URL’lerin kullanıldığı yazılır (BuildingBlocks.Keycloak/DependencyInjection.cs):
UNREACHABLE görürseniz BaseUrl API’den erişilebilir değildir (bkz. Sorun Giderme).

İlgili

Provisioning

Hangi ortamda otomatik kurulum açık.

Sorun Giderme

Issuer mismatch ve metadata erişim hataları.

Authentication

Issuer / audience doğrulama detayları.

Realm Yapısı

Realm ve rol yapısı.