Database Provider
"Project Owner" gibi "Kimlik Doğrulama Hizmetlerini Yönet" yetkisine sahip roller tarafından erişilebilir ve yönetilebilir.
1) Veri Tabanı ile Kimlik Doğrulama Bağlantısı
Veri tabanı ile kimlik doğrulama için bağlantı ayarlarını içeren görsele aşağıda yer verilmiştir:
Veri tabanı ile kimlik doğrulama için bağlantı ayarlarında kullanılan alanlar aşağıdaki tabloda görülmektedir.
| Alan | Açıklama |
|---|---|
| Ad | Oluşturulan Veri Tabanı Kimlik Sağlayıcı adı bilgisidir. |
| Açıklama | Oluşturulan Kimlik Sağlayıcı ile ilgili yönetimi kolaylaştırmak için açıklama yazılabilir. |
| Şifreleme Türü (Encryption Type) | Veri tabanı bağlantısında kullanılacak tabloda şifre bilgisi şifreli tutuluyor ise tabloda tutulan şifreye ait şifreleme türü seçilmelidir. Seçenekler: NONE, MD2, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Blowfish, RC2, RC4, AES CBC NoPadding, AES CBC PKCS5Padding, AES ECB NoPadding, AES ECB PKCS5Padding, AES GCM NoPadding, AES CFB NoPadding, AES CFB PKCS5Padding, AES OFB NoPadding, AES OFB PKCS5Padding, AES CTR NoPadding, AES CTR PKCS5Padding, DES CBC NoPadding, DES CBC PKCS5Padding, DES ECB NoPadding, DES ECB PKCS5Padding, DESede CBC NoPadding, DESede CBC PKCS5Padding, DESede ECB NoPadding, DESede ECB PKCS5Padding |
| Veri Tabanı Bağlantısı (Database Connection Pool Definition) | Veri tabanı bağlantısının alınacağı havuz seçilir ya da oluşturulur. |
| Sorgu (Query) | Bir sorgu veri tabanından Kullanıcı adı/parola çiftlerini ya da rol listesini almak için kullanılır. Sorguda kullanıcı adı parametresi ":username" şeklinde ve eğer varsa parola parametresi ":password" şeklinde tanımlanmalıdır. Apinizer bu özel parametre isimleri ile çalışır. Örnek sorgu: select role_name from t_user_role where email=:username and pwd=:password |
| Test için Kullanıcı Adı (Test Username) | Sorgu test için işletilirken kullanıcı adı parametresi yerine yazılacak değer girilir. Alanın yanındaki değişken seçimi ile ortam değişkenlerinden değer alınabilir. |
| Test için Şifre (Test Password) | Sorgu test için işletilirken şifre parametresi yerine yazılacak değer girilir. Alanın yanındaki değişken seçimi ile ortam değişkenlerinden değer alınabilir. |
| Ortam (Environment) | Test Connection işlemi için ortam seçimi yapılır. Ortam seçimi, testin hangi ortam değişkenleri ile çalışacağını belirler. |
| 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. |
2) Veri Tabanı ile Kimlik Yetkilendirmesi Bağlantısı
Kimlik yetkilendirme işlemi yaparken veri tabanı sorgusunda ilgili kullanıcının rol alanını alınır. Bu rol alanı daha sonradan proxy politikasındaki Authorization'daki ROLES/GROUPS alanı ile eşleştirilir.
Yetkilendirme için aynı Database Provider formu kullanılır; sorguda genelde yalnızca :username parametresi yer alır. Örnek:
select role_name from t_user_role where email=:username
Senkronizasyon
Database Provider düzenleme ekranındaki Identity Synchronization Profile sekmesi ile bu kaynaktaki kullanıcıları Kimlik Bilgisi kayıtlarına senkronize edebilirsiniz. Etkinleştirme, cron ifadesi ve deaktivasyon modu gibi ortak alanlar, senkronizasyon durumu ve geçmişi için Kimlik Bilgisi Senkronizasyonu sayfasını inceleyebilirsiniz. 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.
Kullanıcı Sorgusu Sütun Takma Adları
Kullanıcı listeleme sorgusu, parametre almayan bir SELECT ifadesidir. Sorgudan dönen sütunlar aşağıdaki takma adlarla eşleştirilir.
| Takma Ad | Zorunlu mu | Açıklama |
|---|---|---|
username | Evet | Oturum açma adıdır. Bu değeri boş olan satır atlanır. Takma ad hiç yoksa sorgunun ilk sütunu kullanıcı adı olarak kullanılır. |
email | Hayır | E-posta adresidir. |
full_name | Hayır | Ad soyaddır. |
external_id | Hayır | Kaynaktaki kararlı kimliktir. Boş bırakıldığında bu kaynak için yıkıcı işlemler (deaktivasyon, silme) kapalı kalır. |
enabled | Hayır | Kaynaktaki hesap durumudur. true, 1, y, yes, t, active, enabled değerleri etkin; false, 0, n, no, f, inactive, disabled değerleri kapalı sayılır (büyük/küçük harf duyarsız). |
organization_path | Hayır | Kullanıcının kurum yoludur. Örnek: /Genel Müdürlük/Bilgi İşlem. |
organization_external_id | Hayır | Kullanıcının bağlı olduğu kurumun kararlı kimliğidir. |
Örnek sorgu:
SELECT login AS username, mail AS email, display_name AS full_name,
emp_no AS external_id, status AS enabled, dept_path AS organization_path
FROM users;
Örnek PostgreSQL söz dizimindedir. Önemli olan yalnızca sütun takma adlarıdır — AS kullanımı veri tabanı motorları arasında ortaktır, yalnızca tanımlayıcı tırnaklama kuralları farklılık gösterir.
organization_path sütunu sorguda hiç yoksa kurum alanı hiç okunmaz; kullanıcının mevcut kurum bağı olduğu gibi korunur ve herhangi bir kayıt düşmez.
Aşağıdaki durumlarda ise senkronizasyon koşu hata listesine bir kayıt düşer:
- Sütun var ama bir satırda değer boşsa, o kullanıcı hiçbir kuruma bağlanmaz.
external_idsütunu var ama bazı satırlarda boşsa, o satırlar için kararlı kimlik kapanır ve kullanıcı adıyla eşleştirmeye dönülür — kaynakta yapılan bir ad değişikliği bu satırlarda silme gibi görünebilir.enableddeğeri tanınmayan bir biçimdeyse hesap etkin sayılır (güvenli varsayılan).- Kurum yolu
/yerine\içeriyorsa ya da boşsa bozuk sayılır; yolu/ile yazın.
Kurum Listesi Sorgusu
İsteğe bağlı bir kurum listesi sorgusu tanımlayarak kurum ağacını, kullanıcı satırlarındaki yollardan türetmek yerine doğrudan kaynaktan okuyabilirsiniz.
| Takma Ad | Zorunlu mu | Açıklama |
|---|---|---|
path | Evet (liste tanımlıysa) | Kurumun tam yoludur. |
name | Hayır | Görünen addır. Boşsa yolun son parçası kullanılır. |
external_id | Hayır | Kurumun kararlı kimliğidir. |
parent_path | Hayır | Üst kurumun yoludur. Boşsa yoldan türetilir. |
SELECT unit_path AS path, unit_name AS name, unit_code AS external_id, parent_unit_path AS parent_path
FROM units;
Kurum listesi sorgusu tanımlanmadığında kurum ağacı yalnızca kullanıcı satırlarındaki organization_path değerlerinden türetilir.
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 9 adımda test eder; bir adım düşerse sonraki adımlar Uygulanmaz olarak işaretlenir:
- Yapılandırma Kontrolü
- Bağlantı Havuzu
- Veri Tabanı Bağlantısı
- Kullanıcı Sorgusu
- Sütun Sözleşmesi
- Hesap Durumu Değerleri
- Kurum Yolu
- Kurum Listesi Sorgusu
- Örnek Satırlar
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ı sorgusunu gerçekten çalıştırır ve ilk satırları 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. DB-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 |
|---|---|---|
| DB-I00 | Hata | Kaynak hiç okunamadı. |
| DB-I01 | Uyarı | Kullanıcı adı/e-posta boş satır(lar) elendi. |
| DB-I02 | Uyarı | Aynı kullanıcı adını birden çok satır kullanıyor, yalnız ilki oluşturuldu. |
| DB-I03 | Hata | Yapılandırılmış sütun takma adı sorgu sonucunda yok. |
| DB-I04 | Uyarı | Kurum yolu(ları) okunamadı. |
| DB-I05 | Uyarı | Kurum yolu tanımlı kurum listesinde yok, kullanıcı satırından türetildi. |
| DB-I06 | Uyarı | Hesap durumu değeri tanınmadı, etkin sayıldı. |
| DB-I07 | Uyarı | Kararlı kimlik bazı satırlarda boş. |
| DB-I09 | Bilgi | Kurum yolu, elle açılmış bir kurumla aynı; devralındı, elle yönetimde kalır. |
| DB-I10 | Bilgi | Kurum sözleşmesi hiç yapılandırılmamış; yalnız kullanıcılar senkronlanıyor. |
| DB-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.