HTTP-Grundlagen

Hypertext Transfer Protocol

Authentifizierung über HTTP

Die HTTP-Spezifikation sieht zwei parallele Authentifizierungsmechanismen vor: Der eine dient der Authentifizierung des Users beim HTTP-Server (Basic HTTP Authentication), der andere der Authentifizierung bei einem zwischengeschalteten Proxyserver (Proxy Server Authentication). Die Funktionsweise der beiden Mechanismen ist sehr ähnlich: Sie nutzen Request-, Response-Status-Code- und Response-Header. Unterschiede gibt es hingegen bei den verwendeten Status Codes und den Headernamen. Und: Die Authentifizierung eines Benutzers kann simultan bei zwischengeschalteten Proxyserver und dem HTTP-Server erfolgen.

Basic HTTP Authentication

Das Basic-HTTP-Authentication-Schema verwendet Benutzerkennung und Passwort für die Authentifizierung. Der Client sendet mit seiner ersten Request eine Anfrage ohne Authentifizierungsinformationen. Die Antwort des Servers enthält das WWW-Authenticate-Header-Feld, das den Client auffordert, die Zugangsdaten zu übermitteln. In diesem Headerfeld sind zudem Details definiert, wie die Authentifizierung erfolgen muss. Der Client wird zur Übermittlung der Authentifizierungsinformationen aufgefordert. Der Server überträgt in seiner Antwort den so genannten Realm, eine Zeichenfolge, mit der er dem Client mitteilt, wer die Daten fordert. Der Client verwendet für die Kodierung von Kennung und Passwort das Base64 -Verfahren. Diese kodierte Zeichenfolge wird im Authorization-Header-Feld an den Server übermittelt. Ein Beispiel für eine solche Request:

GET /verzeichnis_x/seite_y.html HTTP/1.1
User-agent: Mozilla/4.6
Accept: text/html, image/gif, image/jpeg
Authorization: Basic KDWkfowsOm=

Der Authentifizierungsvorgang muss allerdings bei jeder Request erfolgen. Der Client legt daher die Daten im Cache ab und greift bei jeder nachfolgenden Request auf diese Informationen zurück.