Ana içeriğe geç

SOAP Web Servise Security Manager Provider Aracılığıyla Plain-Text Authentication Poliçesinin Uygulanması

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

  • Apinizer içerisinde yer alan Security Manager, API Client'tan Plain-Text türünde authentication bilgisini ister. Bu authentication bilgisi doğru ise iki numaralı alana geçiş yapılır.
  • Apinizer, Backend API'ye istekte bulunur.
  • Backend API, Apinizer'a yanıt verir.
  • Apinizer, API Client'a yanıt verir.
Senaryo Diyagramı

API Proxy'nin Oluşturulması​

Senaryo Diyagramı

Calculator isimli web servise http://www.dneonline.com/calculator.asmx?WSDL adresinden erişim sağlanabilmektedir.

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

Bunun için API Gateway menüsü altında yer alan API Proxy'ler 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şturmaya başlanır.

Senaryo Diyagramı

Eklenecek API proxy bir SOAP web servis olduğu için From WSDL Specification (SOAP Proxy) kartında URL Gir seçeneğine tıklanarak kullanılacak olan web servisin adresinin girileceği ekrana geçiş yapılır.

Senaryo Diyagramı

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.

Senaryo Diyagramı

Çözümlemeyi yaptıktan sonra ise aşağıdaki görselde yer alan ekran karşımıza çıkmaktadır. Bu ekran üzerinden API Proxy'ye ait ayarlar yapabilmektedir.

  • SOAP web servisin dönüşüm yapılmadan SOAP olarak kullanılıp kullanılmayacağı bu ekranda değil, yeni API Proxy ekranında seçilen kartla belirlenir: From WSDL Specification (SOAP Proxy) kartı SOAP tipinde, From WSDL Specification (REST Proxy) kartı REST tipinde (protokol dönüşümlü) API Proxy oluşturur. Bu senaryoda SOAP Proxy kartı kullanılı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.
Senaryo Diyagramı

Bu ayarlamalar yapıldıktan sonra API Proxy kaydedilir.

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

Senaryo Diyagramı

Burada web servise ait olan metotlar görülmektedir.

  • Bu metotların üstünde yer alan All ifadesiyle eklenecek olan poliçeler tüm metotlara uygulanabilmektedir.
  • Oluşturulan API Proxy deploy edilir. Bunun için yukarıda orta kısımda yer alan Deploy butonuna tıklanır.
Senaryo Diyagramı

Tüketici Oluşturulması​

Eklenecek tüketiciye ait bilgiler username = apinizer, password = 123123aA olacak şekildedir.

Bunun için Kimlik menüsüne gelinir.

Burada ise Tüketiciler menüsüne tıklanır.

Senaryo Diyagramı

Açılan ekranda sağ üst köşede yer alan Create butonuna tıklanır.

Senaryo Diyagramı

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

Senaryo Diyagramı

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

Senaryo Diyagramı

Açılan ekranda Erişim Kontrolü sekmesine tıklanır. API Proxy Erişimi kartındaki Proxy Ekle butonuna tıklanır.

Senaryo Diyagramı

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

Add butonuna tıklayarak oluşturulan Consumer öğesinin bu proxy'ye erişimi olacağı belirtilir. Açılan ... kaydedilip yüklensin mi? penceresinde Onayla butonuna tıklanır.

Senaryo Diyagramı

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

Authentication Poliçesinin Eklenmesi​

Artık Plain-Text Authentication poliçesi eklenebilir duruma gelmiştir.

API Proxy'lerin listelendiği sayfaya gidilir ve buradan Calculator isimli proxy seçilir.

Daha sonra ise Develop sekmesine gelinir, Add Policy butonuna tıklanır.

Açılan sayfada Plain-Text Authentication poliçesi seçilir.

Senaryo Diyagramı

Bu ekran üzerinde yer alan alanlar:

  • 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 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 alınacaktır.
  • Clear Authentication Information seçeneği seçilirse 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.
Senaryo Diyagramı

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

Senaryo Diyagramı

API Proxy'nin Test Edilmesi​

Add metodunu seçtikten sonra Test Method butonuna tıklanır.

Senaryo Diyagramı

Body içerisinde istenilen değerler yazıldıktan sonra Send butonuna tıklanır ve backend API'ye istekte bulunulur.

Senaryo Diyagramı

Aşağıdaki görselde de görüldüğü üzere backend API'ye hiçbir authentication bilgisi gönderilmediği için yanıt olarak dikdörtgen içerisinde yer alan hata mesajı alınır.

Senaryo Diyagramı

Bu sefer header içerisine username ve password ifadeleri girilip test yeniden gerçekleştirilir.

Backend API'ye gönderilecek olan headers içerisinde username = apinizer, password = 123123aA değerleri girilir.

Send butonuna tıkladığında başarılı cevap alınır.

Senaryo Diyagramı