Zum Inhalt springen

Glossar · A

Authorization-Header

Der Authorization-Header ist ein HTTP-Header, der zur Übertragung von Authentifizierungsinformationen verwendet wird.

Definition

Der Authorization-Header ist ein Bestandteil des HTTP-Protokolls, der zur Übertragung von Authentifizierungsinformationen zwischen Client und Server dient. Er wird in HTTP-Anfragen verwendet, um Zugangsdaten oder Token bereitzustellen, die den Zugriff auf geschützte Ressourcen ermöglichen. Der Header ist standardisiert und wird von Webservern und APIs zur Identifikation und Autorisierung von Nutzern oder Systemen verarbeitet.

Der Header besteht aus dem Schlüsselwort „Authorization“ gefolgt von einem Authentifizierungsschema und den entsprechenden Anmeldedaten. Die Syntax lautet typischerweise: „Authorization: <Schema> <Credentials>“. Beispiele für Authentifizierungsschemata sind „Basic“, „Bearer“ oder „Digest“. Die genaue Bedeutung und Form der Credentials hängt vom verwendeten Schema ab.

Hintergrund und Standardisierung

Der Authorization-Header wurde mit der Einführung von HTTP/1.0 im Jahr 1996 definiert und ist seither Bestandteil der HTTP-Spezifikationen. Die ursprüngliche Definition findet sich in RFC 2617 von 1999, der Authentifizierungsmethoden wie Basic und Digest beschreibt. Spätere RFCs, etwa RFC 7235 aus dem Jahr 2014, erweiterten und präzisierten die Verwendung des Headers im Kontext von HTTP/1.1.

Die Standardisierung erfolgt durch die Internet Engineering Task Force (IETF) im Rahmen der HTTP-Arbeitsgruppe. Die Verwendung des Authorization-Headers ist in vielen Webanwendungen und APIs verbreitet, da er eine einfache Möglichkeit bietet, Authentifizierungsinformationen sicher und strukturiert zu übertragen. Verschiedene Authentifizierungsschemata wurden im Laufe der Zeit ergänzt, um unterschiedlichen Sicherheitsanforderungen gerecht zu werden.

Funktionsweise

Bei einer HTTP-Anfrage fügt der Client den Authorization-Header hinzu, um seine Identität gegenüber dem Server nachzuweisen. Das Authentifizierungsschema bestimmt, wie die Anmeldedaten formatiert sind. Beim Basic-Schema werden Benutzername und Passwort Base64-kodiert übertragen, während beim Bearer-Schema ein Token, beispielsweise ein JSON Web Token (JWT), übermittelt wird.

Der Server überprüft die im Authorization-Header enthaltenen Informationen und entscheidet basierend darauf, ob der Zugriff auf die angeforderte Ressource gewährt wird. Bei fehlendem oder ungültigem Header kann der Server mit einem HTTP-Statuscode 401 (Unauthorized) antworten und eine erneute Authentifizierung anfordern. Die Sicherheit der übertragenen Daten hängt stark vom verwendeten Schema und der Transportverschlüsselung (z. B. HTTPS) ab.

Einsatzgebiete

Der Authorization-Header wird in zahlreichen Anwendungen eingesetzt, die eine Authentifizierung erfordern. Dazu zählen Webanwendungen, RESTful APIs, Microservices und mobile Anwendungen. Er ist besonders verbreitet bei der Umsetzung von OAuth 2.0, wo Access Tokens im Bearer-Schema übermittelt werden.

Neben der Benutzeranmeldung wird der Header auch für maschinelle Authentifizierung zwischen Diensten verwendet. Beispielsweise nutzen Cloud-Plattformen und API-Gateways den Authorization-Header, um Zugriffsrechte zu prüfen und Ressourcen zu schützen. Die Flexibilität des Headers erlaubt die Integration unterschiedlicher Authentifizierungsmechanismen in heterogene Systeme.

Abgrenzung zu verwandten Konzepten

Der Authorization-Header ist nicht zu verwechseln mit dem WWW-Authenticate-Header, der vom Server gesendet wird, um eine Authentifizierung anzufordern oder zu spezifizieren. Während der Authorization-Header vom Client in Anfragen genutzt wird, dient der WWW-Authenticate-Header als Antwort des Servers.

Alternativ zur Übertragung von Authentifizierungsinformationen im Authorization-Header können auch Cookies oder URL-Parameter verwendet werden. Diese Methoden sind jedoch aus Sicherheitsgründen oft weniger empfehlenswert. Zudem existieren andere HTTP-Header wie Proxy-Authorization, die speziell für Proxy-Server-Authentifizierung vorgesehen sind und sich funktional vom Authorization-Header unterscheiden.