Wenn Sie eine nicht authentifizierte Anfrage senden, muss der Dienst mit einem "HTTP / 1.1 401 Unauthorized" antworten und die Antwort enthält eine WWW-Authenticate
- Kopfzeile, die angibt, welches Authentifizierungsschema erwartet wird ( Basic
, Digest
) Sicherheitsbereich und andere spezifische Werte (wie Digets 'nonce). Also wenn der Server antwortet mit:
möchte eine Digest-Authentifizierung. Wenn die Antwort wie folgt aussieht:
%Vor%Dann möchte es eine Standard-Authentifizierung. Einige (schlecht) implementierte Server / Sites behandeln das Basic nicht korrekt und reagieren direkt mit Forbidden, anstatt zuerst zu fordern.
NTLM ist ähnlich wie der Server antwortet mit einem 401 und einem WWW-Authenticate-Header mit dem Wert NTLM
, aber es gibt keine offizielle öffentliche Spezifikation für sie, da Microsoft proprietär ist. Es gibt verschiedene umgekehrte technische Beschreibungen.
Leider enthält REST keine Dienstbeschreibung des WSDL-Stils, um das verwendete Authentifizierungsschema a priori zu finden.
Sie senden ihm eine Anfrage, erhalten vermutlich einen HTTP 401-Code und schauen sich den WWW-Authenticate
-Header an, der (pro RFC 2616 ) die Antwort MUST
include. Wenn Sie statt dessen einen 403 oder irgendeinen anderen seltsamen Status oder einen fehlenden Header WWW-Authenticate
erhalten, fluchen Sie bei Websiteautoren, die nicht dem HTTP-RFC folgen, und fangen an, den Verkehr zu schnüffeln, um zu versuchen, das nicht standardmäßige Chaos nachzubilden. Habe diese Zeit gemacht; -).
Wenn es sich um ein Blackbox-Szenario handelt, verbinde ich mich normalerweise mit Fiddler und überprüfe den tatsächlichen Traffic.
Tags und Links http-authentication