Bu senaryoda Swagger PetStore isimli REST mimaride oluşturulmuş bir API'ye, Basic (Base64) Authentication poliçesinin uygulanması test edilecektir.

Aşağıdaki grafikte yer alan numaralandırmalar işlemlerin yapılış sırasına aittir.

  1. Apinizer içerisinde yer alan Security Manager, API Client'tan Basic (Base64) türünde authentication bilgisini ister. Bu authentication doğru ise iki numaralı alana geçiş yapılır.
  2. Apinizer, Backend API'ye istekte bulunur.
  3. Backend API, Apinizer'a yanıt verir.
  4. Apinizer, API Client'a yanıt verir.

API Proxy'nin Oluşturulması

Swagger Petstore isimli REST API'ye https://petstore.swagger.io/ adresinden erişim sağlanabilmektedir. 

İlk olarak bu adresin API Proxy olarak tanımlanması gereklidir.

Bunun için Development menüsü altında yer alan API Proxies seçeneğine tıklanır. 


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

Burada sağ üst köşede yer almakta olan Create butonuna tıklanır ve yeni bir proxy oluşturulmaya başlanır.


Bu kısımda oluşturulacak olan API Proxy'nin hangi tipte olduğunun seçilmesi gerekmektedir.

Bu senaryoda kullanılacak olan API'nin türü Swagger 2.X olacağı için bu tür seçilir.

Enter URL ifadesine tıklanarak kullanılacak olan API'nin adresinin girileceği ekrana geçiş yapılır.


Aşağıdaki görselde de görüldüğü üzere URL kısmına erişim sağlanacak adres girilerek Parse butonuna tıklanır.  


Parse işlemi yapıldıktan sonra ise aşağıdaki görselde yer alan ekran gelmektedir.

Bu ekran üzerinden API Proxy'ye ait ayarlar yapılabilmektedir.

  • 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 ayarlamalar yapıldıktan sonra API Proxy kaydedilir.


Kaydetme işleminden sonra ise açılan sayfada Develop sekmesine tıklanır.


Burada REST API'ye ait endpoint'ler listelenmektedir.

  • Bu endpointlerin üstünde yer alan All ifadesiyle eklenecek olan poliçeler tüm endpointlere uygulanabilmektedir.
  • Oluşturulan API Proxy deploy edilir. Bunun için yukarıda orta kısımda yer alan Deploy butonuna tıklanır.
  • Sonraki adımda Credentials eklenerek oluşturulan API Proxy'ye hangi kullanıcıların erişim sağlayacağı belirtilir.

Credentials Oluşturulması

Eklenecek Credential'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.


Açılan ekranda sağ üst köşede yer alan dikdörtgen içerisine alınmış Create butonuna tıklanır. 


Burada gerekli olan alanlar daha önceden belirtilen bilgilerle doldurulur ve Save and Deploy butonuna tıklayarak oluşturulan credential kaydedilir.


Bu credential öğesinin erişim sağlayacağı proxy'nin seçilmesi gerekmektedir. Oluşturulan credential'ın üzerine gelip yanda yer alan menüden Edit seçeneğine tıklanır.


Açılan ekran üzerinden API Proxy ACL sekmesine tıklanır, bu sekme içerisinde yer alan ve görsel üzerinde kırmızı dikdörtgen içerisinde belirtilen butona tıklanır.


Açılan sayfada şu an üzerinde çalışılan projede bulunan API Proxy'ler listelenmektedir. Swagger Petstore isimli proxy seçilir.

Add butonuna tıklayarak oluşturulan Credential öğesinin bu proxy'ye erişimi olacağı belirtilir. 


Daha önceden boş bir şekilde görünen listede artık bir adet API Proxy bulunmaktadır.

Sağ üst köşede yer alan Save and Deploy butonuna tıklanır ve yapılan işlem kaydedilir.


Değişken Tanımlaması

Poliçede kullanılacak olan değişkenin tanımının yapılması gerekmektedir. 

Kullanılacak değişkenlerin seçileceği ekran aşağıdaki görselde yer almaktadır.

Bu görselde kırmızı dikdörtgen içerisinde yer alan Add butonuna tıklanır.


Name input alanına oluşturulmak istenilen değişkenin adı yazılır. 

Type alanında ise kullanılacak değişkenin tipi belirtilir.

Header Name alanında ise kullanılacak değişkenin Header içerisinde hangi adla isimlendirileceği ifade edilir.

Yapılan değişiklikler Save butonuna tıklanarak kaydedilir.

Authentication Poliçesinin Eklenmesi

Artık Basic (Base64) 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 Basic Authentication poliçesi seçilir.


Bu ekran üzerinde yer alan ifadeler tek tek incelenecek olursa, 

  • Identity/Role/Group Service alanında seçilecek olan değer Security Manager değeridir. Çünkü credentials kontrolü Security Manager tarafından gerçekleştirilecektir.
  • Variable for authorization alanında ise kullanılan authentication türü Basic (Base64) olduğu için ve bu authentication türünde de kullanılan usernamepassword bilgileri encrypted edildiği için bu ifade kullanılır. Bu senaryoda bu değer header içerisinden alınacaktır.
  • Clear Authentication Information seçeneği seçilirse eğer gelen mesaj içerisinde authentication bilgisi silinir.
  • Add Client Info To Header seçeneği backend API'ye gidecek Header içerisinde istemciye ait bilgilerin bulunup bulunmayacağını belirtir.
  • Bu seçenek aktif duruma gelirse Authenticated User Header Name isminde başka bir parametre ortaya çıkmaktadır.
  • Burada yer alan X-Authenticated-UserId ifadesi ise backend API'ye gidecek olan istemci bilgisinin hangi başlık ismi ile gideceğini belirtmektedir. 


Poliçe kaydolduğu zaman kırmızı dikdörtgen içerisine alınmış ikon görülmektedir.

Yapılan işlemin geçerli olması için proxy'nin Deploy olması gerekmektedir.

Şimdi proxy'nin içerisinde yer alan metotların test işlemi gerçekleştirilebilir. 


API Proxy'nin Test Edilmesi

/pet/{petId} endpoint'ini seçtikten sonra, Test Endpoint butonuna tıklanır.  


URL' de istenilen petId değeri 2 olarak girilir, Send butonuna basıldığında dönen yanıtın bir hata mesajı olduğu ve bu hatanın da uygulanmış olan Basic (Base64) Authentication ile alakalı olduğu görülmektedir.

Çünkü header'ın içerisine hiçbir şekilde bir authentication bilgisi yerleştirilmemiştir. 


Bu proxy'de Basic (Base64) Authentication kullanıldığı için username ve password bilgilerinin de bu yönde encrypted edilmesi gereklidir.

Base64 Türünde Şifrelemenin Yapılması

Test menüsü altında yer alan Toolbox menüsü seçilir, burada Base64 şifreleme formatında encode ve decode yapabilecek bir araç bulunmaktadır. Bu araç seçilir.


Burada decoded data alanına şifrelenmesini istediğiniz ifadeler yazılır, encoded data alanında ise şifrelenen veri elde edilir.


Encode edilmiş hali olan username ve password bilgisi buradan elde edilir ve tekrardan proxy'lerin listelendiği sayfaya gidilir.

Buradan yine Swagger Petstore isimli proxy seçilir.

Develop sekmesine geçiş yapılır burada listelenmekte olan endpoint'lerden  /pet/{petId} endpoint'i seçilir ve Test Endpoint denir.

URL'de istenilen petId değeri yine 2 olarak verilir.

Headers içerisinde Authorization ifadesini ve buna da değer olarak encoded edilen username ve password bilgisi Base64 formatında girilir.

Send butonuna tıklanarak belirtilen id'ye göre veri getirme işlemi gerçekleştirilir.