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

http
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 und AWS4-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 stattdessen username* 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 wenn userhash 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 doppelte nc-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).

http
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

Siehe auch