Les problèmes d'authentification avec WWW-Authenticate: à Négocier
Je suis en train d'essayer d'accéder à un site protégé par mot de passe. Il n'est pas à l'aide de l'authentification de base (même si le même user/pass s'affiche dans firefox) comme en-tête de réponse est WWW-Authenticate: Negotiate
.
Je veux automatiser le processus d'ouverture de session par l'envoi de l'en-tête correcte.
De base, vous utilisez quelque chose comme:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Que serais-je utiliser pour négocier?
- Le WWW-Authenticate: Négocier en-tête signifie que le serveur peut utiliser NTLM ou Kerberos (au moins sur les OS antérieurs à Windows 7 et Win 2008 Server lorsque supplémentaires de sécurité, les fournisseurs de soutien ont été ajoutés) pour l'authentification et le chiffrement. Dans ce cas de NTLM la négociation nécessite plusieurs messages (challenge/réponses) pour être échangés avant la session sécurisée est établie, donc il n'y a pas de "bonne tête" pour être envoyés à partir du début. Vous pouvez trouver plus de détails au sujet de votre problème msdn.microsoft.com/en-us/library/aa378748%28VS.85%29.aspx (SSP Packages Fournis par Microsoft).
Vous devez vous connecter pour publier un commentaire.
Le serveur web est en vous invitant à saisir un SPNEGO (Simple et Protégé GSSAPI Mécanisme de Négociation) jeton.
C'est un Microsoft invention pour la négociation d'un type d'authentification à utiliser pour le Web SSO (single-sign-on):
Voir:
De mettre cette information ici pour les futurs lecteurs de prestations.
401 (non autorisé) en-tête de réponse -> Request-tête d'authentification
Voici plusieurs
WWW-Authenticate
en-têtes de réponse. (La liste complète est à l'IANA: HTTP Schémas d'Authentification.)WWW-Authenticate: Basic
-> Authorization: Basic + de jetons à Utiliser pour l'authentification de baseWWW-Authenticate: NTLM
-> Autorisation: NTLM + jeton (2 dés)WWW-Authenticate: Negotiate
-> Autorisation de Négocier + jeton utilisé pour l'authentification KerberosNégocier
: Ce schéma d'authentification viole à la fois HTTP sémantique (le fait d'être orienté connexion) et la syntaxe (utilisation de la syntaxe incompatible avec le WWW-Authenticate et d'Autorisation champ d'en-tête de la syntaxe).Vous pouvez définir la
Authorization: Basic
en-tête uniquement lorsque vous avez l'WWW-Authenticate: Basic
en-tête sur votre 401 défi.Mais puisque vous avez
WWW-Authenticate: Negotiate
ce devrait être le cas pour l'authentification basée sur Kerberos.