JWT

JWT (JSON Web Token) ist ein kompaktes, digital signiertes Datenformat, mit dem sich Ansprüche wie Identität oder Berechtigungen sicher zwischen zwei Parteien übertragen lassen.

Kurz erklärt

Ein JWT besteht aus drei durch Punkte getrennten, Base64-kodierten Teilen: einem Header (Angaben zum Signaturverfahren), einem Payload (die eigentlichen Daten, sogenannte Claims, z. B. Nutzer-ID oder Ablaufzeit) und einer Signatur, die sicherstellt, dass der Token nicht unbemerkt verändert wurde. Ein Server kann einen JWT ausstellen, signieren und an einen Client übergeben - bei jeder folgenden Anfrage prüft der Server nur die Signatur, ohne den Zustand selbst speichern zu müssen.

Beispiel

Nach dem Login bei einer Web-Anwendung erhält der Client einen JWT, den er bei jeder weiteren API-Anfrage im Authorization-Header mitschickt. Der Server verifiziert die Signatur und kann daraus ableiten, welcher Nutzer die Anfrage stellt, ohne eine Datenbankabfrage für eine klassische Session durchführen zu müssen.

Warum ist das relevant?

JWTs ermöglichen zustandslose Authentifizierung, was sie besonders für verteilte Systeme und Microservices attraktiv macht, da kein zentraler Session-Speicher zwischen mehreren Servern synchronisiert werden muss. Das macht sie zu einem der verbreitetsten Bausteine moderner API-Authentifizierung, etwa in Kombination mit OAuth.

Häufige Missverständnisse

Ein JWT ist standardmäßig signiert, aber nicht verschlüsselt - der Payload lässt sich ohne Weiteres dekodieren und lesen, weshalb keine sensiblen Daten unverschlüsselt hineingehören. Auch die Signatur allein schützt nicht vor Missbrauch: Wird ein gültiger Token gestohlen, kann er bis zu seinem Ablauf wie ein normaler Zugangsschlüssel verwendet werden, weshalb kurze Gültigkeitsdauern und sichere Übertragungswege wichtig sind.

Weiterführende Inhalte

Quellen & Dokumentation