Welche Erfahrung wird in einem Webbrowser erwartet, wenn ein Server den Zugriff über die grundlegende HTTP-Authentifizierung zulässt ?
Wenn Sie den Webbrowser für einen Moment ignorieren, können Sie wie folgt eine grundlegende Authentifizierungsanforderung erstellen mit curl
:
curl -u myusername:mypassword http://somesite.com
Aber was ist mit einem Webbrowser? Was ich auf einigen Websites gesehen habe, ist, dass ich die URL besuche und der Server dann den Antwortcode 401 zurückgibt. Der Browser zeigt dann eine Eingabeaufforderung für Benutzername / Passwort an.
Auf somesite.com erhalte ich jedoch überhaupt keine Autorisierungsaufforderung, sondern nur eine Seite, auf der steht, dass ich nicht autorisiert bin. Hat jemand den Basic Auth-Workflow nicht korrekt implementiert, oder muss ich noch etwas tun?
quelle
Antworten:
Um Verwirrung zu vermeiden, werde ich die Frage in zwei Teile umformulieren.
Erstens: "Wie kann eine authentifizierte HTTP-Anfrage mit einem Browser unter Verwendung der BASIC-Authentifizierung gestellt werden?" .
Im Browser können Sie zuerst eine http-Basisauthentifizierung durchführen, indem Sie auf die Eingabeaufforderung warten oder die URL bearbeiten, wenn Sie diesem Format folgen:
http://myusername:[email protected]
NB: Der in der Frage erwähnte Befehl curl ist vollkommen in Ordnung, wenn Sie eine Befehlszeile und einen Curl installiert haben. ;)
Verweise:
Auch laut CURL-Handbuchseite https://curl.haxx.se/docs/manual.html
Die zweite und eigentliche Frage lautet: "Auf somesite.com erhalte ich jedoch überhaupt keine Autorisierungsaufforderung, sondern nur eine Seite, auf der steht, dass ich nicht autorisiert bin. Hat jemand den Basic Auth-Workflow nicht korrekt implementiert oder gibt es etwas?" sonst muss ich tun? "
In der Curl-Dokumentation heißt es, dass die
-u
Option viele Authentifizierungsmethoden unterstützt, wobei Basic die Standardeinstellung ist.quelle
Hast du es versucht ?
quelle
Möglicherweise haben Sie einen alten ungültigen Benutzernamen / ein ungültiges Passwort in Ihrem Browser zwischengespeichert. Versuchen Sie, sie zu löschen, und überprüfen Sie sie erneut.
Wenn Sie den Internet Explorer verwenden und sich somesite.com in Ihrer Intranetsicherheitszone befindet, sendet der Internet Explorer Ihre Windows-Anmeldeinformationen möglicherweise automatisch.
quelle
WWW-Authentifizierungsheader
Sie können dies auch erhalten, wenn der Server einen 401-Antwortcode sendet, aber den WWW-Authenticate-Header nicht richtig einstellt. Ich sollte wissen, dass ich dies nur in unserem eigenen Code behoben habe, da VB-Apps die Authentifizierungsaufforderung nicht angezeigt haben.
quelle
Wenn in den Anforderungsheadern keine Anmeldeinformationen angegeben sind, ist die folgende Mindestantwort erforderlich, damit der IE den Benutzer zur Eingabe von Anmeldeinformationen auffordert und die Anforderung erneut sendet.
quelle
Sie können Postman ein Plugin für Chrome verwenden. Sie können den Authentifizierungstyp auswählen, den Sie für jede der Anforderungen benötigen. In diesem Menü können Sie Benutzer und Passwort konfigurieren. Postman übersetzt die Konfiguration automatisch in einen Authentifizierungsheader, der mit Ihrer Anfrage gesendet wird.
quelle