Ana içeriğe geç

Database Provider

bilgi

"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:

Veritabanı ile Kimlik Doğrulama Bağlantısı

Veri tabanı ile kimlik doğrulama için bağlantı ayarlarında kullanılan alanlar aşağıdaki tabloda görülmektedir.

AlanAçıklama
AdOluşturulan Veri Tabanı Kimlik Sağlayıcı adı bilgisidir.
AçıklamaOluş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 AdZorunlu muAçıklama
usernameEvetOturum 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.
emailHayırE-posta adresidir.
full_nameHayırAd soyaddır.
external_idHayırKaynaktaki kararlı kimliktir. Boş bırakıldığında bu kaynak için yıkıcı işlemler (deaktivasyon, silme) kapalı kalır.
enabledHayırKaynaktaki 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_pathHayırKullanıcının kurum yoludur. Örnek: /Genel Müdürlük/Bilgi İşlem.
organization_external_idHayırKullanı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;
not

Ö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_id sü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.
  • enabled değ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 AdZorunlu muAçıklama
pathEvet (liste tanımlıysa)Kurumun tam yoludur.
nameHayırGörünen addır. Boşsa yolun son parçası kullanılır.
external_idHayırKurumun kararlı kimliğidir.
parent_pathHayı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:

  1. Yapılandırma Kontrolü
  2. Bağlantı Havuzu
  3. Veri Tabanı Bağlantısı
  4. Kullanıcı Sorgusu
  5. Sütun Sözleşmesi
  6. Hesap Durumu Değerleri
  7. Kurum Yolu
  8. Kurum Listesi Sorgusu
  9. Ö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:

KodAğırlıkBulgu
DB-I00HataKaynak hiç okunamadı.
DB-I01UyarıKullanıcı adı/e-posta boş satır(lar) elendi.
DB-I02UyarıAynı kullanıcı adını birden çok satır kullanıyor, yalnız ilki oluşturuldu.
DB-I03HataYapılandırılmış sütun takma adı sorgu sonucunda yok.
DB-I04UyarıKurum yolu(ları) okunamadı.
DB-I05UyarıKurum yolu tanımlı kurum listesinde yok, kullanıcı satırından türetildi.
DB-I06UyarıHesap durumu değeri tanınmadı, etkin sayıldı.
DB-I07UyarıKararlı kimlik bazı satırlarda boş.
DB-I09BilgiKurum yolu, elle açılmış bir kurumla aynı; devralındı, elle yönetimde kalır.
DB-I10BilgiKurum sözleşmesi hiç yapılandırılmamış; yalnız kullanıcılar senkronlanıyor.
DB-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.