Authorization
Der HTTP-Authorization
-Anforderungs-Header kann verwendet werden, um Anmeldeinformationen bereitzustellen, die einen Benutzeragenten gegenüber einem Server authentifizieren und den Zugriff auf geschützte Ressourcen ermöglichen.
Der Authorization
-Header wird normalerweise, aber nicht immer, gesendet, nachdem der Benutzeragent zuerst versucht, ohne Anmeldeinformationen auf eine geschützte Ressource zuzugreifen.
Der Server antwortet mit einer 401 Unauthorized
-Nachricht, die mindestens einen WWW-Authenticate
-Header enthält.
Dieser Header gibt die Authentifizierungsschemata an, die zum Zugriff auf die Ressource verwendet werden können, sowie alle zusätzlichen Informationen, die der Client benötigt, um diese zu verwenden.
Der Benutzeragent sollte das sicherste von den angebotenen Authentifizierungsschemata auswählen, den Benutzer nach seinen Anmeldedaten fragen und dann die Ressource erneut mit den kodierten Anmeldeinformationen im Authorization
-Header anfordern.
Dieser Header wird aus plattformübergreifenden Weiterleitungen entfernt.
Hinweis: Dieser Header ist Teil des Allgemeinen HTTP-Authentifizierungsrahmens. Er kann mit einer Reihe von Authentifizierungsschemata verwendet werden.
Header-Typ | Anforderungs-Header |
---|---|
Verbotener Header-Name | Nein |
Syntax
Authorization: <auth-scheme> <authorization-parameters>
// Basic authentication
Authorization: Basic <credentials>
// Digest authentication
Authorization: Digest username=<username>,
realm="<realm>",
uri="<url>",
algorithm=<algorithm>,
nonce="<nonce>",
nc=<nc>,
cnonce="<cnonce>",
qop=<qop>,
response="<response>",
opaque="<opaque>"
Anweisungen
<auth-scheme>
-
Das Authentifizierungsschema, das definiert, wie die Anmeldeinformationen kodiert werden. Einige der gebräuchlichsten Typen sind (groß-/kleinschreibungsempfindlich):
Basic
,Digest
,Negotiate
undAWS4-HMAC-SHA256
.Hinweis: Weitere Informationen/Optionen finden Sie unter HTTP Authentication > Authentication schemes
Abgesehen von <auth-scheme>
sind die restlichen Anweisungen spezifisch für jedes Authentifizierungsschema.
In der Regel müssen Sie die relevanten Spezifikationen für diese (Schlüssel für ein kleines Teilset von Schemata sind unten aufgeführt) überprüfen.
Basisauthentifizierung
<credentials>
-
Die Anmeldeinformationen, kodiert gemäß dem angegebenen Schema.
Hinweis: Informationen über den Kodierungsalgorithmus finden Sie in den nachstehenden Beispielen, in
WWW-Authenticate
, in HTTP-Authentifizierung und in den relevanten Spezifikationen.
Digest-Authentifizierung
<response>
-
Eine Zeichenfolge aus hexadezimalen Ziffern, die beweist, dass der Benutzer ein Passwort kennt. Der Algorithmus kodiert den Benutzernamen und das Passwort, den Bereich, den
cnonce
,qop
,nc
usw. Es wird detailliert in der Spezifikation beschrieben. username
-
Eine in Anführungszeichen gesetzte Zeichenfolge mit dem Benutzernamen für den angegebenen
realm
im Klartext oder im Hash-Code im Hexadezimalformat. Wenn der Name Zeichen enthält, die im Feld nicht erlaubt sind, kann stattdessenusername*
verwendet werden (nicht "zusätzlich"). username*
-
Der Benutzername formatiert mit einer erweiterten Notation, die in RFC5987 definiert ist. Dies sollte nur verwendet werden, wenn der Name nicht in
username
kodiert werden kann und wennuserhash
auf"false"
gesetzt ist. uri
-
Die Effektive Anforderungs-URI. Weitere Informationen finden Sie in der Spezifikation.
realm
-
Bereich des angeforderten Benutzernamens/Passworts (sollte wieder mit dem Wert in der entsprechenden
WWW-Authenticate
-Antwort für die angeforderte Ressource übereinstimmen). opaque
-
Der Wert in der entsprechenden
WWW-Authenticate
-Antwort für die angeforderte Ressource. algorithm
-
Der Algorithmus, der zum Berechnen der Digest verwendet wird. Muss ein unterstützter Algorithmus aus der
WWW-Authenticate
-Antwort für die angeforderte Ressource sein. qop
-
Ein Token, das die Schutzqualität angibt, die auf die Nachricht angewendet wird. Muss mit dem einen Wert in der in der
WWW-Authenticate
-Antwort für die angeforderte Ressource angegebenen Menge übereinstimmen."auth"
: Authentifizierung"auth-int"
: Authentifizierung mit Integritätsschutz
cnonce
-
Eine ASCII-nur Zeichenfolge in Anführungszeichen, die vom Client bereitgestellt wird. Dies wird sowohl vom Client als auch vom Server verwendet, um gegenseitige Authentifizierung bereitzustellen, ein gewisses Maß an Integritätsschutz zu bieten und "gewählte Klartextangriffe" zu vermeiden. Weitere Informationen finden Sie in der Spezifikation.
nc
-
Nonce Count. Die hexadezimale Anzahl von Anfragen, in denen der Client den aktuellen
cnonce
-Wert gesendet hat (einschließlich der aktuellen Anfrage). Der Server kann doppeltenc
-Werte verwenden, um Wiederholungsanfragen zu erkennen. userhash
Optional-
"true"
, wenn der Benutzername gehasht wurde. Standardmäßig"false"
.
Beispiele
Basisauthentifizierung
Für die Basic
-Authentifizierung werden die Anmeldeinformationen zuerst erstellt, indem der Benutzername und das Passwort mit einem Doppelpunkt kombiniert werden (z.B. aladdin:opensesame
), gefolgt von der Kodierung der resultierenden Zeichenfolge in `base64` (z.B. YWxhZGRpbjpvcGVuc2VzYW1l
).
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
Warnung: Base64-Kodierung kann leicht rückgängig gemacht werden, um den ursprünglichen Namen und das Passwort zu erhalten, weshalb Basic
-Authentifizierung keine kryptografische Sicherheit bietet.
HTTPS wird immer bei der Verwendung von Authentifizierung empfohlen, insbesondere jedoch bei der Verwendung von Basic
-Authentifizierung.
Siehe auch HTTP-Authentifizierung für Beispiele, wie Sie Apache- oder Nginx-Server konfigurieren, um Ihre Website mit HTTP-Basisauthentifizierung passwortzuschützen.
Spezifikationen
Specification |
---|
HTTP Semantics # field.authorization |
Browser-Kompatibilität
BCD tables only load in the browser