API Kimlik Sağlayıcı
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 konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| Ad | Oluşturulan Kimlik Sağlayıcısı için API Kimlik Sağlayıcı adı bilgisidir. |
| Açıklama | Oluş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 konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açı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 konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açı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 için yanıt sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açı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ç için yanıt sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açı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 için yanıt sekmesi konfigürasyonunda kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açı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.
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.
| Alan | Açıklama |
|---|---|
| Kullanıcı Dizisi JSON Path | Yanıttaki kullanıcı dizisidir. Varsayılan: $ |
| Kullanıcı Adı JSON Path | Zorunlu 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 Path | Boş bırakılırsa yeniden adlandırılan bir kullanıcı yeni kişi sayılır. |
| Hesap Durumu JSON Path | Kabul 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 Path | Kurum yolu değişse bile aynı kurum satırının takip edilmesini sağlar. |
| Sonraki Sayfa JSON Path | Boş 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 Sayfa | Varsayı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 Path | Kurum 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:
- Yapılandırma Kontrolü
- Sunucu Adı Çözümleme
- Sunucu Bağlantısı
- Güvenli Bağlantı (TLS)
- Kullanıcı İsteği
- Yanıt Biçimi (JSON)
- Kullanıcı Listesi Yolu
- Alan Yolları
- İkinci Sayfa
- Kurum Yolu
- 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:
| Kod | Ağırlık | Bulgu |
|---|---|---|
| API-I00 | Hata | Kaynak hiç okunamadı. |
| API-I01 | Uyarı | Kullanıcı adı/e-posta boş satır(lar) elendi. |
| API-I02 | Uyarı | Aynı login birden çok satırda, yalnız ilki oluşturuldu. |
| API-I03 | Hata | Yapılandırılmış JSON Path hiçbir satırda eşlemedi. |
| API-I04 | Uyarı | Kurum yolu(ları) okunamadı. |
| API-I05 | Uyarı | Kurum yolu kurum listesinde yok, türetildi. |
| API-I06 | Uyarı | Hesap durumu değeri tanınmadı, etkin sayıldı. |
| API-I07 | Uyarı | Kararlı kimlik bazı satırlarda boş. |
| API-I08 | Hata | Sayfalama döngüye girdi ya da sayfa sınırına ulaştı; liste eksik okundu. |
| API-I09 | Bilgi | Kurum yolu, elle açılmış bir kurumla aynı; devralındı. |
| API-I10 | Bilgi | Kurum yolu alanı hiç yapılandırılmamış; yalnız kullanıcılar senkronlanıyor. |
| API-I11 | Uyarı | 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.