2010-11-24 39 views
25

Parola korumalı bir siteye erişmeye çalışıyorum. Yanıt üstbilgisi WWW-Authenticate: Negotiate olduğu için temel kimlik doğrulaması kullanmıyor (aynı kullanıcı/geçiş kutusu firefox'ta açılır).WWW-Kimlik Doğrulama ile kimlik doğrulama sorunları: Anlaşıldı

Doğru başlığı göndererek giriş işlemini otomatikleştirmek istiyorum.

gibi bir şey kullanmak istiyorsunuz temel olarak

: Ben müzakere için kullanmak hangi

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== 

?

+1

WWW-Kimlik Doğrulaması: Pazarlık üstbilgisi, sunucunun kimlik doğrulama ve şifreleme için NTLM veya Kerberos (en az Windows 7 ve Win 2008 Server'dan önce ek güvenlik destek sağlayıcıları eklendiğinde işletim sistemi) ekleyebileceği anlamına gelir. NTLM'nin bu durumda, müzakere, güvenli oturum kurulmadan önce değiş tokuş edilmek üzere birden fazla mesaj (meydan okuma/cevap) gerektirir, böylece başlangıçtan gönderilecek "doğru başlık" yoktur. Sorunuzla ilgili ayrıntıları http://msdn.microsoft.com/en-us/library/aa378748%28VS.85%29.aspx (Microsoft tarafından sağlanan SSP Paketleri) bulabilirsiniz. Ben, AD FS sunucu değerleri ile yanıt verirken iki WWW-Authenticate başlık alanları ile yanıt veriyor ile çalışıyorum uygulamaların birinde –

cevap

24

Web sunucusu sizi SPNEGO (Basit ve Korumalı GSSAPI Müzakere Mekanizması) belirteci için soruyor.

Bu web SSO (tek oturum üzerine) için kullanılacak bir kimlik doğrulama türünü müzakere için bir Microsoft buluş:

  • ya NTLM
  • veya Kerberos.

Bkz:

+2

WWW-Authenticate: WWW-Authenticate görüş: ilk başlığı ne yapar NTLM "Negotiate" anlamına gelmek? Kemancıdan nihayetinde hangi kimlik doğrulama protokolünün kullanıldığını anlayabiliriz? –

+0

Yol çok eski yorum. Gelecek okuyuculara cevap vermek. Hangi kimlik doğrulama mekanizmasının kullanıldığını doğrulamak için kemanı kontrol edebilirsiniz. Sunucunuzun hem Kerberos hem de NTLM kimlik doğrulamasıyla etkinleştirildiğini düşünüyorum. Kemancıdan hangi kimlik doğrulamanın kullanıldığını kolayca doğrulayabilirsiniz. Tarayıcınızın yanıtındaki 401 zorluğuna (bir istek başlığıdır) ilişkin başlığı kontrol edin. Bu Yetkilendirme içerirse: NTLM + jetonu, daha sonra NTLM kimlik doğrulamasıdır. Yetkilendirme durumunda: Pazarlık + belirteci kerberos olmalıdır. Not NTLM'in birden fazla 401 sorunu vardır. – Charith

28

gelecek okuyucuların yararına buraya bu bilgileri koymak.

  • 401 (Unauthorized) response header -> İstek kimlik doğrulama başlığı İşte

  • WWW-Authenticate response headers birkaç bulunmaktadır. (Tam liste IANA'da geçerli: HTTP Authentication Schemes.)

    • WWW-Authenticate: Basic -> Yetkilendirme: Temel + belirteci -> Yetkilendirme - Temel kimlik
    • WWW-Authenticate: NTLM için kullanın:
    • WWW-Authenticate: Negotiate NTLM + jetonu (2 zorlukları) - > Yetkilendirme: + belirteç anlaşma - Bu arada Kerberos kimlik doğrulaması
      • için kullanılan: IANA sahip bu angry remark about Negotiate: Bu kimlik doğrulama şeması hem HTTP semantiğini ihlal (varlık bağlantı yönlendirilmiş) ve sözdizimi (WWW-Kimlik Doğrulama ve Yetkilendirme başlık alanı sözdizimi ile uyumlu olmayan sözdizimi kullanımı). ayrıca 401 meydan WWW-Authenticate: Basic başlığa sahip olduğunda

Yalnızca Authorization: Basic başlığını ayarlayabilirsiniz.

Ancak, WWW-Authenticate: Negotiate'a sahip olduğunuzdan, bu Kerberos tabanlı kimlik doğrulaması için geçerli olmalıdır.

İlgili konular