Ana içeriğe geç

API Kimlik Sağlayıcı

bilgi

Kimlik Sağlayıcı, istemcilere verilecek olan kullanıcı havuzunu belirtir. Bu ön tanımlı Kimlik Sağlayıcıları, Kimlik Doğrulama Politikası oluşturulurken kullanılır.

API ile kullanıcı doğrulamak için gerekli ayarlardan İstek sekmesini içeren görsele aşağıda yer verilmiştir:

İstek Sekmesi

İstek sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
AdOluşturulan Kimlik Sağlayıcısı için API Kimlik Sağlayıcı adı bilgisidir.
AçıklamaOluşturulan API Kimlik Sağlayıcı ile ilgili yönetimi kolaylaştırmak için açıklama yazılabilir.
HTTP Metodu (Method)Kimlik Doğrulaması yapacak API adresinin HTTP Metodu seçilir. Varsayılan Değeri: GET.
URL (URL)Kimlik Doğrulaması yapacak API'nin adresi girilir.
Zaman Aşımı (Timeout)Saniye olarak verilen bu süre boyunca sunucuya bağlanılmazsa hata verir ve bağlantı sonlanır. Varsayılan Değeri: 10 saniye.
Mesaj Şablonu Kullan (Use Message Template)API için bir mesaj şablonu kullanılacak ise aktive edilir.
Mesaj Şablonu Tipi (Template Content Type)Mesaj şablonu içeriğinin tipi seçilir. Varsayılan Değeri: JSON.
• XML
• JSON
Mesaj Şablonu (Message Template)Seçilen mesaj şablonu tipine bağlı olarak mesaj şablonu girilir.
Kullanıcı Adını Al (Take Username)Kullanıcı adı alınacak ise aktive edilir.
Kullanıcı Adının Alınacağı Mesaj (Take Username From)Kullanıcı adının alınacağı yer seçilir. Varsayılan Değeri: Gelen İstek Mesajı.
• Gelen İstek Mesajı (Incoming Request Message)
• Kimlik Doğrulama API Yanıt Mesajı (Response of API Authentication)
Kullanıcı Adı Değişkeni (Username Variable)Kullanıcı adı değerine erişmek için bir değişken seçilmelidir.
İstek Verisi Düzenlemesi (Request Data Manipulation)Gelen isteğin istediğiniz bölümlerini, kimlik doğrulaması yapacak olan API'ye gönderilen istek mesajının içine taşıyabilirsiniz. Kaynak Değişken, gelen mesajın hangi bölümünün alınacağını, Hedef Değişken ise bu bilginin API'ye gönderilecek mesajın neresine koyulacağını belirtir.
Variable Butonu (Variable)Sayfanın üst kısmındaki [<> Variable] butonu ile alanlara dinamik değer seçilebilir. Detaylı bilgi için Dinamik Değişkenler sayfasını inceleyebilirsiniz.

API ile kullanıcı doğrulamak için gerekli ayarlardan Teyit sekmesini içeren görsele aşağıda yer verilmiştir:

Teyit Sekmesi

Teyit sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
Teyit
Sonuç Durum Kodu (Assert Result Status Code)Teyit için belirli bir sonuç durum kodunu kullanmak için seçilir.
Beklenen Durum Kodu (Expected Status Code)API tarafından döndürülmesi beklenen durum kodu girilir.
Sonuç Gövdesi (Assert Result Body)Teyit için belirli bir body dönmesi beklendiği zaman seçilir.
Beklenen Sonuç Gövdesi (Expected Result Body)API tarafından döndürülen yanıt mesajlarının içermesi beklenen metin girilir.
XPath Sonucu (Assert Result XPath)Teyit için gelen Xml mesajının belirli bir alanının belirli bir değeri dönmesi beklendiği zaman seçilir.
Beklenen XPath (XPath Expression)Beklenen değerin bulunduğu kısma işaret eden Xpath girilir.
Beklenen XPath Sonucu (Expected Result Body)Beklenen değer girilir.
JsonPath Sonucu (Assert Result JsonPath)Teyit için gelen Json mesajının belirli bir alanının belirli bir değeri dönmesi beklendiği zaman seçilir.
Beklenen JsonPath (JsonPath Expression)Beklenen değerin bulunduğu kısma işaret eden Jsonpath girilir.
Beklenen JsonPath Sonucu (Expected Xml Result)Beklenen değer girilir.

API ile kullanıcı doğrulamak için gerekli ayarlardan Ortak Yanıt sekmesini içeren görsele aşağıda yer verilmiştir:

Ortak Yanıt Sekmesi

Ortak yanıt sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
Ortak Yanıt (Response Common)
Başarısız Sonuçta API Yanıt Durum Kodu Kullan (Use Response Status Code of API in case of Failed Result)Teyit kısmının başarısız sayacağı bir mesaj geldiğinde, gelen Http durum kodunu cevap olarak döner.
Başarısız Sonuçta API Yanıtını Token Yanıtının İçine Yerleştir (Use Response Message of API in case of Failed Result)Teyit kısmının başarısız sayacağı bir mesaj geldiğinde, Token yanıtı olarak hata mesajını döner.

API ile kullanıcı doğrulamak için gerekli ayarlardan Proxy İçin Yanıt sekmesini içeren görsele aşağıda yer verilmiştir:

Proxy İçin Yanıt Sekmesi

Proxy için yanıt sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
Proxy için Yanıt (Response for Proxy)
Yanıt Başarılı Olduğunda Yanıt Verisi Düzenlemesi - Kaynak Değer/Değişken (Response Data Manipulation On Success - Source Value/Variable)Mesaj içeriğinde gelen herhangi bir değerin mesajın neresinden alınması gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.)
Yanıt Başarılı Olduğunda Yanıt Verisi Düzenlemesi - Hedef Değer/Değişken (Response Data Manipulation On Success - Target Value/Variable)Yanıt mesajında dönecek olan mesaj içeriğinden alınmış herhangi bir değerin mesajın neresine konulacağını gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.)
Yanıt Başarısız Olduğunda Veri Düzenlemesi - Kaynak Değer/Değişken (Response Data Manipulation On Failure - Source Value/Variable)Mesaj içeriğinde gelen herhangi bir değerin mesajın neresinden alınması gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.)
Yanıt Başarısız Olduğunda Veri Düzenlemesi - Hedef Değer/Değişken (Response Data Manipulation On Failure - Target Value/Variable)Yanıt mesajında dönecek olan mesaj içeriğinden alınmış herhangi bir değerin mesajın neresine konulacağını gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.)

API ile kullanıcı doğrulamak için gerekli ayarlardan Belirteç İçin Yanıt sekmesini içeren görsele aşağıda yer verilmiştir:

Belirteç İçin Yanıt Sekmesi

Belirteç için yanıt sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
Belirteç için Yanıt (Response for Token)
API Yanıtını Token Yanıtının içine yerleştir (Insert Response Of API To Token Response)Seçilirse API'den dönen yanıt, Token yanıtı olarak döner.
JWT Token Veri Düzenlemesi - Kaynak Değer/Değişken (JWT Token Manipulation - Source Value/Variable)Yanıt mesajında dönecek olan mesaj içeriğinden herhangi bir değerin mesajın neresinden alınacağını ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.)
JWT Token Veri Düzenlemesi - Hak Talebi Adı (JWT Token Manipulation - Claim Name)Mesaj içeriğinden alınan parça, Jwt Token'ın içerisine burada verilen isimle eklenir.

API ile kullanıcı doğrulamak için gerekli ayarlardan Roller İçin Yanıt sekmesini içeren görsele aşağıda yer verilmiştir:

Roller İçin Yanıt Sekmesi

Roller için yanıt sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
Roller için Yanıt (Response for Roles)
Yanıt Rolleri İçerir (Response Contains Roles)Kimliği doğrulanan kullanıcının rollerini, API tarafından döndürülen yanıt içerisinden almak istenirse aktive edilir.
Rollerin Alınacağı Yer Değişkeni (Response Contains Roles)Mesaj içeriğinde gelen hangi değerin rolleri içerdiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.)

Senkronizasyon

API Kimlik Sağlayıcı düzenleme ekranındaki Synchronization sekmesi ile bu kaynaktaki kullanıcıları zamanlanmış veya elle tetiklenen bir işle Kimlik Bilgisi kayıtlarına senkronize edebilirsiniz. Sekmedeki Senkronize Et düğmesi yalnızca sağlayıcı bir kez kaydedildikten sonra görünür; oluşturma ekranında henüz gösterilmez.

API Kimlik Sağlayıcı Senkronizasyon sekmesi

Ortak alanlar (etkinleştirme, cron, deaktivasyon modu), senkronizasyon durumu ve geçmişi için Kimlik Bilgisi Senkronizasyonu sayfasını inceleyebilirsiniz.

JSON Path Sözleşmesi

Kullanıcı listeleme uç noktasının yanıtı aşağıdaki JSON Path alanlarıyla okunur.

AlanAçıklama
Kullanıcı Dizisi JSON PathYanıttaki kullanıcı dizisidir. Varsayılan: $
Kullanıcı Adı JSON PathZorunlu alandır.
E-posta JSON Pathİsteğe bağlıdır.
Ad Soyad JSON Pathİsteğe bağlıdır.
Kararlı Kimlik JSON PathBoş bırakılırsa yeniden adlandırılan bir kullanıcı yeni kişi sayılır.
Hesap Durumu JSON PathKabul edilen değerler: true/false, 1/0, yes/no, active/inactive, enabled/disabled.
Kurum Yolu JSON PathÖrnek: /Genel Müdürlük/Bilgi Teknolojileri. Boş bırakılırsa mevcut kurum bağları korunur.
Kurum Kararlı Kimlik JSON PathKurum yolu değişse bile aynı kurum satırının takip edilmesini sağlar.
Sonraki Sayfa JSON PathBoş bırakılırsa tek çağrı yapılır. Mutlak ya da göreli adres kabul edilir. Aynı değerin tekrarı döngü hatası sayılır.
En Fazla SayfaVarsayılan 1000'dir. Bu sınıra dayanan bir koşu eksik olarak raporlanır.
Kurum Listeleme URL'siİsteğe bağlı, ayrı bir uç noktadır. Kullanıcılardan önce, aynı başlık ve zaman aşımıyla bir kez okunur. Boşsa kurum ağacı kullanıcı satırlarından türetilir.
Kurum Dizisi JSON PathKurum Listeleme URL'si girildiğinde zorunludur.
Kurum Yolu AlanıKurum Listeleme URL'si girildiğinde zorunludur.
Kurum Adı AlanıBoşsa yolun son parçası kullanılır.
Kurum Kararlı Kimlik Alanı
Üst Kurum Yolu AlanıVerildiğinde yoldan türetilen üst kurumun yerine geçer.

Örnek kullanıcı yanıtı:

{
"users": [
{ "username": "ayse.yilmaz", "email": "ayse.yilmaz@acme.com", "fullName": "Ayşe Yılmaz",
"id": "u-4821", "enabled": true, "organizationPath": "/Genel Müdürlük/Bilgi Teknolojileri" }
],
"next": "https://idp.example.com/api/users?page=2"
}

Bu örnekte Kullanıcı Dizisi JSON Path değeri users, Kararlı Kimlik JSON Path değeri id, Sonraki Sayfa JSON Path değeri next olarak yapılandırılmıştır. Alan adları örnektir; kendi kaynağınızın yanıtına göre farklı JSON Path'ler tanımlayabilirsiniz.

Örnek kurum listesi yanıtı:

{
"organizations": [
{ "path": "/Genel Müdürlük/Bilgi Teknolojileri", "name": "Bilgi Teknolojileri", "id": "org-12", "parentPath": "/Genel Müdürlük" }
]
}

Bu örnekte Kurum Dizisi JSON Path değeri organizations, Kurum Yolu Alanı değeri path olarak yapılandırılmıştır.

Aşağıdaki durumlarda senkronizasyon koşu hata listesine bir kayıt düşer:

  • Kurum listeleme ucu 401 ya da 5xx döndürürse tüm kullanıcı senkronu düşmez; yalnızca kurum listesi atlanır, kullanıcılar yine senkronlanır.
  • Kurum listeleme ucu 0 satır döndürürse kurum ağacı yalnız kullanıcı satırlarındaki yollardan türetilir.
  • Sonraki Sayfa JSON Path aynı değeri tekrar ederse sayfalama döngüye girmiş sayılır; koşu durur ve pasifleştirme adımı emniyet gereği atlanır.

Bağlantı Testi, Önizleme ve Açıklama

Düzenleme ve görüntüleme ekranlarında üç ayrı doğrulama aracı bulunur.

Bağlantıyı test et (adım adım) düğmesi, bağlantıyı sırasıyla 11 adımda test eder; bir adım düşerse sonraki adımlar Uygulanmaz olarak işaretlenir:

  1. Yapılandırma Kontrolü
  2. Sunucu Adı Çözümleme
  3. Sunucu Bağlantısı
  4. Güvenli Bağlantı (TLS)
  5. Kullanıcı İsteği
  6. Yanıt Biçimi (JSON)
  7. Kullanıcı Listesi Yolu
  8. Alan Yolları
  9. İkinci Sayfa
  10. Kurum Yolu
  11. Kurum Listesi İsteği

Sonuç tablosunda her adım için Durum (Başarılı, Başarısız, Uygulanmaz, Desteklenmiyor), Süre, Açıklama, HTTP, Sağlayıcı Kodu, Öneri ve Teknik Ayrıntı görüntülenir.

Önizle düğmesi kullanıcı ucunu gerçekten çağırır ve ilk kayıtları okur; hiçbir kullanıcı ya da kurum oluşturmaz, güncellemez ya da pasifleştirmez. Sunucu üst sınırı 200 satırdır. Sonuçlar Kullanıcılar (Kullanıcı Adı, Ad Soyad, E-posta, Kararlı Kimlik, Hesap Durumu, Kurum Yolu, Çözülen Kurum), Kurumlar (Yol, Ad, Kaynak Kodu, Kaynak, Kullanıcı) ve Sorunlar sekmelerinde gösterilir.

Deneme koşusu seçeneğini açtığınızda önizleme her sayfayı okur ve senkronizasyonun okuyacağı/oluşturacağı/güncelleyeceği/pasifleştireceği/atlayacağı kayıt sayısını raporlar; yine hiçbir şey yazmaz. Atlanacak satırlar, kullanıcı adı başka bir projede kayıtlı olan satırlardır (bkz. API-I11 aşağıda). Kaynak listesi eksik okunduysa pasifleştirme sayıları, kitlesel deaktivasyon riskini önlemek için sıfır raporlanır — bu gerçek sayı değildir.

Sorunlar sekmesi olası yapılandırma hatalarını kod, ağırlık ve bulgu ile listeler; bazı bulgular tek tıkla forma uygulanabilen bir öneri de taşır:

KodAğırlıkBulgu
API-I00HataKaynak hiç okunamadı.
API-I01UyarıKullanıcı adı/e-posta boş satır(lar) elendi.
API-I02UyarıAynı login birden çok satırda, yalnız ilki oluşturuldu.
API-I03HataYapılandırılmış JSON Path hiçbir satırda eşlemedi.
API-I04UyarıKurum yolu(ları) okunamadı.
API-I05UyarıKurum yolu kurum listesinde yok, türetildi.
API-I06UyarıHesap durumu değeri tanınmadı, etkin sayıldı.
API-I07UyarıKararlı kimlik bazı satırlarda boş.
API-I08HataSayfalama döngüye girdi ya da sayfa sınırına ulaştı; liste eksik okundu.
API-I09BilgiKurum yolu, elle açılmış bir kurumla aynı; devralındı.
API-I10BilgiKurum yolu alanı hiç yapılandırılmamış; yalnız kullanıcılar senkronlanıyor.
API-I11UyarıKullanıcı adı başka bir projede zaten kayıtlı, bu satır için kimlik oluşturulmaz. Kaynaktaki kullanıcıyı yeniden adlandırın ya da mevcut kimliği bu projeye taşıyın.

Açıkla düğmesi bir kullanıcının neden senkronize olduğunu ya da olmadığını 7 adımda gösterir: Satır Arama, Ham Değerler, Kurum Yolu, Kurum Çözümlemesi, Hesap Durumu, Kararlı Kimlik, Sonuç. Her adımın sonucu Başarılı, Uyarı, Başarısız, Uygulanmaz ya da Atlandı olarak işaretlenir; ilgili adımda okunan değerler varsa listelenir.