Backend API'ler (özellikle kurum içinde olmadığında) erişim için yetkilendirme isteyebilir. Bu durumda Apinizer üzerinde tanımlanan API Proxy'nin Backend API'ye erişmesi için istenen yetkilendirmenin yapılması gerekir. Bunun bir yöntemi de Backend API Kimlik Doğrulama politikasıdır. Bu politika ile Backend API'nin istediği kimlik bilgileri mesaj içeriğine uygun şekilde yerleştirilir.

Politika içeriğinde istenen bilgiler "Yetkilendirme Yöntemi"ndeki seçime göre değişiklik gösterir.

Bu yüzden bu politika eklendiğinde aşağıdaki görselde görüldüğü gibi öncelikle Yetkilendirme Yöntemi seçilmelidir.

Politika ayarlarını içeren görsele aşağıda yer verilmiştir:

Burada seçilebilecek 4 adet Yetkilendirme Yöntemi (Authentication Method) vardır:

  1. Basit Yöntem: Bu yöntemde kullanıcı adı ve parolası şifrelenmeden mesaja açık olarak yerleştirilir. 
  2. Base64 Yöntemi: Bu yöntemde kullanıcı adı ve parolası ":" ile ayırt edilir, Base64 ile encode edilir, oluşan değer mesaja yerleştirilir. 
  3. Digest Yöntemi: Bu yöntem daha çok SOAP Security isteyen SOAP Servislerde kullanılsa da nadiren REST API'lerde de kullanılabilir. Kullanıcı adı, parolası, zaman damgası (created) ve benzersiz değer (nonce), Digest oluşturma algoritmasına göre oluşturularak mesaja yerleştirilir.
  4. API Çağrım Yöntemi: Bu yöntem ile bir kimlik sağlayıcı üzerinden API Key alınır ve mesaja bu değer yerleştirilir. 

Basit, Base64 ve Digest yöntemlerde istenen konfigürasyon alanları aynıdır. 

Bu, 3 yöntemde de kullanıcı adı ve parolası girilmeli, "Kimlik Bilgisinin Gönderilme Şekli" seçilmelidir. 

Bazen Backend API'ye farklı kullanıcılar ile erişilmek istenebilir. Bu durumda birden fazla kullanıcı adı ve parolası ile birlikte bu ikilinin hangi durumda çalışması isteniyorsa ilgili durumu ifade eden koşul girilir.

Çalışma zamanında birden fazla kullanıcı adı, parola ikilisi olması durumunda bunların koşulları çalıştırılır ve koşula uyan kullanıcı adı ve parola bilgisi kullanılır. Eğer koşula uyan birden fazla kullanıcı adı, parolası varsa ilk uyan tercih edilir.

Kullanıcı adı ve parola eklemek için aşağıdaki görselde belirtilen "Yeni" tuşuna basılır.


Ekrana çıkan görselde kural ile veya kuralsız kullanıcı adı ve parolası girilir, kaydet tuşuna basılır ve diğer ayarlar için işlemlere devam edilir.


Basit, Base64 ve Digest Yetkilendirme yöntemlerinde istenen konfigürasyon alanları kimlik bilgisinin gönderileceği alanın seçimine bağlı olarak değişir.


Kimlik bilgisinin gönderileceği alanın alabileceği 4 değer vardır:

  1. Başlık
  2. Parametre
  3. Mesaj Gövdesi
  4. Mesaj Gövdesi Yerleştirme

Yetkilendirme Yöntemi bu 4 yöntemde gönderilecek olan Kullanıcı Adı ve Parola ikilisinin davranışını belirler, bu tipe göre gönderilecek olan alanlar belirlenir.

Politikanın konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

Yetkilendirme YöntemiKimlik Bilgisinin DurumuKimlik Bilgisinin Gönderilebilme Şekliİstenen Değerler
Basit YöntemKullanıcı adı ve parolası "Açık Metin" olarak gönderilir.Başlık (Header)

Kullanıcı adı ve parolanın gönderileceği Alan Adları girilir. Çalışma zamanında koşula uyan kullanıcı adı ve parolası bu alanların değeri olarak mesaj başlığına eklenir.

Parametre (Parameter)

Kullanıcı Adı ve Parolanın gönderileceği Alan Adları girilir. Çalışma zamanında koşula uyan kullanıcı adı ve parolası "alan adı=alan değeri" ikilileri şeklinde "&" ile ayrılarak mesaj parametrelerine eklenir

Mesaj Gövdesi (Message Body)

Mesaj gövdesine eklenecek olan "şablon mesaj" ve bu şablon mesajın gövdenin neresine ekleneceğini belirten "yol" istenir. Şablon mesaj içinde ## ifadeleri ile belirtilen alanlar kullanıcı adı ve parolası değiştirilerek Backend API'ye gönderilir. Kullanıcı adı için: #USERNAME# parola için: #PASSWORD# kullanılır.

Yol değeri, mesaj tipi XML ise XPath, JSON ise JSONPath olur.

Çalışma zamanında, koşula uyan kullanıcı adı ve parola şablonda değiştirilerek oluşan metin mesaj gövdesindeki belirtilen yola eklenir.

Mesaj Gövdesi Yerleştirme (Message Body Injection)

Mesaj gövdesine eklenecek olan kullanıcı adı ve parola "eleman adı" ve bu elemanın gövdenin neresine ekleneceğini belirten yollar (paths) istenir. 

Yol değerleri, mesaj tipi XML ise XPath, JSON ise JSONPath olur.

Çalışma zamanında, koşula uyan kullanıcı adı ve parola belirtilen yollara göre mesaj gövdesine yeni eleman adlarıyla beraber eklenir.

Base64 Yöntemi

Kullanıcı adı ve parolası ":" ile bitiştirilir, oluşan değer Base64 ile encode edilerek gönderilir.

Örneğin; Kullanıcı Adı "admin", parola "Ws6txj98!" ise, oluşan değer: "YWRtaW46V3M2dHhqOTgh" olur. Eğer "Başlık" alanında gönderiliyor ise bu değerin başına "Basic " ifadesi gelir, diğer seçeneklerde olduğu gibi kullanılır.

Başlık (Header)

Encode edilen verinin gönderileceği alan adı girilir. Çalışma zamanında koşula uyan kullanıcı adı ve parolası ile oluşturulan değer mesaj başlığına eklenir.

Parametre (Parameter)Encode edilen verinin gönderileceği alan adı girilir. Çalışma zamanında koşula uyan kullanıcı adı ve parolası ile oluşturulan değer mesaj parametresine "alan adı=oluşan değer" şeklinde eklenir.

Mesaj Gövdesi (Message Body)

Mesaj gövdesine eklenecek olan "şablon mesaj" ve bu şablon mesajın gövdenin neresine ekleneceğini belirten "yol" istenir. Şablon mesaj içinde ## ifadesi ile belirtilen alan encode edilen değer ile değiştirilerek Backend API'ye gönderilir. Bu alan adı için #PASSWORD# kullanılır.

Yol değeri, mesaj tipi XML ise XPath, JSON ise JSONPath olur.

Çalışma zamanında, koşula uyan kullanıcı adı ve parola ile oluşturulan değer şablonda değiştirilerek oluşan metin mesaj gövdesindeki belirtilen yola eklenir.

Mesaj Gövdesi Yerleştirme (Message Body Injection)

Mesaj gövdesine eklenecek olan encode edilmiş değer için "eleman adı" ve bu elemanın gövdenin neresine ekleneceğini belirten "yol" istenir. 

Yol değeri, mesaj tipi XML ise XPath, JSON ise JSONPath olur.

Çalışma zamanında, koşula uyan kullanıcı adı ve parola ile oluşturulan değer belirtilen yola göre mesaj gövdesine yeni eleman adıyla beraber eklenir.

Digest Yöntemi

Kullanıcı adı açık metin olarak, parolası ise şifrelenmiş olarak gönderilir. Bu yöntemde "created" ve "nonce" ifadeleri de oluşur. 

Parolanın şifrelenme formülü şu şekildedir:
Base64 ( SHA1 ( nonce + created + password ) )
Başlık (Header)

Kullanıcı Adı, Şifre, created ve nonce değerlerinin gönderileceği alan adları girilir. Çalışma zamanında koşula uyan kullanıcı adı, parolası ve oluşturulan created ve nonce değerleri bu alanların değeri olarak mesaj başlığına eklenir.

Parametre (Parameter)

Kullanıcı Adı, Şifre, created ve nonce değerlerinin gönderileceği alan adları girilir.  Çalışma zamanında koşula uyan kullanıcı adı, parolası ve oluşturulan created ve nonce değerleri bu alanların değeri olarak mesaj parametrelerine  "alan adı=alan değeri" ikilileri şeklinde "&" ile ayrılarak eklenir.

Mesaj Gövdesi (Message Body)

Mesaj gövdesine eklenecek olan "şablon mesaj" ve bu şablon mesajın gövdenin neresine ekleneceğini belirten "yol" istenir. Şablon mesaj içinde ## ifadeleri ile belirtilen alanlar kullanıcı adı, parolası, created ve nonce değerleri değiştirilerek Backend API'ye gönderilir. Kullanıcı adı için: #USERNAME# parola için: #PASSWORD#, created için: #CREATED#, nonce için: #NONCE#, kullanılır.

Yol değerleri, mesaj tipi XML ise XPath, JSON ise JSONPath olur.

Çalışma zamanında, koşula uyan kullanıcı adı , parolası ve oluşturulan created ve nonce değerleri şablonda değiştirilerek oluşan metin mesaj gövdesindeki belirtilen yola eklenir.

Mesaj Gövdesi Yerleştirme (Message Body Injection)

Mesaj gövdesine eklenecek olan kullanıcı adı, parola, created ve nonce "eleman adı" ve bu elemanların gövdenin neresine ekleneceğini belirten "yol"lar istenir. 

Yol değerleri, mesaj tipi XML ise XPath, JSON ise JSONPath olur.

Çalışma zamanında, koşula uyan kullanıcı adı parolası ve oluşturulan created ve nonce değerleri belirtilen yola göre mesaj gövdesine yeni eleman adıyla beraber eklenir.

API Çağrım Yöntemi---


API Çağrım Yönteminde diğer 3 yöntemden farklı olarak tanımlanmış bir "API Kimlik Sağlayıcı" seçilir ve seçilen "API Kimlik Sağlayıcı"daki kurallar işletilir. Seçilen API kimlik sağlayıcısının, ayarlarında belirtilen API üzerinden bir Key/Token alıp ve bunu mesaja yerleştirmesi beklenmektedir. Duruma göre sadece bir API Key/Token değil, kullanıcının farklı bilgilerini (örneğin sahip olduğu rolleri gibi) de Backend API ye gidecek olan mesaja yerleştirebilir. "API Kimlik Sağlayıcı"nın detayına buradan erişebilirsiniz.

Koşullar ve Hata Mesajı Özelleştirme panellerinin açıklamasını görüntülemek için Politikalar (Policies) sayfasını ziyaret edebilirsiniz.