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:

Database sağlayıcı Identity Synchronization Profile sekmesi: cron, deaktivasyon modu, senkronizasyon kapsamı ve uzlaştırma emniyet ağı
Database sağlayıcı — Identity Synchronization Profile
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 hiç bulunmayan kullanıcılara — LDAP kaynağında her zaman, OIDC kaynağında Grupları Senkronize Et açıkken ise ayrıca artık bulunmayan gruplara/kurumlara — karşılık gelen kayıtlara uygulanacak işlemdir:
Devre Dışı Bırak (geri alınabilir) — kimlik bilgisi pasif hale getirilir, kaydı korunur. Varsayılan değerdir.
Sil — kimlik bilgisi ya da kurum silinmez; erişimi kesecek şekilde pasifleştirilir ve mezar taşı (tombstone) olarak işaretlenir, kayıt ve ona bağlı ilişkiler korunur. Bkz. aşağıdaki not.
Hiçbiri (olduğu gibi koru) — herhangi bir işlem yapılmaz, sapma kabul edilir.
Sil modu artık kalıcı olarak silmez

Sil modu, kaynakta artık hiç bulunmayan bir kimlik bilgisini ya da kurumu fiziksel olarak kaldırmaz. Kimlik bilgilerinde erişim, Devre Dışı Bırak ile aynı şekilde kesilir; farkı, kaydın ayrıca kalıcı olarak "artık geçerli değil" (mezar taşı) damgası taşımasıdır. Kurumlarda kayıt korunduğu için ona bağlı kimlik bilgilerinin kurum bağlantısı kopmazkurum silme işleminden farklı olarak bağlı kayıtlar başka bir kuruma taşınmaz. Kalıcı temizleme (kaydın veritabanından tamamen kaldırılması) bu sürümde yapılmaz; ayrı bir bakım özelliği olarak planlanmıştır.

Bu sürümden önce Sil modu kaydı kalıcı ve geri dönüşsüz olarak kaldırıyordu. Aynı ayar artık geri alınabilir bir sonuç üretir: erişim yine kesilir, yalnızca kayıt kaybolmaz.

Açılır listedeki seçenek şu an hâlâ Sil (geri dönüşsüz) olarak etiketlidir — etiket yukarıdaki değişikliğe henüz uydurulmamıştır. Etiketten bağımsız olarak geçerli davranış yukarıda anlatılandır.

Bu, Kapsamdan Çıkan Kayda Ne Olur bölümündeki Mezar taşı bırak seçeneğinden farklı bir tetikleyicidir: burası kaynakta hiç görülmeyen kayıtları, oradaki ayar ise kaynakta görülüp yalnızca kapsam filtresinin dışına düşen kayıtları kapsar. İkisi de aynı sonucu (mezar taşı) üretebilir.

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 Kapsamı

Bir kaynak varsayılan olarak okuyabildiği her şeyi senkronize eder. Aynı sekmedeki Senkronizasyon Kapsamı kartı bu kümeyi daraltır: Kullanıcılar, Gruplar / Organizasyonlar (yalnız LDAP ve OIDC) ve Roller (yalnız OIDC) için ayrı kabul/ret desen listeleri tanımlanır.

AlanAçıklama
Desen TipiGlob* istediğiniz sayıda karakteri (/ ayracı dahil), ? tam olarak bir karakteri karşılar; diğer tüm karakterler literaldir, yani desendeki bir . ya da ( gerçekten o karakter demektir. Düzenli İfade — desen yazıldığı gibi derlenir; aşağıdaki uyarıya bakınız.
Eşleştirilen AlanDesenlerin kaydın hangi alanına uygulanacağı. Kullanıcılar tüm kaynaklarda kullanıcı adı, e-posta ya da ad soyad üzerinden; LDAP ve OIDC'de ayrıca dış kimlik üzerinden; LDAP'ta DN (yol) üzerinden de eşleştirilebilir. Gruplar yol ya da ad, roller ad üzerinden eşleştirilir.
Büyük/Küçük Harf DuyarlılığıVarsayılan olarak kapalıdır: desenler harf durumundan bağımsız eşleşir.
Kabul DesenleriBoş olduğu sürece tüm kayıtlar adaydır. En az bir desen girildiğinde bir kaydın kapsamda kalması için bunlardan biriyle eşleşmesi gerekir.
Ret DesenleriBunlardan biriyle eşleşen kayıt, bir kabul deseniyle de eşleşse bile elenir — ret her zaman kazanır.

Desen değerin bir parçasıyla değil tamamıyla eşleşir: admin deseni yalnız admin adlı kullanıcıyı karşılar; içinde "admin" geçen tüm kullanıcı adları için *admin* yazılır.

Yollar tek bir ortak biçimde karşılaştırılır

Eşleştirilen alan Yol olduğunda hem kaydın değeri hem de desen karşılaştırmadan önce normalize edilir; böylece bir LDAP DN'i ile bir Keycloak grup yolu aynı biçime iner: CN=Dev,OU=Eng,DC=acme,DC=corp ve /Eng/Dev ikisi de /Eng/Dev olur. Dolayısıyla tek bir desen her kaynakta aynı anlamı taşır ve deseni hangi yazımda tanımladığınız fark etmez — ou=eng,dc=acme ile /Eng/* eşit derecede geçerlidir.

Değerlendirilemeyen desen koşuyu başarısız yapar

Filtre desenleri koşunun en başında bir kez derlenir. Derlenemeyen, 512 karakterden uzun ya da değerlendirilmesi güvenli bulunmayan (eşleşmeyen girdide üstel sürede çalışabilecek yapıdaki) bir desen koşuyu Başarısız ile bitirir — koşu, filtre yokmuş gibi devam etmez. Filtresiz devam etmek, bir ret deseninin elemesi gereken herkesi yeniden kapsama alırdı; iki sonuçtan tehlikeli olanı budur. Glob'lar da aynı denetimden geçer, çünkü *a*a*a*a*b gibi bir desen çevrildikten sonra en az onun kadar pahalıdır.

Kapsamdan Çıkan Kayda Ne Olur

Kaynakta hâlâ var olan ama artık filtreyle eşleşmeyen bir kullanıcı, kaynaktan silinmiş sayılmaz. Kimlik bilgisi koşu tarafından görülmüş olarak damgalanır — böylece uzlaştırma adımı onu bayat saymaz — ve kaderini Kapsam Çıkışı Politikası belirler:

PolitikaEtkisi
Olduğu gibi bırak (varsayılan)Kimlik bilgisine dokunulmaz.
PasifleştirKimlik bilgisi pasifleştirilir, kayıt korunur.
Mezar taşı bırakKimlik bilgisi mezar taşı (tombstone) olarak işaretlenir.

Elle oluşturulmuş bir kimlik bilgisine ve başka bir kimlik kaynağına ait bir kayda bu politika hiçbir zaman dokunmaz — senkronizasyonun genelinde geçerli olan korumalar burada da geçerlidir.

Bir koşuda filtrenin kaç kaydı elediği, koşu geçmişindeki Elenen sütununda görünür. Elenen kullanıcılar için kullanıcı bazlı hata kaydı yazılmaz: on binlerce kullanıcıyı eleyen bir kapsam daraltması, koşunun hata listesini doldurup gerçek eleme gerekçelerini ekrandan silerdi.

Uzlaştırma Emniyet Ağı

Kapsam filtresinin altındaki alanlar, uzlaştırmanın ne yapmaya yetkili olduğunu belirler.

AlanAçıklama
Kapsam Çıkışı PolitikasıKapsamdan çıkan kayda ne olacağı — bkz. yukarıdaki bölüm. Varsayılan: Olduğu gibi bırak.
Deaktivasyon Eşiği (%)Deaktive edilecek kayıtlar, kaynağın yönettiği kayıtların bu oranını aştığında uzlaştırma koşmaz ve onay bekler — bkz. Deaktivasyon Eşiği ve Uzlaştırma Onayı. Varsayılan: %20.
Deaktivasyon Eşiği (adet)Aynı kontrolün mutlak sayı ile hâli. Varsayılan 0'dır ve yalnız yüzde kontrolünü etkin bırakır.
Kaynak kararlı bir dış kimlik döndürmüyorsa deaktive etme ve silmeVarsayılan olarak kapalıdır. Aşağıdaki uyarıya bakınız.
Kararlı dış kimlik olmadan deaktivasyon

Uzlaştırma, bir kullanıcının artık olmadığına koşuda onu görmeyerek karar verir. Kararlı bir dış kimlik — kullanıcı yeniden adlandırıldığında değişmeyen bir kimlik — yoksa elde tek anahtar kullanıcı adıdır; kaynakta yeniden adlandırılan bir kullanıcı kaybolmuş görünür ve yıkıcı uzlaştırma bu görüntünün üzerine iş yapar.

Bugün hangi kaynak böyle bir kimlik döndürüyor:

KaynakKararlı dış kimlik
OIDC (Keycloak)Var — kullanıcının Keycloak UUID'si.
LDAP / Active DirectoryYalnız kullanıcı nesne sınıfı için çekilen öznitelikler arasına kararlı bir öznitelik (entryUUID, objectGUID gibi) eklendiğinde. Senkronizasyon bunu kendiliğinden istemez — mevcut dizin sorgularını değiştirmek başlı başına bir davranış değişikliği olurdu.
VeritabanıYok — kullanıcı listesi sorgusu sözleşmesinde kimlik kolonu bulunmaz.
APIYok — yanıt eşlemesinde kimlik alanı bulunmaz.

Bu sürümde mevcut davranış korunmuştur. Kararlı kimliği olmayan bir kaynak, eskisi gibi pasifleştirmeye ve silmeye devam eder; koşu yalnızca hata listesine bir uyarı yazar, böylece risk oluştuğu yerde görünür olur. Kaynak kararlı bir dış kimlik döndürmüyorsa deaktive etme ve silme ayarı açıldığında ise uzlaştırma, kullanıcı adının üzerine iş yapmak yerine o kaynakta durur.

Bu opsiyonel ayarın gelecek bir ana sürümde varsayılan hâline gelmesi planlanmaktadır. Kararlı kimliğin hiç elde edilemediği Veritabanı ve API kaynaklarında ayarı şimdiden açmak güvenli taraftır.

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 Senkronizasyonu ekranı: LDAP Database API OIDC sekmeleri, sağlayıcı tablosu ve senkronizasyon geçmişi
Kimlik Senkronizasyonu — sağlayıcı listesi ve geçmiş
AlanAçıklama
AdKimlik sağlayıcının adıdır.
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.
SonuçSon koşunun sonucudur: Başarılı, Uyarı veya Başarısız.

Bu ekrandaki Senkronize Et düğmesi ile ilgili kaynak için senkronizasyon zamanlaması beklenmeden anında tetiklenebilir.

not

Senkronize Et koşuyu arka planda başlatır ve hemen döner — düğmeye basıldığı andaki sayılar henüz bir önceki koşuya aittir.

Koşu kaydı ise beklemez: düğmeye basıldığı anda Senkronizasyon Geçmişi tablosunda Kuyrukta durumunda bir satır doğar, koşu başlayınca Çalışıyor olur ve bittiğinde sonucunu alır. Böylece hiç başlayamamış bir koşu bile ekranda görünür.

Sonucu görmek için bu ekranda elle tazeleme gerekmez: geçmiş tablosu çalışan koşuyu canlı olarak takip eder ve koşu bittiği anda yukarıdaki kaynak satırlarının özet sayıları da kendiliğinden güncellenir. Tetikleme sonrası görünen bilgi mesajı da bunu söyler; artık kullanıcıdan tabloyu yenilemesi istenmez.

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.

Elle Koşunun Kapsamını Seçme

LDAP ve OIDC kaynaklarında Senkronize Et düğmesi bir kapsam menüsü taşır; düğmenin kendisine basmak yine tam senkronizasyon başlatır.

KapsamNe yapar
TamKullanıcılar, grup/organizasyon ağacı ve roller, ardından uzlaştırma. Zamanlanmış koşular her zaman bunu yapar; Senkronize Et düğmesi de bu sürümden önce bunu yapıyordu.
Yalnız kullanıcıYalnızca kullanıcıları okur. Grup/organizasyon ağacı okunmadığı için uzlaştırılmaz da; kullanıcılar hiçbir şey çekmemiş bir geçiş yüzünden temizlenmek yerine mevcut organizasyon ve rollerini korur. Kaynakta pasifleştirilen bir kullanıcı yine pasif olarak yansıtılır.
Yalnız grupYalnızca grup/organizasyon ağacını okur. Hiçbir kullanıcı okunmaz ve yazılmaz; yalnız organizasyon uzlaştırması çalışır.

Veritabanı ve API kaynakları yalnız kullanıcı senkronize ettiği için bu kaynaklarda düğmenin menüsü yoktur. Bir koşunun kapsamı koşu geçmişindeki Kapsam sütununda görünür; bu sürümden önce kaydedilmiş satırlar Tam görünür, çünkü o koşular gerçekten tam koşuydu.

Daraltılmış kapsam, okumadığı şeyi temizlemez

Koşu kapsamının taşıdığı ayrım "çekildi ve boş geldi" ile "hiç çekilmedi" arasındadır. Yalnız kullanıcı koşan bir koşu grup ağacını okumaz, dolayısıyla organizasyonlar ve roller hakkında bir şey söylemez ve motor ikisine de dokunmaz. Ağacı okuyup kullanıcıyı hiçbir grupta bulmayan tam bir koşu ise bunu söylemiş olur ve kullanıcının organizasyonu — hep olduğu gibi — temizlenir.

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). Geçmişteki kaynak adı, koşu anında alınmış bir kopyadır. Sağlayıcı sonradan yeniden adlandırılsa da geçmiş satırı eski adı korur. Sağlayıcı silindiğinde ise ona ait koşu geçmişi ve hata listeleri birlikte silinir.
BaşlangıçKoşunun kuyruğa alındığı zaman; satır bu anda doğar.
SüreKoşunun gerçek yürütme süresidir — kuyrukta beklenen süre bu değere dahil edilmez.
TetikleyiciZamanlanmış veya Elle. Elle tetiklenen koşularda, koşuyu tetikleyen kullanıcının adı da bu sütunda görüntülenir.
KapsamKoşunun neyi kapsadığı: Tam, Yalnız kullanıcı, Yalnız grup veya Uzlaştırma uygulama — bkz. Elle Koşunun Kapsamını Seçme. Bu sürümden önce kaydedilmiş satırlar Tam görünür.
SonuçKoşunun o anki durumu: Kuyrukta, Çalışıyor, Başarılı, Uyarı, Başarısız, Yarıda Kaldı, İptal Edildi veya Uzlaştırma Onayı Bekliyor. Anlamları için Koşu Yaşam Döngüsü bölümüne bakınız. Koşu bu durumlardan biriyle başarıyla sonuçlanamadıysa, durum rozetinin yanında nedeni özetleyen bir sebep rozeti de görünür — bkz. Başarısızlık Sebebi Rozeti.
Eklenen/Güncellenen, Değişmeyen, Deaktif Edilen, Atlanan, HataKoşuda işlenen kayıt sayıları — Değişmeyen için bkz. Değişmeyeni Atlama.
ElenenSenkronizasyon kapsam filtresinin elediği kayıt sayısıdır. Filtre var olmadan önce çalışmış koşularda bu sütun 0 değil - görüntülenir: "bilinmiyor" ile "hiçbiri elenmedi" aynı şey değildir.
Hata/UyarıBu koşuda kaydedilen kullanıcı bazlı hata ve eleme sayısıdır. Sayının üzerine tıklanarak satır genişletilir ve gerekçeler listelenir — bkz. Koşu Hata Listesi. Hata listesi tutulmaya başlamadan önce çalışmış eski koşularda bu sütun - görüntülenir.
GerekçeKoşunun sonucuna dair açıklama.
İşlemlerBekleyen bir uzlaştırma onayı hâlâ onaylanabilir durumdayken Uzlaştırmayı Onayla düğmesini, koşu Kuyrukta ya da Çalışıyor durumundayken İptal düğmesini taşır — bkz. Deaktivasyon Eşiği ve Uzlaştırma Onayı ve İptal.

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 uzlaştırma adımının güvenlik gereği o koşuda hiç çalışmadığı anlamına gelir. İki nedeni olabilir:

  • Kaynaktan hiç kullanıcı okunamadı. Bu koşuda ne ekleme/güncelleme ne de deaktivasyon yapılır. Kullanıcı arama filtresini, base DN'i veya sorgu ayarlarını kontrol edin.
  • Kullanıcı listesi tam okunamadı. Dizin sunucusu sayfalı sonuçları desteklemediği (ya da kullanılmasına izin vermediği) için yalnızca ilk sayfa okunabilmiştir. Okunabilen kayıtlar normal şekilde eklenir/güncellenir; atlanan tek adım deaktivasyondur — çünkü kısmi bir liste, okunmamış sayfalardaki her kaydı kaynakta artık yokmuş gibi gösterirdi. Aynı kural, dizinden okunan tek bir kayıt bile dönüştürülemediğinde de geçerlidir: koşu eksik sayılır ve devre dışı bırakma/silme atlanır. Bkz. LDAP Active Directory.

Her iki durumda da amaç aynıdır: olası bir kaynak kesintisinin ya da eksik bir okumanın tüm kimlik bilgilerini toplu olarak deaktif etmesini önlemek (bkz. Davranış ve Güvenlik Notları).

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.

Koşu satırı tetiklemeden önce oluşturulduğu için, zamanlayıcı hiç tetiklenemediğinde de bir satır kalır: o satır Başarısız sonucunu ve gerekçesini taşır. Eskiden bu durumda ekranda hiçbir iz kalmıyordu.

Koşu Yaşam Döngüsü

Her koşu Kuyrukta durumunda doğar, bir Manager düğümü tarafından devralındığında Çalışıyor olur ve sonunda bir sonuç durumuna geçer. Sonuç durumları geriye dönmez — bir koşu sonuçlandıktan sonra durumu değişmez.

DurumAnlamı
KuyruktaKoşu kaydedildi, zamanlayıcı tetiklendi, henüz hiçbir düğüm işi almadı.
ÇalışıyorBir Manager düğümü koşuyu yürütüyor. Düğüm çalıştığı sürece — kaynaktan ilk okuma dahil her aşamada — düzenli olarak yaşam sinyali basar. Bu yüzden okunması on dakikayı aşan büyük bir kaynak (on binlerce kullanıcı) terk edilmiş koşu sanılmaz.
BaşarılıKoşu tamamlandı; ekleme/güncelleme ve (tanımlıysa) deaktivasyon adımları çalıştı.
UyarıKoşu hatasız bitti ama uzlaştırma adımı güvenlik gereği hiç çalışmadı — yukarıdaki Uyarı sonucu ne anlama gelir kutusuna bakınız.
BaşarısızKoşu hata aldı, ön kontrolde elendi ya da tetiklenemedi.
Yarıda KaldıKoşu tamamlanmadan sustu: onu yürüten düğümden yaşam sinyali gelmeyi kesti (düğüm yeniden başlatıldı, kapatıldı ya da ağdan koptu). Sayaçları eksik olabilir.
İptal EdildiKoşu, Kuyrukta ya da Çalışıyor durumundayken bir yönetici tarafından elle durduruldu — bkz. İptal.
Uzlaştırma Onayı BekliyorKoşu hatasız bitti ve ekleme/güncelleme adımı çalıştı, ancak deaktive edilecek kayıt sayısı deaktivasyon eşiğini aştığı için uzlaştırma adımı hiç çalışmadı: bir yöneticinin onayı bekleniyor. Hiçbir kayıt deaktive edilmedi veya silinmedi. Bkz. Deaktivasyon Eşiği ve Uzlaştırma Onayı.
Yarıda kalan koşular nasıl kapanır

Beş dakikada bir çalışan bir bakım görevi, bitmemiş koşuları tarar. Yaklaşık on dakikadır yaşam sinyali gelmeyen bir Çalışıyor koşu ile yaklaşık on beş dakikadır hiçbir düğümün devralmadığı bir Kuyrukta koşu Yarıda Kaldı olarak işaretlenir ve kaynak yeniden senkronize edilebilir hale gelir.

Müşteri ortamında bu iki durumu ayırt etmek için INFO seviyesindeki Manager uygulama logu yeterlidir: bakım görevi işaretlediği her koşu için bir WARN satırı yazar — Identity sync run <id> ... marked INTERRUPTED: no heartbeat for <n>s (lastHeartbeatAt=..., phase=..., processed=...) — koşunun kendisi ise fetch starting, her faz için (gruplar, roller, kullanıcılar) kaynağa atılan istek sayısı ve geçen süreyle birer ... phase complete satırı ve fetch complete yazar. Beş saniyeden uzun süren bir kaynak isteği yolu ve süresiyle SLOW Keycloak admin read olarak loglanır. fetch starting var ama ardından hiçbir phase complete gelmiyorsa ve düğüm çalışmaya devam ettiyse kaynak çok yavaş yanıt veriyordur; log tamamen kesildiyse düğüm durmuştur. Birden fazla Manager kopyası varsa her kopyanın logu incelenmelidir.

Bu işaretleme kaynağın son senkronizasyon sayaçlarına dokunmaz: yarıda kalan koşu hiç sayaç üretmediği için önceki koşunun sayıları olduğu gibi kalır, yanıltıcı bir "sıfır" yazılmaz.

Uzlaştırma Onayı Bekliyor durumundaki koşular bu taramaya girmez. O koşu ölmemiştir, bitmiştir — yalnızca uygulanmamış bir kararı vardır. Aksi halde yöneticiye onay için tanınan süre on dakikada "yarıda kaldı"ya dönerdi.

Başarısızlık Sebebi Rozeti

Koşu Başarısız, Yarıda Kaldı ya da İptal Edildi durumuyla sonuçlandığında, koşu geçmişindeki durum rozetinin yanında, nedeni özetleyen ikinci bir sebep rozeti görünür:

Sebep RozetiNe zaman görünürNe yapılmalı
ErişilemiyorKaynağa ağ, DNS veya TLS düzeyinde ulaşılamadı.Kaynağın adresini, ağ erişimini ve sertifikasını kontrol edin.
Zaman aşımıBağlantı ya da okuma isteği tanımlı süre içinde tamamlanmadı.Kaynağın yanıt süresini ve tanımlı zaman aşımı değerlerini gözden geçirin.
Kimlik reddedildiKaynak sunulan kimlik bilgilerini reddetti (HTTP 401 ya da eşdeğer bir LDAP kimlik hatası).İlgili istemcinin/servis hesabının kimlik bilgilerini doğrulayın.
İzin eksikKaynak yetkilendirmeyi reddetti (HTTP 403 ya da eşdeğer bir LDAP yetki hatası); rozetin ayrıntısında hangi okumanın — Kullanıcılar, Gruplar veya Roller — engellendiği belirtilir.Servis hesabına eksik izni/rolü tanımlayın.
HTTP hatasıKaynak, yukarıdaki ikisi dışında bir HTTP hata durum koduyla yanıt verdi; kod rozetin ayrıntısında görünür.Durum koduna göre kaynak tarafında araştırma yapın.
YapılandırmaKoşu, kaynağa hiç gidilmeden ön kontrol aşamasında elendi (örn. eksik bağlantı bilgisi, boş bırakılmış zorunlu bir alan).Sağlayıcının yapılandırmasını tamamlayıp koşuyu yeniden tetikleyin.
Yarıda kaldıKoşuyu yürüten düğüm yaşam sinyali göndermeyi kesti.Koşuyu yeniden tetikleyin; sık tekrarlanıyorsa düğüm kararlılığını inceleyin.
İptal edildiKoşu bir yönetici tarafından elle durduruldu — bkz. İptal.Gerekirse senkronizasyonu yeniden tetikleyin.
BilinmiyorBaşarısızlık yukarıdaki sınıflardan hiçbirine uymuyor.Gerekçe metnini ve gerekiyorsa sunucu loglarını inceleyin.

Sınıflandırma otomatiktir: kaynaktan dönen HTTP 401 yanıtı Kimlik reddedildi, HTTP 403 yanıtı İzin eksik (ilgili okuma bilgisiyle birlikte), diğer HTTP hata durum kodları HTTP hatası olarak işlenir; kaynağa hiç ulaşılamayan (ağ/DNS/TLS) durumlar Erişilemiyor, bağlantı ya da okuma zaman aşımları Zaman aşımı olarak sınıflandırılır. LDAP kaynağındaki eşdeğer kimlik ve yetki hataları da aynı sınıflara düşer.

Rozet en olası nedeni kısa bir etiketle özetler; koşunun tam açıklaması yine Gerekçe sütununda okunur.

İptal

Kuyrukta ya da Çalışıyor durumundaki bir koşu, koşu geçmişi tablosundaki İptal düğmesiyle durdurulabilir; düğme, ilgili kimlik sağlayıcıyı yönetebilen kullanıcılara (kimlik yönetimi yetkisi) açıktır.

İptal isteği anında uygulanmaz: motor bayrağı bir sonraki sayfa sınırında görür ve kaynaktan veri çekmeyi orada keser. Kaynaktan okunan kayıtlar çekim sırasında bellekte tutulur, geldikçe yazılmaz — bu yüzden çekim sırasında gelen bir iptal onları siler: o koşudan hiçbir kayıt kimlik bilgisine ulaşmaz. Devre dışı bırakma/silme (uzlaştırma) adımı da atlanır, çünkü kısmi bir listenin kimseyi devre dışı bırakmaması gerekir.

Koşu İptal Edildi durumunda kapanır; kaynağın son senkronizasyon sonucu, tıpkı uzlaştırma atlandığında olduğu gibi Uyarı olarak görünür.

Zaten sonuçlanmış bir koşuyu (Başarılı, Uyarı, Başarısız, Yarıda Kaldı, İptal Edildi ya da Uzlaştırma Onayı Bekliyor) iptal etmeye çalışmak, çevrilmiş bir hata mesajıyla birlikte 409 ile reddedilir.

Değişmeyeni Atlama

Senkronizasyon her kullanıcı için yazdığı alanların bir parmak izini kayıtla birlikte saklar. Sonraki bir koşuda kaynaktaki hâl aynıysa kayıt yeniden yazılmaz ve gateway'lere yeniden dağıtılmaz; yalnızca kaydın "son senkron" damgası toplu olarak tazelenir. Bu şekilde işlenen ama değişmemiş kayıtlar, koşu satırındaki Değişmeyen sayacında görünür.

Sağlıklı bir tekrar koşusunda Güncellenen 0 / Değişmeyen N görmek normaldir — kaynakta hiçbir şey değişmediyse senkronizasyonun yeniden yazacağı bir şey yoktur.

Yükseltme sonrası ilk koşu

Bu davranış bu sürümle gelir; parmak izi henüz hiçbir kayıtta yoktur. Yükseltme sonrasındaki ilk koşu bu yüzden her kaydı bir kez daha yeniden yazar ve parmak izini o kayda işler; sonraki koşulardan itibaren değişmeyen kayıtlar atlanmaya başlar.

Damga tazeleme adımı başarısız olursa koşu Uyarı ile kapanır ve uzlaştırma adımı atlanır — aksi halde tazelenememiş kayıtlar kaynakta artık yokmuş gibi yorumlanıp yanlışlıkla devre dışı bırakılabilirdi.

Deaktivasyon Eşiği ve Uzlaştırma Onayı

Uzlaştırma adımı, kaynakta artık görünmeyen kimlik bilgilerini Deaktivasyon Modu ayarına göre pasifleştirir veya siler. Kaynak tarafındaki tek bir yanlış yapılandırma (yanlış base DN, daraltılmış bir arama filtresi, boşalmış bir grup) bu adımı, binlerce tüketicinin erişimini tek koşuda kesen bir işleme dönüştürebilir.

Bu yüzden uzlaştırma, başlamadan önce iki sayım yapar: bu koşuda kaç kayda dokunulacak ve kaynak toplam kaç senkron-yönetimli kayda sahip. Oran deaktivasyon eşiğini aşarsa uzlaştırma hiç çalışmaz — tek bir kayıt bile yazılmaz — ve koşu Uzlaştırma Onayı Bekliyor durumunda kapanır.

Eşik değerleri her kimlik sağlayıcının senkronizasyon ayarlarında tanımlanır; varsayılan olarak yüzde eşiği %20'dir ve adet eşiği tanımsızdır (yalnız oran denetlenir). Eşiği sıfır ya da negatif yapmak o denetimi kapatır; ikisi birden kapatıldığında hiç ölçüm yapılmaz.

Denetim yalnız yıkıcı yola aittir: Deaktivasyon Modu Pasifleştir ya da Sil iken yapılır, Hiçbiri iken zaten deaktive edilecek bir şey olmadığı için atlanır. Ayrıca bir politika değil emniyet ağıdır: eşiğin altında kalan bir filtre daraltmasında hiç tetiklenmez ve o kayıtların kaderini kapsam çıkışı politikası belirler.

Onay bekleyen bir koşuda:

  • Kaynak kilitlenmez. Koşu kapandığı için kaynak yeniden senkronize edilebilir; zamanlanmış koşular da çalışmaya devam eder. Beklerken oluşan yeni bir eşik aşımı, bekleyen onayı güncel ölçümle tazeler — her kaynak için aynı anda yalnız bir onay bekler ve o onay her zaman en son koşunun sayılarını taşır. Onay işlemi bu durumda yeni satıra geçer: eski satırdan onaylamak reddedilir, çünkü o ekrandaki sayılar artık uygulanacak sayılar değildir.
  • Kaynağın son senkronizasyon sonucu Uyarı olarak görünür. Bu doğrudur: koşu hatasız bitmiştir ve hiçbir şey deaktive edilmemiştir. Onay bekleyişi koşu satırında yaşar, kaynağın özet bilgisinde değil.
  • Onay 24 saat geçerlidir. Süresi dolan bir onay uygulanamaz; kaynağın bir sonraki koşusu güncel ölçümle yenisini üretir.

Yönetici Senkronizasyon Geçmişi tablosundaki satırdan uzlaştırmayı onayladığında, aynı satır devam etmez: yalnızca uzlaştırmayı uygulayan yeni bir koşu başlar. Bu koşu kaynaktan hiçbir şey çekmez ve onaylanan ölçümün tam olarak aynısını uygular.

Onaylanan ile uygulanan aynı şey olmak zorundadır

Uygulama koşusu, ilk kayda dokunmadan hemen önce onayı yeniden doğrular: aday listesi, senkronizasyon filtresi ve deaktivasyon modu onay anındakiyle birebir aynı olmalıdır. Aradan geçen sürede filtre düzenlendiyse, mod pasifleştirmeden silmeye çevrildiyse ya da normal bir koşu adayların bir kısmını yeniden damgaladıysa uygulama reddedilir, koşu Başarısız olur ve hiçbir kayıt değiştirilmez.

Bu durumda yapılacak iş senkronizasyonu yeniden koşturup çıkan yeni sonucu onaylamaktır. Sistem sessizce yeniden hesaplayıp uygulamaz — onaylanan sayı ile uygulanan işin farklı olması, bu mekanizmanın engellemek için var olduğu şeydir.

Onaylayan kullanıcı kaydedilir; onay tek kullanımlıktır ve uygulandıktan sonra tekrar kullanılamaz. Ayrı bir yetki tanımı gerekmez — ilgili kimlik sağlayıcıyı yönetebilen kullanıcı onaylayabilir.

Çalışan Koşunun Canlı Takibi

Senkronizasyon Geçmişi tablosunda Kuyrukta ya da Çalışıyor durumunda bir satır görünürken tablo kendini yaklaşık beş saniyede bir sessizce günceller: sayfa başa dönmez, açılmış bir hata listesi kapanmaz, yükleniyor göstergesi titremez. Koşu sonuçlandığında güncelleme kendiliğinden durur — ekranda çalışan bir koşu yokken tablo hiç istek üretmez.

Bu davranış tablonun kendisine aittir; dolayısıyla tablonun göründüğü beş ekranın hepsinde aynı çalışır: Kimlik > Sağlayıcılar > Senkronizasyon ekranı ve dört sağlayıcının (LDAP, Veritabanı, API, OIDC) görüntüleme ekranı.

İlerleme sayaçları basamaklı ilerler

Koşunun durumu (Kuyrukta → Çalışıyor → sonuç) anında yansır; ancak koşunun o ana kadar işlediği kayıt sayısı ve aşama bilgisi motor tarafından yaklaşık on beş saniyede bir yazılır. Bu yüzden tablo beş saniyede bir tazelense de bu sayaçlar basamaklı ilerler; aynı sayının birkaç tazeleme boyunca sabit kalması beklenen davranıştır, takılma değildir. Daha sık tazeleme sayaçları hızlandırmaz, yalnızca okuma yükünü artırır.

Canlı takibin iki sınırı vardır:

  • Yalnızca görüntülenen sayfada çalışan bir koşu varsa devreye girer. Koşular en yeniden eskiye sıralandığı için çalışan bir koşu tanımı gereği ilk sayfadadır; geçmişin ileri sayfalarında gezinirken tablo tazelenmez.
  • Zamanlanmış bir koşu arka planda başladığında tablo bunu kendiliğinden görmez; canlı takip yalnızca ekranda zaten görünen bir koşu satırı için çalışır. Bu yüzden dört sağlayıcının görüntüleme ekranında da Senkronizasyon Geçmişi başlığının yanında bir Yenile düğmesi bulunur — tabloyu bir kez elle tazelemek yeni koşuyu getirir.

Kimlik > Sağlayıcılar > Senkronizasyon ekranında, tablo bir koşunun bittiğini gördüğü anda üstündeki kaynak satırlarının özet sayıları da kendiliğinden tazelenir. Sağlayıcı görüntüleme ekranlarındaki son koşu özeti kutusu bu tazelemeye dahil değildir; onu güncellemek için o ekrandaki Yenile düğmesi kullanılır.

Kaynak Başına Tek Koşu

Bir kimlik kaynağı için aynı anda yalnızca bir koşu çalışabilir. Bir koşu kuyruktayken veya çalışırken aynı kaynak için gelen ikinci tetikleme reddedilir ve ekranda "senkronizasyon zaten çalışıyor" hatası görüntülenir; bu sırada başka kaynakların senkronizasyonu etkilenmez.

Bu kural, Manager'ın birden fazla düğümle (küme olarak) çalıştığı kurulumlarda da geçerlidir: kazananı veritabanı belirler, dolayısıyla iki düğüm aynı anda tetiklense bile kaynak yalnızca bir kez senkronize edilir. Önceki sürümlerde bu kontrol yalnızca isteği alan düğümün kendi belleğine bakıyordu ve başka bir düğümde süren koşuyu göremiyordu.

Koşu Hata Listesi

Bir koşu, kaynaktaki bazı kullanıcıları eleyip diğerleriyle devam edebilir. Eskiden bu elemeler yalnızca Atlanan sayacına yansırdı; artık her eleme, gerekçesiyle birlikte koşunun kendi hata listesine yazılır.

Hata/Uyarı sütunundaki sayıya tıklanarak satır genişletilir ve o koşuya ait ilk 50 kayıt listelenir: önem derecesi, ilgili kullanıcı adı, oluşma zamanı ve gerekçe. Kaydedilen gerekçeler:

GerekçeNe zaman oluşur
Elle oluşturulmuş kimlik bilgisi çakışmasıKullanıcı adına ait, senkronizasyon dışında oluşturulmuş bir kimlik bilgisi var; senkronizasyon onu ezmez.
Başka kaynak tarafından yönetiliyorKimlik bilgisi başka bir kimlik kaynağına bağlı; farklı bir kaynak onu devralmaz.
Proje arası kullanıcı adı çakışmasıAynı kullanıcı adı başka bir projede kayıtlı olduğu için yeni kimlik bilgisi oluşturulmaz.
Kimlik anahtarı kurulamadıKaynaktan gelen kayıtta ne kullanıcı adı ne e-posta bulunuyor.
Dış kimlik çakışmasıKullanıcının kararlı dış kimliği zaten başka bir kimlik bilgisine bağlı ya da kaynağın kapsamından çıkmış bir kimliğin yeniden talep edilmesi reddedildi. Kullanıcı o koşuda atlanır: bir yönetici sahipliği çözene kadar hiçbir kimlik bilgisi oluşturulmaz ya da güncellenmez.
Kararlı dış kimlik olmadan deaktivasyonUzlaştırma, kararlı bir dış kimlik döndürmeyen bir kaynakta kayıt pasifleştirdi veya sildi. Bu satır tek bir kullanıcıyı değil koşunun tamamını anlatan bir uyarıdır: hiçbir kullanıcı elenmemiştir ve koşunun sonucu bundan etkilenmez.
Kayıt üst sınırı

Bir koşu için en fazla 1000 hata kaydı saklanır. Kaynakta bundan daha fazla eleme olursa Hata/Uyarı sütunundaki sayı gerçek toplamı göstermeye devam eder, ancak liste ilk 1000 kayıtla sınırlanır ve satır genişletildiğinde bunu belirten bir uyarı görüntülenir. Böylece çok büyük dizinlerde tek bir koşu kaydı orantısız büyümez.

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.

Ayarın kapsamı genişledi

Bu ayar artık koşu satırlarıyla birlikte koşu hata listelerini de temizler; hata listesinin ayrı bir saklama ayarı yoktur. Ayar kapalıyken (varsayılan) hiçbiri silinmez, açıkken ikisi de aynı yaşa göre silinir. Bir kimlik kaynağı silindiğinde ise o kaynağa ait koşu kayıtları ve hata listeleri ayarın durumundan bağımsız olarak birlikte silinir.

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.

Kaynak Anahtarı

Her kimlik kaynağına, oluşturulduğu anda adından türetilen kalıcı bir kaynak anahtarı atanır (örneğin Keycloak Prod adlı bir sağlayıcı için keycloak-prod). Anahtar yalnızca küçük harf, rakam ve tire içerir; aynı proje ve aynı kaynak türü içinde tekildir.

  • Anahtar değişmezdir: kaynağı yeniden adlandırmak anahtarı değiştirmez, böylece kaynağa dışarıdan yapılan atıflar ad değişikliğinden etkilenmez.
  • Ekrandan düzenlenemez; sistem tarafından üretilir. Aynı projede aynı ada sahip ikinci bir kaynak oluşturulursa anahtar sonuna bir sayı eklenir.
  • Tekillik kaynak türü içindedir: aynı projedeki bir LDAP kaynağı ile bir OIDC kaynağı aynı anahtarı taşıyabilir, bu bir çakışma değildir.
  • İçe aktarmada paketteki anahtar kullanılmaz: mevcut bir kaydın üzerine yazılıyorsa hedefteki anahtar korunur, yeni kayıt olarak aktarılıyorsa anahtar kaydın son adından yeniden üretilir.

Senkronla Gelen Tüketicilerin Anahtarı

LDAP, Keycloak, Veritabanı veya API senkronizasyonundan doğan her tüketici, artık elle oluşturulan bir tüketici gibi kalıcı bir tüketici anahtarı alır ve kaydına ilk senkron zamanı damgası işlenir; envanter ve taşıma ekranları ile dışa aktarma bu kayıtları artık anahtarsız bir kayıt olarak görmez.

not

Bu sürümden önce var olan anahtarsız kayıtlara anahtar, sürüm yükseltmesi sırasında çalışan açılış taşımasıyla zaten atanmıştı; bu değişiklik yalnızca bundan sonra senkronizasyonla yeni oluşan tüketicileri kapsar.

Senkronizasyonu Dışarıdan Tetikleme

Ekrandaki Senkronize Et düğmesinin yanında, senkronizasyon bir yönetim isteği ile de tetiklenebilir. İki uç noktanın davranışı aynıdır (ikisi de aynı koşuyu kuyruğa alır), yalnızca yanıtları farklıdır:

İstekYanıt
POST /api/authentication-ldap/{id}/sync-runs
POST /api/authentications-database/{id}/sync-runs
POST /api/authentication-apis/{id}/sync-runs
POST /api/authentication-oidc-providers/{id}/sync-runs
202 — koşu kuyruğa alındı. Yanıt gövdesi koşu kimliğini, kaynak bilgisini, durumu ve kuyruğa alınma zamanını taşır; Location başlığı koşu kaydını adresler. Kaynak meşgulse 409 döner.
POST .../sync-now (mevcut uç)200 — yanıt biçimi ve alanları değişmemiştir; yalnızca isteğe bağlı bir koşu kimliği alanı eklenmiştir. Kaynak meşgulse eskisi gibi 400 döner.

Koşunun ilerleyişi GET /api/identity-sync-run-histories/{runId} ile, o koşuda elenen kullanıcılar ise GET /api/identity-sync-run-histories/{runId}/issues ile okunur. Her iki uç da kimlik yönetimi görüntüleme yetkisi ister.

not

Ekrandaki Senkronize Et düğmesinin davranışı bu değişiklikle aynı kalmıştır — düğme mevcut ucu kullanmaya devam eder. Yeni uç, kendi otomasyonunu yazan kurumlar içindir: koşu kimliğini doğrudan döndürdüğü için koşunun sonucu daha sonra sorgulanabilir.

sync-runs uçları, koşu kapsamını taşıyan isteğe bağlı bir mode sorgu parametresi kabul eder: FULL (parametre verilmediğinde varsayılan), USERS_ONLY ya da GROUPS_ONLY. Kaynağın desteklemediği bir kapsam 400 runModeNotSupported ile reddedilir; istek sessizce tam koşuya düşürülmez — çünkü çağıranın istemediği işi, istediği işin adıyla yapmak reddetmekten daha kötüdür. RECONCILE_APPLY bu uçta kabul edilmez: o kapsamdaki bir koşu yalnız bir onaydan doğar.

Legacy sync-now ucu mode parametresi almaz ve sözleşmesi değişmemiştir.

Bekleyen bir uzlaştırma şu istekle onaylanır:

İstekYanıt
POST /api/identity-sync-run-histories/{runId}/actions/approve-reconcile202 — bekleyen onayı uygulayacak bir RECONCILE_APPLY koşusu kuyruğa alındı; yanıt gövdesi yeni koşunun kimliğini taşır. Onayın kendisi bu çağrıda değil, yalnızca o yeni koşunun ilk kayıt yazımından hemen önce tüketilir. Koşu onay beklemiyorsa ya da bekleyen onayın yerini daha yeni bir koşu aldıysa 409 reconcileApprovalConflict, kaynakta bekleyen onay yoksa 400 reconcileApprovalNotFound, onayın süresi dolduysa 400 reconcileApprovalExpired döner.

İstek, kaynak üzerinde kimlik yönetimi yetkisi ister — senkronizasyonu çalıştırmayı sağlayan yetkinin aynısı; ayrı bir onay yetkisi tanımlanmamıştır.

Kuyrukta ya da Çalışıyor durumundaki bir koşu, aynı yetkiyle şu istekle iptal edilir:

İstekYanıt
POST /api/identity-sync-run-histories/{runId}/actions/cancel200 — koşu geçmişi tablosundaki İptal düğmesiyle aynı davranış, bkz. İptal. Koşu Kuyrukta ya da Çalışıyor değilse çevrilmiş bir mesajla 409 döner.

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.), kaynak hiç kullanıcı döndürmezse ya da liste yalnızca kısmen okunabilirse, olası bir kaynak kesintisinin toplu deaktivasyona yol açmaması için o koşuda deaktivasyon adımı atlanır. Kısmi bir liste, henüz okunmamış kayıtları kaynakta artık yokmuş gibi gösterirdi.
  • Senkronizasyon kapsam filtresinin elediği bir kullanıcı kaynaktan silinmiş değil kapsam dışıdır: kimlik bilgisi görülmüş olarak damgalanır ve ona yalnızca kapsam çıkışı politikası dokunabilir. Bu ayrım olmasaydı bir filtreyi daraltmak sessizce deaktivasyona dönüşürdü.

İlk üç kuralın hangi kullanıcıyı hangi gerekçeyle elediği, koşunun hata listesinde kullanıcı adıyla birlikte görüntülenir.

İ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.