Kimlik Bilgisi Senkronizasyonu
Kimlik Bilgisi Senkronizasyonu, Database Provider, LDAP Active Directory, API Kimlik Sağlayıcı ve OIDC Kimlik Sağlayıcı kaynaklarındaki kullanıcıların, zamanlanmış veya elle tetiklenen bir işle otomatik olarak Kimlik Bilgisi kayıtlarına dönüştürülmesini sağlar. Böylece kimlik bilgileri her sağlayıcı için ayrı ayrı elle oluşturulmak yerine dış kaynaktan merkezi olarak güncel tutulur.
Senkronizasyon Profili
Her kimlik sağlayıcının (Database Provider, LDAP Active Directory, API Kimlik Sağlayıcı, OIDC Kimlik Sağlayıcı — yalnızca Keycloak sağlayıcı türünde) düzenleme ekranında ayrı bir Senkronizasyon Profili sekmesi bulunur. Bu sekmedeki ortak alanlar aşağıdaki gibidir:
| Alan | Açıklama |
|---|---|
| Senkronizasyonu Etkinleştir | Etkinleştirildiğinde kimlik bilgileri, tanımlanan zamanlamaya göre bu kaynaktan senkronize edilir. Kapalıyken ne zamanlanmış ne de elle senkronizasyon çalışır. |
| Cron İfadesi | Senkronizasyonun ne sıklıkla çalışacağını belirten Quartz cron ifadesidir (örn. 0 0 2 * * ?). Boş bırakılırsa yalnızca Senkronizasyon ekranından elle tetikleme yapılabilir. |
| Deaktivasyon Modu | Son senkronizasyon koşusunda kaynakta artık bulunmayan kullanıcılara karşılık gelen kimlik bilgilerine uygulanacak işlemdir: • Devre Dışı Bırak (geri alınabilir) — kimlik bilgisi pasif hale getirilir, kaydı korunur. Varsayılan değerdir. • Sil (geri dönüşsüz) — kimlik bilgisi tamamen silinir. • Hiçbiri (olduğu gibi koru) — herhangi bir işlem yapılmaz, sapma kabul edilir. |
Sağlayıcıya özgü ek alanlar aşağıda anlatılmıştır.
LDAP Active Directory
| Alan | Açıklama |
|---|---|
| Kök OU DN | Senkronize edilecek OU (Organizational Unit) ağacının kök DN değeridir. Örnek: OU=Users,DC=acme,DC=corp |
LDAP senkronizasyonu yalnızca kullanıcıları değil, kullanıcıların bağlı olduğu kurum/organizasyon ağacını da senkronize eder. Diğer kaynaklarda (Veritabanı, API) yalnızca kullanıcı senkronizasyonu yapılır. OIDC (Keycloak) kaynağı, Grupları Senkronize Et açıldığında kullanıcılara ek olarak grup ağacını da senkronize edebilir — aşağıya bakınız.
Database Provider
| Alan | Açıklama |
|---|---|
| Kullanıcı Listeleme Sorgusu | Senkronize edilecek kullanıcıları döndüren, parametre almayan bir SELECT sorgusudur. Dönen kolonlar için şu takma adlar kullanılmalıdır: username (zorunlu), email, full_name. Örnek: select login as username, mail as email, display_name as full_name from users |
API Kimlik Sağlayıcı
| Alan | Açıklama |
|---|---|
| Kullanıcı Listeleme URL'si | Senkronize edilecek kullanıcı listesini döndüren uç noktadır. |
| HTTP Metodu | Kullanıcı listesi uç noktası çağrılırken kullanılan HTTP metodudur. |
| Zaman Aşımı | İsteğin bu süre (saniye) sonunda sonlandırılacağını belirtir. |
| İstek Gövdesi | Kullanıcı listesi uç noktasına gönderilen isteğe bağlı istek gövdesidir (POST/PUT için). |
| İstek Başlıkları | Kullanıcı listesi isteğiyle birlikte gönderilecek isteğe bağlı HTTP başlıklarıdır (örn. Authorization). |
| Kullanıcı Dizisi JSON Path | Yanıt içindeki kullanıcı dizisine giden JSON Path ifadesidir. Varsayılan değer: $ |
| Kullanıcı Adı JSON Path | Bir kullanıcı öğesinden kullanıcı adına giden JSON Path ifadesidir. Zorunlu alandır. |
| E-posta JSON Path | Bir kullanıcı öğesinden e-postaya giden JSON Path ifadesidir. |
| Ad Soyad JSON Path | Bir kullanıcı öğesinden ad soyada giden JSON Path ifadesidir. |
OIDC Kimlik Sağlayıcı (Keycloak)
Yalnızca Sağlayıcı Türü Keycloak olan OIDC Kimlik Sağlayıcı kayıtlarında kullanılabilir; Generic sağlayıcı türünde senkronizasyon alanları anlamlı değildir (bkz. OIDC Kimlik Sağlayıcı).
| Alan | Açıklama |
|---|---|
| Realm | Keycloak realm adıdır. |
| Admin API Taban URL | Keycloak sunucusunun taban adresidir. |
| Senkron İstemci ID | Keycloak Admin API'sini çağırmak için kullanılan, service-account yetkilerine sahip istemcidir. |
| Senkron Sayfa Boyutu | Kullanıcılar Keycloak Admin API'sinden sayfalanarak (paged) çekilirken kullanılan sayfa boyutudur. |
| Grupları Senkronize Et | Açıkken Keycloak grup ağacı, kullanıcıların bağlı olduğu Kurumlar yapısına da yansıtılır. |
| Rol Senkron Kaynağı | Kullanıcıların rol/grup üyeliğinin hangi kaynaktan çekileceğini belirler: Realm Rolleri, İstemci Rolleri veya Gruplar. |
Kullanıcı adı kontratı: senkronizasyon, Keycloak'taki kullanıcı adını (username) doğrudan Kimlik Bilgisi kaydının kullanıcı adına yazar. OIDC politikalarındaki token doğrulaması ise varsayılan olarak preferred_username claim'ini okur — bu iki değer aynı kullanıcı için eşleşmelidir, aksi halde doğrulanan token hiçbir Kimlik Bilgisi kaydıyla eşleşmez.
Senkronizasyon Durumu ve Geçmişi
Kimlik > Sağlayıcılar > Senkronizasyon menüsünden açılan ekranda LDAP, Veritabanı, API ve OIDC kaynakları ayrı sekmelerde listelenir. Her satırda aşağıdaki bilgiler görüntülenir:
| Alan | Açıklama |
|---|---|
| Ad | Kimlik sağlayıcının adıdır. |
| Tür | Kaynak tipidir (LDAP / Veritabanı / API / OIDC). |
| Zamanlama | Tanımlı cron ifadesidir. |
| Durum | İşin durumudur: Zamanlanmış, Çalışıyor, Duraklatılmış, Beklemede, Tamamlandı, Hata veya Tanımsız (henüz koşmadı). |
| Son Senkronizasyon | Son koşunun tamamlanma zamanıdır. |
| Eklenen/Güncellenen, Deaktif Edilen, Atlanan, Hata | Son koşuda işlenen kayıt sayılarıdır. |
Bu ekrandaki Senkronize Et düğmesi ile ilgili kaynak için senkronizasyon zamanlaması beklenmeden anında tetiklenebilir.
Senkronizasyonu kapatılmış (Senkronizasyonu Etkinleştir alanı pasif) bir kaynak için Senkronize Et işlemi de çalıştırılamaz.
Tek bir kimlik bilgisi veya kurum kaydının detay ekranından da Senkronize Et düğmesiyle senkronizasyon tetiklenebilir. Bu, buradaki Senkronize Et ile aynı işlemi başlatır — yalnızca o tek kaydı değil, kaydın bağlı olduğu kaynak sağlayıcının tamamını senkronize eder.
Senkronizasyon Koşu Geçmişi
Yukarıdaki tablo yalnızca son koşunun özetini gösterir — her yeni koşu bir öncekinin üzerine yazılır. Bunun yanında, her koşu (zamanlanmış veya elle tetiklenmiş; başarılı, uyarılı, başarısız ve yapılandırma hatası yüzünden hiç başlayamamış olanlar dahil) kalıcı olarak da kaydedilir ve Senkronizasyon Geçmişi kartında ayrı bir satır olarak listelenir.
Senkronizasyon Geçmişi kartı iki ekranda görüntülenir:
- Kimlik > Sağlayıcılar > Senkronizasyon ekranının altında — projedeki tüm kaynakların koşuları, Kaynak sütunuyla birlikte.
- Her sağlayıcının görüntüleme (view) ekranının altında (Database Provider, LDAP Active Directory, API Kimlik Sağlayıcı, OIDC Kimlik Sağlayıcı) — yalnızca o kaynağın koşuları, Kaynak sütunu olmadan.
Tablo sütunları:
| Sütun | Açıklama |
|---|---|
| Kaynak (yalnızca genel ekranda) | Koşunun ait olduğu kimlik sağlayıcının adı ve türü (LDAP / Veritabanı / API / OIDC). Bu ad koşu anındaki isimdir — kaynak sonradan yeniden adlandırılsa ya da silinse bile geçmiş satırı okunabilir kalır. |
| Başlangıç | Koşunun başladığı zaman. |
| Süre | Koşunun toplam süresi. |
| Tetikleyici | Zamanlanmış veya Elle. Elle tetiklenen koşularda, koşuyu tetikleyen kullanıcının adı da bu sütunda görüntülenir. |
| Sonuç | Başarılı, Uyarı veya Başarısız. |
| Eklenen/Güncellenen, Deaktif Edilen, Atlanan, Hata | Koşuda işlenen kayıt sayıları. |
| Gerekçe | Koşunun sonucuna dair açıklama. |
Tablo sunucu taraflı sayfalanır (10 / 20 / 50 satır seçenekleriyle). Ekranın üst tarafındaki Senkronizasyon Durumu ve Geçmişi tablosu bu değişiklikten etkilenmez, aynen çalışmaya devam eder.
Uyarı durumu, koşunun hatasız tamamlandığı ama kaynaktan hiç kullanıcı okunamadığı anlamına gelir. Bu durumda, olası bir kaynak kesintisinin tüm kimlik bilgilerini toplu olarak deaktif etmesini önlemek için (bkz. Davranış ve Güvenlik Notları) uzlaştırma adımı o koşuda hiç çalışmaz — ne ekleme/güncelleme ne de deaktivasyon yapılır.
Kaynağa hiç bağlanılamayan veya yapılandırma hatası yüzünden ön kontrolde elenen koşular da geçmişe yazılır. Bir senkronizasyonun neden çalışmadığını araştırırken genellikle aranan bilgi bu satırlardadır.
Saklama Süresi
Senkronizasyon Geçmişi kayıtları, Uygulama Logu Temizleme Görevleri ekranındaki Kimlik Senkronizasyon Geçmişi satırı ile yönetilir. Bu ayar varsayılan olarak kapalıdır — yönetici açıkça bir süre (saat veya gün cinsinden) girip etkinleştirmedikçe hiçbir koşu kaydı otomatik olarak silinmez. Hem saatlik hem günlük temizleme görevi bu ayarı okur.
Denetim Kaydında Kaynak Bilgisi
Senkronizasyonun değiştirdiği kimlik bilgisi (credential) kayıtları Denetim Kayıtları ekranında artık jenerik bir sistem kullanıcısı yerine sync:<KAYNAK TÜRÜ>:<kaynak adı> biçiminde görünür — örneğin sync:LDAP:corp-ad veya sync:OIDC:keycloak-prod. Böylece bir kimlik bilgisinin senkronizasyon yoluyla mı yoksa bir kullanıcı tarafından mı değiştirildiği, hangi kaynaktan geldiği de belli olacak şekilde ayırt edilebilir. Bu değer Denetim Kayıtları ekranının Kullanıcı alanında aranabilir.
Elle tetiklenen bir koşuda, koşuyu başlatan yöneticinin adı bu denetim kaydına yazılmaz — o bilgi yukarıdaki Senkronizasyon Geçmişi tablosunun Tetikleyici sütununda gösterilir.
Davranış ve Güvenlik Notları
- Elle oluşturulmuş (senkronizasyon dışı) bir kimlik bilgisinin kullanıcı adı kaynakta da mevcutsa, bu kayıt senkronizasyon tarafından üzerine yazılmaz; çakışmanın giderilmesi için yönetici müdahalesi gerekir.
- Bir kimlik bilgisi zaten başka bir kaynak tarafından yönetiliyorsa (örneğin LDAP), farklı bir kaynak (örneğin Veritabanı) bu kaydı devralmaz.
- Aynı kullanıcı adı başka bir projede zaten kayıtlıysa, senkronizasyon bu kullanıcı adıyla başka bir projede yeni bir kimlik bilgisi oluşturmaz.
- Kaynaktan kullanıcı listesi alınamazsa (bağlantı hatası vb.) veya kaynak hiç kullanıcı döndürmezse, olası bir kaynak kesintisinin toplu deaktivasyona yol açmaması için o koşuda deaktivasyon adımı atlanır.
İlgili Sayfalar
Sağlayıcı bağlantı ayarları için Database Provider, LDAP Active Directory, API Kimlik Sağlayıcı ve OIDC Kimlik Sağlayıcı sayfalarını, senkronize edilen kayıtlar için Kimlik Bilgileri sayfasını inceleyebilirsiniz.