JOSE Framework, dijital içeriği JSON veri yapıları kullanarak güvenli hale getirmek için bir dizi spesifikasyondur.

JOSE Framework kapsamında JWS, JWE, JWT, JWK ve JWA gibi özellikler bulunur.

Apinizer JOSE Framework spesifikasyonları destekler ve kullanımını kolay hale getirir.

JOSE Doğrulama politikası istemci tarafından gönderilen imzalanmış ve/veya şifrelenmiş JSON verilerinin imza doğrulaması ve/veya şifre çözme işlemlerinin yapılması için kullanılır.

JOSE Doğrulama ekranını içeren görsele aşağıda yer verilmiştir:

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

Alan

Açıklama

Açıklama

(Description)

Politikanın kullanımını ve yönetimini kolaylaştırmak için açıklama yazılabilir.

Doğrulama/Şifre Çözme için Hedef

(Target to be Validated/Decrypted)

Tüm mesaj gövdesi, ya da mesajın başlık, parametre ya da gövdesinin bir kısmına imza/şifreleme uygulanmış olabilir. Bu alan, mesajın neresindeki şifrenin doğrulanacağını ve/veya şifreli verinin çözüleceğini belirtmek için kullanılır. 

Hedef Değişken

(Target Variable)

Doğrulama/Şifre Çözme için hedefin, mesajın belirli bir kısmı olması durumunda neresi olduğunu belirtmek için kullanılan değişkendir.

İstemci Kaynağını Tanımla

(Identity Client from)

İstemci bilgisinin mesajın neresindeki veriden alınacağını belirler. Bu alan ile belirlenen istemci ile politika içerisinde istemciye ait JWK anahtarı bulunur. Alabileceği değerler; JWT'nin başlığı veya gövdesi ile belirtilir veya değişken ile seçilebilir. Çoğu durumda bu veri gövdede yer alsa da JWT şifreli olduğu durumda şifre açılmadan bilgi alınamayacağından kimlik bilgisinin başlıktan alınması beklenir. Eğer anahtarın dışında ise değişken kullanarak istemci bilgisine erişilebilir.

İstemci Tespiti için JSON Path veya Claim Adı

(JSON Path or Claim Name for Client Identification)

İstemci bilgisinin başlık veya gövde içerisinde hangi claim veya JSONPath değerinden veya alınacağını belirtir. Eğer bu alandaki yazılan ifade $. ile başlıyorsa ifade JSONPath olarak yoksa claim name olarak ele alınır.

Accepted Audience Listesi

(Accepted Audience List)

Gelen JWT/JWE verisi içerisinde yer alabilecek Audience listesidir. Gelen veride bu liste dışında kalan audience bilgisi var ise hata döner.

Exact Match Claim Listesi

(Exact Match Claim List)

Gelen JWT/JWE verisi içerisinde yer alabilecek Claim'lerin listesidir. Gelen veride bu liste dışında kalan Claim bilgisi var ise hata döner.

Required Claim Listesi

(Required Claim List)

Gelen JWT/JWE verisi içerisinde mutlaka olması gereken Claim'lerin listesidir. Gelen veride bu liste dışında kalan Claim'ler olabilir fakat bu Claim'lerin mutlaka olması gerekir, birisi eksikse dahi hata döner.

Prohibited Claim Listesi

(Prohibited Claim List)

Gelen JWT/JWE verisi içerisinde kesinlikle olmaması gereken Claim'lerin listesidir. Gelen veride sadece bu liste dışında kalan Claimler olabilir fakat bu Claim'lerin bir tanesi dahi varsa hata döner.

Şifre Çöz

(Decrypt)

Gelen veri şifreli ise (JWE) ve bu şifrenin çözülmesi isteniyorsa bu seçenek işaretlenir. Bu seçeneğin gözükmesi için "İmzayı Doğrula" seçeneğinin mutlaka seçilmiş olması gereklidir.

İstemci JWK'sı ile Şifre Çöz

(Decrypt By Client's JWK)

Gelen JWE verisi içerisinde yer alan şifreli alanların çözülmesi için kullanıcı kimliğine bağlı olarak işlem yapılmak istenirse bu seçenek seçilir. Bu durumda veri içerisinde yer alan "iss"(issuer) bilgisinin Apinizer Kullanıcı Kimlik Havuzunda yer alan kullanıcılar arasında yer alıp almadığına bakılır. Issuer bilgisi ile kullanıcı adı/API key eşleşen bir kullanıcı bulunmuş ise bu kullanıcının sahip olduğu Şifre JWK'sı ile şifre çözme işlemi yapılır. Ayrıca veri encrypted olarak gönderildiğinde "iss"(issuer) bilgisi ayrıca header'da da gönderilmelidir.

Şifre Çözme için JWK

(JWK for Decryption)

Gelen JWE verisi içerisinde yer alan şifre çözülürken veri içerisinde yer alan "iss"(issuer)  bilgisine göre değil fakat sabit bir JWK'ya göre şifre çözme işlemi yapılmak istenirse bu seçenek seçilir ve çözme işlemi burada seçilen JWK ile yapılır.

Son Kullanma Süresini Doğrula

(Validate Expiration Time)

Gelen JWT/JWE verisi içerisinde "iat" Claim'i içerisinde ne zaman oluşturulduğu bilgisi yer almaktadır. "exp" Claim'i içerisinde ise "iat"den ne kadar süre sonra expire olacağı bilgisi yer alır.

"Son Kullanma Süresini Doğrula" seçeneği seçilmiş ise bu iki değer toplanarak, isteğin geldiği zaman ile kıyaslaması yapılır ve küçük eşit olması beklenir. Geçersiz ise hata dönülür.

İmzayı Doğrula

(Validate Sign)

Gelen JWT/JWE verisi içerisinde yer alan imzanın geçerli olup olmadığının kontrol edilmesi için işaretlenir.

İstemci JWK'sı ile Doğrula

(Validate with Client's JWK)

Gelen JWT/JWE verisi içerisinde yer alan imzanın kontrol edilmesi için kullanıcı kimliğine bağlı olarak işlem yapılmak istenirse bu seçenek seçilir. Veri içerisinde yer alan "iss"(issuer)  bilgisinin Apinizer Kullanıcı Kimlik Havuzunda yer alan kullanıcılar arasında yer alıp almadığına bakılır. Issuer bilgisi ile kullanıcı adı/API key eşleşen bir kullanıcı bulunmuş ise bu kullanıcının sahip olduğu imza JWK ile doğrulama yapılır.

Doğrulama için JWK

(JWK for Validation)

Gelen JWT/JWE verisi içerisinde yer alan imza kontrol edilirken veri içerisinde yer alan "iss"(issuer)  bilgisine göre değil fakat sabit bir JWK'ya göre doğrulama yapılmak istenirse bu seçenek seçilir ve doğrulama burada seçilen JWK ile yapılır.

Kimliği Başlığa Ekle

(Add Client Info to Header)

Bu seçenek seçildiğinde; yetkilendirmenin başarılı olması durumunda, Apinizer yetkilendirilmiş kullanıcı bilgisini "X-Authenticated-UserId" başlığı ile iletir.

İstemci için ACL Kontrol Et

(Validate ACL for Client)


(Validate Client Address)


JWT/JWE Payload'u Yalıt ve Decode Et

(Strip and Decode JWT/JWE Payload)

JWT/JWE verisinin politika ile doğrulama işlemi dışında, doğrulama işlemi yaptığı verinin decode/decrypt edilmesi için bu alan kullanılır. "Hepsi" seçilmesi durumunda tüm veri, "Kısmi" seçilmesi durumunda sadece belirtilen kısım çözülür ve yalıtılır. "Hiçbiri" seçilmesi durumunda yalıtma ve çözme işlemi yapılmaz.

Decode Edilecek Claim

(Claim to Decode)

"JWT/JWE Payload'u Decode Et" alan değeri "Kısmi" seçildiğinde, JWT/JWE'nin gövdesinde (payload) yer alan claimlerden hangisinin yalıtma ve çözme işlemine tabii tutulacağını belirtir.


Doğrulama/Şifre Çözme için Hedef 

(Target for Decoded Claims)

Başarılı doğrulama/şifre çözme işlemi sonrasında yalıtılmış ve çözülmüş değerin mesajın neresine konulacağını belirtir.

Doğrulama/Şifre Çözme için Hedef Değişken

(Target Variable for Decoded Claims)

Doğrulama/Şifre Çözme için Hedefin mesajın belirli bir kısmı olması durumunda neresi olduğunu belirtmek için kullanılan değişkendir.

Yetki Ayarları

(Authorization Configuration)

Erişim kontrolünü kullanıcıların rollerine göre yapmak için bu seçenek aktif hale getirilir. Bu alan sadece "İstemci için ACL Kontrol Et" seçeneği aktif ise ekranda gözükür.

Daha detaylı bilgi için Yetkilendirme (Authorization) sayfasını ziyaret edebilirsiniz. 

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