Authorization
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Der HTTP-Anfrageheader Authorization
kann verwendet werden, um Anmeldeinformationen bereitzustellen, die einen Benutzeragenten bei einem Server authentifizieren und den Zugriff auf geschützte Ressourcen ermöglichen.
Der Authorization
-Header wird in der Regel, aber nicht immer, gesendet, nachdem der Benutzeragent zuerst versucht hat, eine geschützte Ressource ohne Anmeldeinformationen anzufordern. 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. Der Benutzeragent sollte das sicherste von den angebotenen Authentifizierungsschemata auswählen, den Benutzer nach seinen Anmeldedaten fragen und dann die Ressource mit den kodierten Anmeldedaten im Authorization
-Header erneut anfordern.
Dieser Header wird bei Cross-Origin-Weiterleitungen entfernt.
Hinweis: Dieser Header ist Teil des General HTTP authentication framework. Er kann mit einer Reihe von authentication schemes verwendet werden.
Header-Typ | Anfrageheader |
---|---|
Verbotener Anfrageheader | 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>"
Direktiven
<auth-scheme>
-
Das Authentication scheme, das definiert, wie die Anmeldeinformationen kodiert werden. Einige der häufigeren Typen sind (nicht groß- und kleinschreibungsempfindlich):
Basic
,Digest
,Negotiate
undAWS4-HMAC-SHA256
.Hinweis: Für weitere Informationen/Optionen siehe HTTP Authentication > Authentication schemes
Abgesehen von <auth-scheme>
sind die verbleibenden Direktiven spezifisch für jedes Authentication scheme. In der Regel müssen Sie die entsprechenden Spezifikationen für diese prüfen (Schlüssel für eine kleine Teilmenge von Schemata sind unten aufgelistet).
Basis-Authentifizierung
<credentials>
-
Die Anmeldeinformationen, kodiert gemäß dem angegebenen Schema.
Hinweis: Informationen zum Kodierungsalgorithmus finden Sie in den Beispielen: unten, in
WWW-Authenticate
, in HTTP Authentication und in den relevanten Spezifikationen.
Digest-Authentifizierung
<response>
-
Eine Zeichenfolge aus Hexadezimalziffern, die nachweist, dass der Benutzer ein Passwort kennt. Der Algorithmus kodiert den Benutzernamen und das Passwort, das Realm, cnonce, qop, nc und so weiter. Es wird detailliert in der Spezifikation beschrieben.
username
-
Eine in Anführungszeichen gesetzte Zeichenkette, die den Benutzernamen für das angegebene
realm
im Klartext oder als Hash-Code in hexadezimaler Notation enthält. Falls der Name Zeichen enthält, die im Feld nicht zulässig sind, kann stattdessenusername*
verwendet werden (nicht "auch"). username*
-
Der Benutzername im erweiterten Format gemäß RFC5987. Dies sollte nur verwendet werden, wenn der Name nicht in
username
kodiert werden kann und wennuserhash
auf"false"
gesetzt ist. uri
-
Die Effective Request URI. Weitere Informationen finden Sie in der Spezifikation.
realm
-
Realm des angeforderten Benutzernamens/Passworts (sollte erneut mit dem Wert im entsprechenden
WWW-Authenticate
-Header für die angeforderte Ressource übereinstimmen). opaque
-
Der Wert im entsprechenden
WWW-Authenticate
-Header für die angeforderte Ressource. algorithm
-
Der Algorithmus zur Berechnung des Digest. Muss ein unterstützter Algorithmus aus dem
WWW-Authenticate
-Header für die angeforderte Ressource sein. qop
-
Ein Token, das die quality of protection angibt, die auf die Nachricht angewendet wird. Muss mit dem einen Wert im Satz, der in der
WWW-Authenticate
-Antwort für die angeforderte Ressource angegeben ist, übereinstimmen."auth"
: Authentifizierung"auth-int"
: Authentifizierung mit Integritätsschutz
cnonce
-
Ein in Anführungszeichen gesetzter ASCII-only Zeichenkettenwert, der vom Client bereitgestellt wird. Dies wird von sowohl dem Client als auch dem Server verwendet, um eine gegenseitige Authentifizierung bereitzustellen, einen gewissen Nachrichtenschutz zu bieten und "chosen plaintext attacks" zu vermeiden. Weitere Informationen finden Sie in der Spezifikation.
nc
-
Nonce-Zähler. Der hexadezimale Zähler der Anfragen, bei 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
Basis-Authentifizierung
Für die Basic
-Authentifizierung werden die Anmeldeinformationen erstellt, indem zuerst der Benutzername und das Passwort mit einem Doppelpunkt kombiniert werden (z.B. aladdin:opensesame
) und dann der resultierende String in `base64` kodiert wird (z.B. YWxhZGRpbjpvcGVuc2VzYW1l
).
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
Warnung: Base64-Kodierung kann leicht zurückentwickelt werden, um den ursprünglichen Namen und das Passwort zu erhalten, daher bietet die Basic
-Authentifizierung keine kryptographische Sicherheit. HTTPS wird immer empfohlen, wenn Authentifizierung verwendet wird, insbesondere jedoch bei Basic
-Authentifizierung.
Siehe auch HTTP-Authentifizierung für Beispiele, wie Sie Apache- oder Nginx-Server konfigurieren können, um Ihre Website mit HTTP-Basis-Authentifizierung passwortgeschützt zu machen.
Spezifikationen
Specification |
---|
HTTP Semantics # field.authorization |
Browser-Kompatibilität
BCD tables only load in the browser