Digest Kimlik Doğrulama (Digest Authentication)
Digest Kimlik Doğrulama Politikası, istemcilerin kimlik doğrulamasını kullanıcı adı, şifrelenmiş parola, benzersiz değer (nonce) ve zaman damgası (created) değerleri ile gerçekleştirmek için kullanılır. Daha çok SOAP servislerin güvenliği için istenmesi mantıklı olsa da nadiren de olsa diğer servislerin güvenliğinde kullanılabilir.
Bu politika kullanımı için parola bilgisinin şu algoritma ile şifrelenmiş olarak gönderilmesi gerekir:
Şifre oluşturma algoritması:
Base64 ( SHA1 ( nonce + created + clear text password ) )
Algoritmadan da görüleceği üzere bir kez oluşturulan şifrenin geriye dönüştürülmesi mümkün değildir ancak tek yönlü tekrar aynı değer oluşturulabilir.
Politikanın çalışması için ise şifrelenmiş değerin doğrulamasına ihtiyaç vardır. Doğrulamada kullanılmak üzere aynı değeri oluşturabilmek için kullanıcının parolası kullanılır. Bu durum ise kimlik doğrulayıcı olarak sadece "Security Manager (Güvenlik Yöneticisi)"ın seçilmesi ile mümkün olabilir. Bu yüzden:
Bu politikada kimlik doğrulayıcı olarak sadece Security Manager kullanılabilir.
Gönderilen kullanıcı adı, parola, nonce ve createdTime bilgilerinin mesajın neresinden alınacağına değişkenler ile karar verilir, sonrasında alınan değerlerin "Security Manager" üzerinde yukarıdaki algoritmanın da yardımıyla yetkilendirilmesi sağlanır.
Eğer sonuç başarılı ise mesajın akışa devam etmesine izin verilir, hatalı olması durumunda ilgili hata mesajı ile akış kesilerek istemciye dönülür.
Digest Kimlik Doğrulama ayarlarını içeren görsele aşağıda yer verilmiştir:
Digest Kimlik 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. |
Kimlik/Yetki Doğrulama Servisi (Identity/Role/Group Service) | Kullanıcı bilgilerini doğrulamak için kullanılacak Kimlik Sağlayıcı Servisidir. (Kimlik sağlayıcı servislerin detayına bakmak için Kimlik Sağlayıcı Servisi Tanımlama sayfasını ziyaret edebilirsiniz.) |
Kullanıcı Adı için Değişken (Variable for Username) | Mesaj içeriğinde gelen "Kullanıcı Adı" değerinin mesajın neresinden alınması gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.) |
Parola için Değişken (Variable for Password) | Mesaj içeriğinde gelen "Parola" değerinin mesajın neresinden alınması gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.) |
Nonce için Değişken (Variable for Nonce) | Mesaj içeriğinde gelen "Nonce" değerinin mesajın neresinden alınması gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.) |
Created için Değişken (Variable for Created) | Mesaj içeriğinde gelen "Created" değerinin mesajın neresinden alınması gerektiğini ifade etmek için kullanılan değişkendir. (Değişken kullanımı için Değişkenler sayfasını ziyaret edebilirsiniz.) |
İstemci Adresini Kontrol Et () | Kimlik sağlayıcı servis olarak "Security Manager" seçilirse görünür. Bu seçenek aktif hale getirilmişse ve kullanıcı tanımlanırken IP bilgisi de verilmişse, isteğin bu kullanıcı için tanımlanmış olan IP(ler)'den gelip gelmediği de kontrol edilir. |
Yetkilendirme Bilgisini Temizle (Clear Authentication Information) | Mesaj içeriğindeki mevcut tüm kimlik doğrulama bilgilerinin silinmesini sağlar. Bu durumda istemciden gelen istekte bir Yetkilendirme Bilgisi varsa bu bilgiler silinir ve Backend API'ye gönderilmez. |
(Add Client Info to Header) | Bu seçenek işaretlenirse, kimlik doğrulama başarıyla gerçekleştiğinde, yetkilendirilmiş kullanıcı adını başlığa koyarak Backend API'ye gönderir. Başlığın varsayılan adı X-Authenticated-UserId olup, istenirse değiştirilebilir. |
Kimliğin Ekleneceği Başlık (Authenticated User Header Name) | Kimliği Başlığa Ekle seçeneği işaretlenirse, kullanıcı adı ya da anahtarının ekleneceği başlığın adıdır. |
Yetki Ayarları (Authorization Configuration) | Erişim kontrolünü kullanıcıların rollerine göre yapmak için bu seçenek aktif hale getirilir. Daha detaylı bilgi için Yetkilendirme (Authorization) sayfasını ziyaret edebilirsiniz. |
Koşullar (Conditions) ve Hata Mesajı Özelleştirme (Error Message Customization) panellerinin detayı için Politikalar (Policies) sayfasını ziyaret edebilirsiniz.