Ana içeriğe geç

Kimlik Bilgisi Senkronizasyonu

bilgi

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:

Kimlik Bilgisi Senkronizasyon Profili
AlanAçıklama
Senkronizasyonu EtkinleştirEtkinleştirildiğinde kimlik bilgileri, tanımlanan zamanlamaya göre bu kaynaktan senkronize edilir. Kapalıyken ne zamanlanmış ne de elle senkronizasyon çalışır.
Cron İfadesiSenkronizasyonun 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 ModuSon 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

AlanAçıklama
Kök OU DNSenkronize edilecek OU (Organizational Unit) ağacının kök DN değeridir. Örnek: OU=Users,DC=acme,DC=corp
not

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

AlanAçıklama
Kullanıcı Listeleme SorgusuSenkronize 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ı

AlanAçıklama
Kullanıcı Listeleme URL'siSenkronize edilecek kullanıcı listesini döndüren uç noktadır.
HTTP MetoduKullanı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övdesiKullanı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 PathYanıt içindeki kullanıcı dizisine giden JSON Path ifadesidir. Varsayılan değer: $
Kullanıcı Adı JSON PathBir kullanıcı öğesinden kullanıcı adına giden JSON Path ifadesidir. Zorunlu alandır.
E-posta JSON PathBir kullanıcı öğesinden e-postaya giden JSON Path ifadesidir.
Ad Soyad JSON PathBir 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ı).

AlanAçıklama
RealmKeycloak realm adıdır.
Admin API Taban URLKeycloak sunucusunun taban adresidir.
Senkron İstemci IDKeycloak Admin API'sini çağırmak için kullanılan, service-account yetkilerine sahip istemcidir.
Senkron Sayfa BoyutuKullanıcılar Keycloak Admin API'sinden sayfalanarak (paged) çekilirken kullanılan sayfa boyutudur.
Grupları Senkronize EtAçı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.
not

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:

Kimlik Bilgisi Senkronizasyon durumu ve geçmişi
AlanAçıklama
AdKimlik sağlayıcının adıdır.
TürKaynak tipidir (LDAP / Veritabanı / API / OIDC).
ZamanlamaTanımlı cron ifadesidir.
Durumİşin durumudur: Zamanlanmış, Çalışıyor, Duraklatılmış, Beklemede, Tamamlandı, Hata veya Tanımsız (henüz koşmadı).
Son SenkronizasyonSon koşunun tamamlanma zamanıdır.
Eklenen/Güncellenen, Deaktif Edilen, Atlanan, HataSon 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.

uyarı

Senkronizasyonu kapatılmış (Senkronizasyonu Etkinleştir alanı pasif) bir kaynak için Senkronize Et işlemi de çalıştırılamaz.

ipucu

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

bilgi

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:

Tablo sütunları:

SütunAçı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üreKoşunun toplam süresi.
TetikleyiciZamanlanmış 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, HataKoşuda işlenen kayıt sayıları.
GerekçeKoş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ı sonucu ne anlama gelir

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.

Başarısız ve elenmiş koşular da kaydedilir

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ı

bilgi
  • 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.