- Apinizer içerisinde yer alan Security Manager, API Client’tan OAuth2 türünde authentication bilgisini ister. Bu authentication doğru ise akış devam eder.
- Apinizer, Backend API’ye istekte bulunur.
- Backend API, Apinizer’a yanıt verir.
- Apinizer, API Client’a yanıt verir.

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 alır.



- 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 alan All ifadesiyle eklenecek olan poliçeler tüm endpointlere uygulanabilmektedir.

Credentials Oluşturulması
Eklenecek Credentials’a ait bilgiler username = apinizer, password = 123123aA olacak şekildedir. Bunun için Identity Management menüsüne gelinir. Burada ise Credential Management menüsü altında yer alan Credentials menüsüne tıklanır.






Authentication Poliçesinin Eklenmesi
Artık OAuth2 Authentication poliçesi eklenebilir duruma gelmiştir. API proxy’lerin listelendiği sayfaya gidilir ve buradan Swagger Petstore isimli proxy seçilir. Daha sonra ise Develop sekmesine gelinir, Add Policy butonuna tıklanır. Açılan sayfada OAuth2 Authentication poliçesi seçilir.
- Grant Type alanı ile kullanılacak token servisinin kullanıcı bilgilerinin nasıl doğrulanacağı belirtilir eğer Client Credentials ifadesi seçilirse (Identity/Role/Group) Service kullanılamaz.
- Show API Key alanı ile oluşturulan proxy’ye ait API proxy key değerleri gözükmektedir.
- Delete Previous Token alanı ile daha önceden bulunan token geçersiz hale getirir.
- Token Never Expires alanı ile oluşturulan token’a bir zaman değeri atanmaz ve istenildiği kadar kullanılabilir bu seçenek seçilmez ise hemen altında aşağıdaki görselde yer alan bir menü oluşur.
- Token Expires In alanı ile token’ın ne kadar bir süre geçerli olacağı belirtilir, bu belirtme işlemi açılır menü içerisinde yer alan zaman ifadeleri ile ayarlanabilir.
- Refresh Token Allowed alanı ile oluşturulan token’ın yenilenme özelliği aktifleştirilir. Bu seçenek seçildiği takdirde de kaç kez yenilenebileceğine dair ayarlamanın yapılacağı alan gelmektedir ve bu alana ait görsel aşağıda yer almaktadır.
- Refresh Token Count token’ın kaç kez yenilenebilir olacağını belirtir.
- Refresh Token Expires In alanı ise yenilenen token’ın ne kadarlık bir yaşam süresine sahip olacağını belirtir.
- Allow URL Parameters alanı ile token üretimi için istek gönderildiğinde gidecek olan bilgilerin sadece mesaj gövdesinde gönderilmesine izin verilir. Eğer bu bilgilerin “URL Parametresi” olarak gönderilmesi istenirse bu seçenek seçilmelidir ancak bu durum bir güvenlik riski oluşturacağı için önerilmez.
- Add Client Info to Header alanı ile kimlik doğrulama başarılı bir şekilde gerçekleştiğinde, yetkilendirilmiş olan kullanıcı adını header’ın içine koyarak backend API’ye gönderir. Bu seçenek işaretlendiğinde ise hemen altında içerisinde X-Authenticated-UserId yazan bir input alanı oluşacaktır. Bu alan header bilgisinin varsayılan adıdır.


Authentication İçin Token Oluşturulması
OAuth2 Authentication poliçesi içerisinde yer alan Show API Key seçeneğinden ilgili proxy’ye ait Public Key bilgisi alınır.


- Method alanından method tipi seçilir.
- URL alanına token’ın alınacağı adres yazılır.
- Mesajın içeriği body kısmında yer alacağı için aşağıda yer alan sekmeden body ifadesi seçilir.
- Buraya token elde edebilmek için gerekli olan değerler yazılır ve Send butonuna tıklanır.


API Proxy’nin Test Edilmesi
Swagger Petstore isimli proxy seçilir. Develop sekmesi altında yer alan “/pet/” isimli endpoint seçilir. Test Endpoint ifadesine tıklanarak bu endpoint test edilir. URL’de istenilen petId değeri “1” olarak girilir, Send butonuna basıldığında dönen yanıtın bir hata mesajı olduğu görülür.


