Was ist ein Bearer Token? Definition, JWT und Sicherheit
Ein Bearer Token ist ein Zugangsnachweis im Header Authorization: Bearer: Wer ihn besitzt, erhält Zugriff. Format, OAuth-2.0-Ablauf, Sicherheit und Tests.
Was ist ein Bearer Token?
Ein Bearer Token ist ein Zugangsnachweis, der jedem, der ihn vorlegt, die damit verbundenen Rechte gibt. Er ist für OAuth 2.0 in RFC 6750 definiert und wird im HTTP-Header Authorization als Authorization: Bearer <token> gesendet. Der Server prüft den Token und lässt die Anfrage zu oder lehnt sie ab. Der Besitz ist der einzige Nachweis, deshalb muss ein Bearer Token wie ein Passwort geschützt werden.
So funktioniert ein Bearer Token
GET /api/users/me HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9...Der Server validiert den Token durch Nachschlagen, durch Prüfen der Signatur oder über einen Introspection-Endpunkt. Ist der Token abgelaufen, widerrufen oder fehlerhaft, soll der Server laut RFC 6750 mit 401 antworten und kann den Fehler invalid_token mitliefern:
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error="invalid_token"Der übliche Ablauf:
- Der Client authentifiziert sich, zum Beispiel über einen OAuth-2.0-Flow oder einen Login.
- Der Autorisierungsserver liefert ein Access Token zurück, meist als JSON:
{"access_token": "...", "token_type": "Bearer", "expires_in": 3600} - Der Client bewahrt den Token auf und sendet ihn bei jedem API-Aufruf im Header
Authorization. - Die API prüft bei jeder Anfrage den Token und seine Berechtigungen (Scopes).
- Läuft der Token ab, holt der Client mit einem Refresh Token einen neuen oder authentifiziert sich erneut.
Formate von Bearer Tokens
Opake Tokens
Ein Zufallsstring ohne eigene Information. Der Server speichert, was er bedeutet, und schlägt ihn bei jeder Anfrage nach. Widerrufen heißt dann einfach, den Eintrag zu löschen. Der Preis ist ein Nachschlagen pro Anfrage.
Authorization: Bearer 7b3f2e8a-1c4d-4b6a-9e7f-2c8d3a4b5e1fJWTs (JSON Web Tokens)
Ein JWT (RFC 7519) ist ein signierter, in sich geschlossener Token: header.payload.signature, jeder Teil Base64URL-kodiert. Die Payload enthält Claims wie Nutzer, Scopes und Ablaufzeit, und die API kann die Signatur ohne Datenbankzugriff prüfen. Der Nachteil ist das Widerrufen: Ein JWT bleibt bis zum Ablauf gültig, sofern Sie keine Sperrliste führen. Beachten Sie, dass Dekodieren nur Lesen bedeutet. Vertrauen entsteht erst durch das Prüfen der Signatur. Einen JWT können Sie gefahrlos mit dem JWT-Decoder ansehen.
Bearer Token im Vergleich zu anderen Zugangsdaten
| Zugangsdaten | Funktionsweise | Typischer Einsatz |
|---|---|---|
| Bearer Token | Kurzlebiger Token im Authorization-Header, Besitz bedeutet Zugriff | OAuth 2.0 und APIs mit Nutzern |
| API-Schlüssel | Langlebiges Geheimnis, das eine Anwendung identifiziert | Server-zu-Server und einfache Integrationen |
| Basic Auth | Benutzername und Passwort, Base64-kodiert, bei jeder Anfrage gesendet | Alte oder interne APIs |
| Signierte Anfragen (HMAC) | Der Client signiert jede Anfrage mit einem gemeinsamen Geheimnis | APIs, die einen Besitznachweis verlangen |
| Mutual TLS | Der Client weist sich mit einem Zertifikat aus | Service-zu-Service-Verkehr |
Ein API-Schlüssel wird oft ebenfalls als Bearer Token gesendet. Der Unterschied liegt in Lebensdauer und Reichweite: Bearer Access Tokens sollen kurzlebig und eng gefasst sein, API-Schlüssel sind es meist nicht.
OAuth-2.0-Flows, die Bearer Tokens ausstellen
- Authorization Code mit PKCE. Für Apps mit Nutzern: Der Nutzer meldet sich beim Anbieter an, die App tauscht einen Code gegen Tokens. PKCE schützt öffentliche Clients wie Mobile-Apps und Single-Page-Apps.
- Client Credentials. Für Server-zu-Server-Aufrufe ohne Nutzer: Die App authentifiziert sich mit Client-ID und Secret und erhält ein Access Token.
- Refresh Token. Eine langlebigere Berechtigung, die nur dazu dient, neue Access Tokens zu holen, mit strengeren Regeln für die Aufbewahrung.
- Device Code. Für Geräte ohne Browser, etwa Fernseher und Kommandozeilen-Tools.
Sicherheit von Bearer Tokens
Weil Besitz Zugriff bedeutet, funktioniert ein gestohlener Token für jeden, der ihn hat, bis er abläuft.
- Immer TLS verwenden. RFC 6750 verlangt, dass Clients Bearer Tokens immer über TLS senden.
- Tokens gehören nicht in URLs. Die Spezifikation erlaubt den Query-Parameter
access_tokennur, wenn weder Header noch Body möglich sind, und rät davon ab. URLs landen in Logs und im Browserverlauf. - Access Tokens kurzlebig halten und Refresh Tokens rotieren, damit ein Leck nur ein kleines Zeitfenster hat.
- Den engsten Scope anfordern. Ein Token, das ein Profil liest, sollte das Konto nicht löschen können.
- Jeden JWT vollständig validieren. Signatur mit dem eigenen konfigurierten Algorithmus und Schlüssel prüfen (nie mit dem Algorithmus aus dem Token-Header), dann Aussteller, Zielgruppe (Audience) und Ablaufzeit kontrollieren.
- Tokens sorgfältig speichern. Mobile-Apps nutzen Keychain oder Keystore des Systems, Server einen Secret Manager. Skripte im Browser können
localStoragelesen, wodurch XSS zum Diebstahlweg wird. Mehr dazu unter API-Sicherheit.
Häufige Fehler mit Bearer Tokens
- Den
Authorization-Header in Zugriffslogs, Proxys oder Fehler-Trackern mitschreiben. - Access Tokens ausstellen, die Tage oder Wochen leben und damit zu API-Schlüsseln werden.
- Einen JWT annehmen, ohne Signatur, Aussteller oder Audience zu prüfen.
- Ein gemeinsames HS256-Secret für mehrere Dienste verwenden, sodass jeder Dienst, der Tokens prüfen kann, sie auch fälschen kann.
- Den Token in einen Query-String oder ein Frontend-Bundle schreiben.
APIs mit Bearer Tokens testen und überwachen
Authentifizierung verändert, wie Sie eine API unter Last testen:
- Das Abholen eines Tokens ist selbst ein Endpunkt. Fragt jeder virtuelle Nutzer zu Beginn einen an, testen Sie den Autorisierungsserver mit. Entscheiden Sie, ob das gewollt ist.
- Tokens laufen bei langen Tests ab. Ein 30-Minuten-Test mit 15-Minuten-Tokens braucht eine Refresh-Logik im Skript.
- Ein einziger gemeinsamer Token verdeckt Limits und Caches pro Nutzer. Realistische Läufe nutzen einen Token pro virtuellem Nutzer.
- Prüfen Sie die Negativfälle: Ein abgelaufener oder widerrufener Token sollte schnell 401 liefern.
Diese Punkte werden Schritt für Schritt im Leitfaden zu Performance-Tests von APIs mit OAuth 2.0 und in So testen Sie OAuth-gesicherte APIs mit JMeter behandelt (beide auf Englisch). Für laufende Prüfungen unterstützt das API-Monitoring von LoadFocus Header, OAuth-Bearer-Tokens und verkettete Anfragen, und im kostenlosen Tarif laufen Checks alle 5 Minuten. Wie Sie den Token-Ablauf unter Last fahren, zeigt JMeter-Lasttests.
Häufige Fragen zu Bearer Tokens
Sind Bearer Tokens sicher?
Sie sind so sicher wie Ihr Umgang mit ihnen. Senden Sie sie nur über TLS, halten Sie sie kurzlebig, fassen Sie ihren Scope eng und schreiben Sie sie nie in Logs. Wer einen gültigen Token bekommt, kann ihn benutzen.
Was ist der Unterschied zwischen einem Bearer Token und einem JWT?
Bearer beschreibt, wie ein Token verwendet wird: Wer ihn vorlegt, erhält Zugriff. JWT beschreibt sein Format: ein signierter Token mit Claims. Ein JWT wird oft als Bearer Token eingesetzt, ein Bearer Token kann aber auch ein opaker Zufallsstring sein.
Wie lange sollte ein Bearer Token gültig sein?
So kurz, wie Ihre Anwendung es verträgt, bei Access Tokens meist Minuten bis eine Stunde, erneuert über einen Refresh Token. Je länger ein Token lebt, desto größer der Schaden bei einem Leck.
Lässt sich ein JWT widerrufen?
Nicht von selbst, weil die API ihn prüft, ohne jemanden zu fragen. Teams setzen auf kurze Laufzeiten mit Refresh-Token-Rotation, eine Sperrliste oder opake Tokens mit Introspection, wenn sofortiges Widerrufen wichtig ist.
Was tun, wenn ein Token gestohlen wurde?
Widerrufen Sie ihn und den zugehörigen Refresh Token, tauschen Sie möglicherweise offengelegte Signaturschlüssel aus und prüfen Sie die Zugriffslogs auf Nutzung von unerwarteten Orten.
Wie sende ich einen Bearer Token mit curl?
Fügen Sie den Header hinzu: curl -H "Authorization: Bearer IHR_TOKEN" https://api.example.com/me. Mit dem kostenlosen curl-Online-Tool probieren Sie eine Anfrage im Browser aus.
Verwandte Begriffe
- Was ist der curl-Befehl? Beispiele, Flags, HTTP-Requests
- Was ist die History-API?
- Was ist Idempotenz? HTTP-Methoden, Idempotency-Keys, Beispiele
- Was ist JSON? Einsteiger-Guide mit Syntax und Beispielen
- Was ist JSON-RPC? Protokoll, Beispiele, REST-Vergleich
- Was ist multipart/form-data Content-Type? Datei-Uploads, Beispiele
- Was ist Swagger? Swagger und OpenAPI erklärt
- CRUD-Operationen: Create, Read, Update, Delete erklärt
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um, derselben Plattform, die alles antreibt, was du gerade gelesen hast.