HTTP Kimlik Doğrulamasını Anlama

Kimlik doğrulaması, genellikle istemcinin bir kaynağa erişmeye uygun olup olmadığını belirlemek için istemcinin kim olduğunu belirleme işlemidir. HTTP protokolü, güvenli bir kaynağa erişim anlaşması yapmak için kimlik doğrulamasını destekler.

bir istemciden gelen ilk istek genellikle anonim bir istektir, herhangi bir kimlik doğrulama bilgisi içermez. HTTP sunucusu uygulamaları kimlik doğrulaması gerektiğini belirtirken anonim isteği reddedebilir. Sunucu uygulaması desteklenen kimlik doğrulama düzenlerini belirtmek için WWW-Authentication üst bilgileri gönderir. Bu makalede, HTTP için çeşitli kimlik doğrulama düzenleri açıklanır ve Windows Communication Foundation'daki (WCF) destekleri ele alınmaktadır.

HTTP Kimlik Doğrulama Düzenleri

Sunucu, istemcinin aralarından seçim yapabileceğiniz birden çok kimlik doğrulama şeması belirtebilir. Aşağıdaki tabloda, Windows uygulamalarında yaygın olarak bulunan bazı kimlik doğrulama düzenleri açıklanmaktadır:

Kimlik Doğrulama Düzeni Açıklama
Anonim Anonim istek herhangi bir kimlik doğrulama bilgisi içermez. Anonim, herkese kaynağa erişim izni vermekle eşdeğerdir.
Temel Temel kimlik doğrulaması, istemci için kullanıcı adı ve parola içeren Base64 kodlu bir dize gönderir. Base64 bir şifreleme biçimi değildir ve kullanıcı adı ve parolayı düz metin olarak göndermekle aynı kabul edilmelidir. Bir kaynağın korunması gerekiyorsa, temel kimlik doğrulaması dışında bir kimlik doğrulama şeması kullanmayı kesinlikle göz önünde bulundurun.
Özet Özet kimlik doğrulaması, Temel kimlik doğrulamasının yerini alacak bir sınama yanıtı düzenidir. Sunucu, istemciye bir sınama olarak nonce adlı rastgele bir veri dizesi gönderir. İstemci, ek bilgiler arasında kullanıcı adı, parola ve nonce içeren bir karma ile yanıt verir. Bu değişimin neden olduğu karmaşıklık ve veri karması, bu kimlik doğrulama düzeniyle kullanıcının kimlik bilgilerinin çalınıp yeniden kullanılmasını zorlaştırıyor.

Özet kimlik doğrulaması, Windows etki alanı hesaplarının kullanılmasını gerektirir. Özet bölgesi , Windows etki alanı adıdır. Bu nedenle, Özet kimlik doğrulaması ile Windows XP Home Edition gibi Windows etki alanlarını desteklemeyen bir işletim sisteminde çalışan bir sunucu kullanamazsınız. Buna karşılık, istemci Windows etki alanlarını desteklemeyen bir işletim sisteminde çalıştığında, kimlik doğrulaması sırasında açıkça bir etki alanı hesabı belirtilmelidir.
NTLM NT LAN Manager (NTLM) kimlik doğrulaması, Özet kimlik doğrulamasının daha güvenli bir varyasyonu olan bir sınama yanıtı düzenidir. NTLM, kodlanmamış kullanıcı adı ve parolası yerine sınama verilerini dönüştürmek için Windows kimlik bilgilerini kullanır. NTLM kimlik doğrulaması, istemci ve sunucu arasında birden çok değişim gerektirir. Sunucunun ve tüm ara sunucuların kimlik doğrulamasını başarıyla tamamlamak için kalıcı bağlantıları desteklemesi gerekir.
Anlaşma Anlaşma kimlik doğrulaması, kullanılabilirlik durumuna bağlı olarak Kerberos protokolü ile NTLM kimlik doğrulaması arasında otomatik olarak seçer. Kerberos protokolü kullanılabiliyorsa kullanılır; aksi takdirde NTLM denendi. Kerberos kimlik doğrulaması NTLM'de önemli ölçüde iyileştirir. Kerberos kimlik doğrulaması NTLM'den daha hızlıdır ve uzak makinelere karşılıklı kimlik doğrulaması ve kimlik bilgilerinin temsilci olarak kullanılmasına olanak tanır.
Windows Live ID Temel alınan Windows HTTP hizmeti, federasyon protokollerini kullanarak kimlik doğrulamasını içerir. Ancak WCF'deki standart HTTP aktarımları, Microsoft Windows Live ID gibi federasyon kimlik doğrulaması düzenlerinin kullanımını desteklemez. Bu özellik için şu anda ileti güvenliği kullanılarak destek sağlanıyor. Daha fazla bilgi için bkz . Federasyon ve Verilen Belirteçler.

Kimlik Doğrulama Düzeni Seçme

Bir HTTP sunucusu için olası kimlik doğrulama düzenlerini seçerken, dikkate alınması gereken birkaç öğe aşağıdakileri içerir:

  • Kaynağın korunması gerekip gerekmediğini göz önünde bulundurun. HTTP kimlik doğrulamasının kullanılması daha fazla veri iletmeyi gerektirir ve istemcilerle birlikte çalışabilirliği sınırlayabilir. Korunması gerekmeyen kaynaklara anonim erişim izni verin.

  • Kaynağın korunması gerekiyorsa, hangi kimlik doğrulama düzenlerinin gerekli güvenlik düzeyini sağladığını göz önünde bulundurun. Burada ele alınan en zayıf standart kimlik doğrulama şeması temel kimlik doğrulamasıdır. Temel kimlik doğrulaması kullanıcının kimlik bilgilerini korumaz. En güçlü standart kimlik doğrulama düzeni, Kerberos protokolüne neden olan Anlaşma kimlik doğrulamasıdır.

  • Bir sunucu, örneğin WWW-Authentication üst bilgilerinde), kabul etmeye hazır olmadığı veya korunan kaynağın güvenliğini yeterince sağlamayan herhangi bir şemayı sunmamalıdır. İstemciler, sunucunun sunduğu kimlik doğrulama düzenlerinden herhangi birini seçebilir. Bazı istemciler varsayılan olarak zayıf bir kimlik doğrulama şemasına veya sunucu listesindeki ilk kimlik doğrulama düzenine sahiptir.

Ayrıca bkz.