- Apinizer içerisinde yer alan Security Manager, API Client’tan Plain-Text türünde güvenlik bilgisinin gelmesini bekler.
- Authentication bilgileri kontrol edilmek üzere veritabanına gönderilir.
- Veritabanından Apinizer’a authentication bilgileriyle ilgili cevap döner. Bu authentication doğrulaması yapılamazsa Apinizer isteği keser ve hata mesajı döner. Doğrulama yapılabilirse akış devam eder.
- Apinizer, Backend API’ye istekte bulunur.
- Backend API, Apinizer’a yanıt verir.
- Apinizer, API Client’a yanıtı iletir.

API Proxy’nin Oluşturulması

Açılan sayfada daha önceden herhangi bir proxy tanımı yapılmadığı için No records found! yazısı yer alabilir.



- Usage alanı ile oluşturulan API Proxy’nin kim tarafından kullanılacağı belirtilir. Burada publisher, consumer, publisher and consumer gibi seçenekler yer almaktadır.
- Sharing Type alanı ile oluşturulan API Proxy’nin paylaşım tipi belirtilir. Burada external, internal, external and internal gibi seçenekler yer almaktadır.
- Addresses sekmesi altında yer alan iki API adresinden biri veya her ikisi de seçilebilir eğer iki adres de seçilecek olursa Apinizer Load Balance işlemini kendisi gerçekleştirecektir.
- Relative Path ise oluşturulan API Proxy’nin erişime açılacak adresidir.
- Category List alanı da oluşturulan API Proxy’nin kategorilendirilmesine olanak sağlar.


Bu endpointlerin üstünde yer almakta olan All ifadesiyle eklenecek politikalar tüm metotlara uygulanabilmektedir.

Veritabanı Bağlantısının Gerçekleştirilmesi
Connection Management menüsü altında yer alan Veritabanı menüsüne tıklanır.Daha önceden herhangi bir veritabanı tanımı gerçekleştirilmemiş ise bu sayfada No records found! yazısı görülebilir.

- Name alanı ile oluşturulan bağlantının ismi ifade edilir.
- Description ifadesi ile oluşturulan bağlantıya açıklama eklenebilir.
- JDBC URL alanı ile bağlanılacak olan veritabanına bağlanmak için gerekli olan JDBC adresi yazılır. Bu bilgi veritabanı ekibinden edinilebilir.
- Username alanı ile bağlantı esnasında kullanılacak olan kullanıcı adı bilgisi, Password alanı ile de bağlantı esnasında kullanılacak olan parola girilir.



Veritabanı ile Kimlik Doğrulama Bağlantılarının Eklenmesi
Identity Management > Identity Providers > Database bölümünden daha önce oluşturulmuş veritabanı ile kimlik doğrulama tanımını eklemek üzere giriş yapılır.
Veritabanı ile Kimlik Doğrulama (Authentication) Bağlantısı
Create tuşuna basılır ve bağlantı ayarları girilir:- Bağlantıya isim ve açıklama girilir.
- Encryption Type ile veritabanı bağlantısında kullanılacak tabloda parola bilgisi şifreli tutuluyor ise tabloda tutulan şifreye ait şifreleme türü seçilmelidir.
- Database Connection Pool Definition alanı ile önceki adımlarda hazırlanan veritabanı seçilir.
- Bir sorgu veritabanından Kullanıcı adı/parola çiftlerini ya da rol listesini almak için kullanılır. Sorguda kullanıcı adı parametresi
:usernameşeklinde ve parola parametresi:passwordşeklinde tanımlanmalıdır. Apinizer iki nokta üsüste karakterini algılar ve ilgili parametrenin dışarıdan gönderileceğini bilerek buna göre işlem yapar.

Veritabanı ile Kimlik Yetkilendirmesi (Authorization) Bağlantısı
Kimlik doğrulama bağlantısından tek farkı girilen query’dir. Bu alanda kimlik yetkilendirme işlemi yapılacağı için query kısmında sadece ilgili rolün adı alınır.
Authentication Politikasının Oluşturulması
API proxy’lerin listelendiği sayfaya gidilir ve buradan Swagger Petstore isimli proxy seçilir. Develop sekmesine gelinir, Add Policy butonuna tıklanır. Açılan sayfada Plain-Text Authentication politikası seçilir.
- Identity/Role/Group Service alanında veritabanı bölümünden kontrolü sağlayacak veritabanı seçilir.
- Variable for username ve variable for password ifadeleri ile de kullanıcı adı ve parola bilgisinin hangi değişken ile alınacağı seçilir. Bu senaryoda bu değerler header içerisinden username ve password değerlerinde beklenecek ve alınacaktır.
- Add Client Info To Header seçeneği backend API’ye gidecek Header içerisinde ayrı bir header değeri ile kullanıcı adının iletilmesini sağlar.
- Authorization Configuration alanında kullanıcı kimlik doğrulaması gerçekleştirilmiş kişilerin rolleriyle ilgili kurallar girilebilecek alandır.
- Add Roles To Header seçeneği seçilirse yetkilendirme başarılı olduğu takdirde istemcinin rollerini “X-Authenticated-UserRoles” başlığına ekler.
- Identity/Role/Group Service alanında seçilecek veritabanı bölümünden rol bilgilerinin bulunduğu veritabanı seçilir. Bu genelde kimlik kontrolünü sağlayan veritabanı ile aynı tanımla yapılmaktadır.
- Roles/Group alanında kimlik yetkilendirilmesi yapılacak roller girilir.
- İstemcinin, API’ye erişmek için burada tanımlanan rollerin/grupların tümüne mi herhangi birine mi sahip olması yeterli olacaktır ayarı yapılır.
- Enable Role/Group Based Method Access seçeneği seçildiği zaman önce API’ye erişim izni verilen roller kontrol edilir. Ardından, metodlara erişimi kontrol etmek için diğer rollere bakılır.

Politika kaydolduğu zaman ilgili ikon görülmektedir.

API Proxy’nin Test Edilmesi
“/pet/” gibi bir endpoint seçildikten sonra, Test Endpoint butonuna tıklanır.



