diyanet-vatandas-dev-realm (Vatandaş)
Vatandaş portali (Website SPA) bu realm’a bağlanır.| Öğe | Değer |
|---|---|
| Realm | diyanet-vatandas-dev-realm |
| Client | diyanet-website (public, PKCE) |
| Realm/Client rolü | Citizen |
| Identity Provider | google (Google ile devam et) |
| Access token ömrü | 7200 sn (2 saat) |
| Refresh token rotation | açık, 3600 sn |
| Login theme / locale | keycloak.v2 / tr |
diyanet-yonetim-dev-realm (Personel)
Yönetim paneli (Admin SPA) bu realm’a bağlanır.| Öğe | Değer |
|---|---|
| Realm | diyanet-yonetim-dev-realm |
| Client | diyanet-admin (public, PKCE) |
| Roller | SuperAdmin, Admin, Staff, ReadOnly |
| Access token ömrü | 300 sn (5 dakika) |
| Refresh token rotation | açık, 1800 sn |
| Login theme / locale | keycloak.v2 / tr |
Role enumeration’ıyla birebir eşleşir
(SuperAdmin=1, Admin=2, Staff=3, ReadOnly=4) ve DB’deki role_permission seed’i bu rollere
izin atar. Keycloak rolü token’a realm_access.roles / resource_access.{client}.roles olarak
girer; KeycloakRoleClaimsTransformation bunları ClaimTypes.Role ve permissions claim’ine
dönüştürür.
Protocol Mapper’lar
Her client’ta iki custom mapper kuruludur (User Attribute → token claim):| Name | User Attribute | Claim | JSON Type | Multivalued | Access Token |
|---|---|---|---|---|---|
permissions | permissions | permissions | String | ON | ON |
organization_id | organization_id | organization_id | String | OFF | ON |
permissions mapper’ı multivalued olmalıdır — bir kullanıcının birden fazla izni token’a
ayrı değerler olarak girer. organization_id tek değerlidir ve multi-tenant izolasyonunu besler
(tenant_id ile eşdeğer kabul edilir).
Identity Provider — Google (yalnız vatandaş realm’ı)
Vatandaş realm’ında Google IdP tanımlıdır:ClientId/ClientSecret Google Cloud Console’dan alınıp .env / provisioning config’ine
girilir.
Token içeriği örneği
Personel realm’ındanAdmin rollü bir kullanıcının access token’ının ilgili kesiti
(MapInboundClaims=false ile claim isimleri korunur):
KeycloakRoleClaimsTransformation bu yapıyı normalize eder; ardından
UserContextClaimsTransformation DB’den user_id, eksik permissions ve account_status
claim’lerini ekler (bkz. Authentication).
İlgili
Client Yapılandırması
Client ayarları ve manuel kurulum.
Provisioning
Bu yapının otomatik kurulumu.
Authorization
Rollerin izinlere haritalanması.
Multi-Tenancy
organization_id ile tenant izolasyonu.