Sicherheit

JSON Web Token (JWT): Definition, Erklärung & Beispiele

  • 5 Min. Lesezeit
  • Aktualisiert am 06.11.2026
  • Schwierigkeit: Mittel

Das Wichtigste in Kürze

Was ist JSON Web Token (JWT)?

JSON Web Token (JWT) ist ein offener Standard zur sicheren Übertragung von JSON-Objekten zwischen Parteien, der digital signiert ist und somit verifiziert werden kann. JWTs bestehen aus drei Teilen: Header, Payload und Signatur, wobei die Payload alle notwendigen Nutzerinformationen enthält und keine Server-Sitzung erfordert.

JSON Web Token (JWT): Definition, Erklärung & Beispiele – hier finden Sie die Kurzdefinition, die ausführliche Erklärung und Praxisbeispiele im Überblick.

Kategorie
Sicherheit
Erstveröffentlichung/Ursprung
RFC 7519
Typische Verwendung
Authentifizierung und Autorisierung in Webanwendungen
Schwierigkeitsgrad
Mittel
Lizenz/Hersteller
IETF

Ausführliche Erklärung

Einführung in JSON Web Token (JWT)

JSON Web Token (JWT) ist ein offener Standard, der in der RFC 7519 genormt ist. JWT ermöglicht die sichere Übertragung von JSON-Objekten zwischen Parteien. Es handelt sich um ein kompaktes Token-Format, das digital signiert wird, was eine Verifizierung der Datenintegrität und Authentizität ermöglicht. JWT wird häufig in modernen Webanwendungen eingesetzt, insbesondere in Kombination mit Sicherheitsprotokollen wie OAuth 2.0 und OpenID Connect (OIDC).

Aufbau und Struktur von JWT

Ein JSON Web Token besteht aus drei Hauptbestandteilen: dem Header, dem Payload und der Signatur. Diese Teile werden durch Punkte (.) voneinander getrennt und in der Regel wie folgt strukturiert:

  • Header: Der Header enthält Informationen über den Typ des Tokens und den verwendeten Signaturalgorithmus. Dieser Teil wird in der Regel als JSON-Objekt dargestellt und dann in Base64-URL-kodiert.
  • Payload: Der Payload enthält die Claims, also die Informationen, die im Token transportiert werden. Diese können registrierte, öffentliche und private Ansprüche umfassen und werden ebenfalls in Base64-URL-kodiert.
  • Signatur: Um die Integrität des Tokens zu gewährleisten, wird eine Signatur erzeugt, die auf dem kodierten Header und Payload basiert. Diese Signatur kann entweder mit einem geheimen Schlüssel (HMAC) oder mit einem öffentlichen/privaten Schlüsselpaar (RSA) generiert werden.

Die allgemeine Struktur eines JWT sieht somit wie folgt aus: HEADER.PAYLOAD.SIGNATUR.

Funktionsweise von JWT

Die Funktionsweise von JSON Web Tokens basiert auf der stateless Authentifizierung. Alle notwendigen Informationen über den Benutzer sind im Payload des Tokens gespeichert. Dies bedeutet, dass bei jeder Anfrage keine zusätzliche Datenbankabfrage oder Server-Sitzung erforderlich ist. Dies macht JWT besonders effizient für Architekturen, die auf Microservices basieren oder bei der Implementierung von Single Sign-On (SSO).

Die Gültigkeit eines JWT wird durch den registrierten Claim „exp“ (Expiration Time) bestimmt. Dieser Claim enthält einen Zeitstempel, der angibt, bis wann das Token gültig ist. Nach Ablauf dieser Zeit ist das Token ungültig und darf nicht mehr verarbeitet werden. Dies stellt sicher, dass die Token nicht unbegrenzt verwendet werden können und hilft, Sicherheitsrisiken zu minimieren.

Sicherheitsaspekte und Herausforderungen

Obwohl JWT viele Vorteile bietet, gibt es auch einige Herausforderungen, insbesondere in Bezug auf die Sicherheit. Ein wesentlicher Kritikpunkt ist das Widerrufproblem. Da JWTs stateless sind, können sie nicht einfach auf der Serverseite widerrufen oder verlängert werden. Dies bedeutet, dass ein kompromittiertes Token potenziell für die gesamte Gültigkeitsdauer missbraucht werden kann. Um diesem Problem zu begegnen, werden häufig Workarounds wie Refresh-Tokens eingesetzt, bei denen ein kurzes Access-Token (z. B. 15 Minuten) und ein langfristiges Refresh-Token (z. B. 7 Tage) kombiniert werden.

Ein weiterer wichtiger Sicherheitsaspekt ist, dass die im Token gespeicherten Informationen ohne zusätzliche Verschlüsselung (JWE) oder Signatur (JWS) lesbar sind. Daher ist es entscheidend, dass sensible Daten nicht im Payload gespeichert werden oder dass entsprechende Sicherheitsvorkehrungen getroffen werden, um die Vertraulichkeit der Informationen zu gewährleisten.

Einsatz und Anwendungsfälle von JWT

JSON Web Tokens finden breite Anwendung in verschiedenen Bereichen der IT und Webentwicklung. Besonders häufig werden sie in Verbindung mit Sicherheitsprotokollen wie OAuth 2.0 und OpenID Connect (OIDC) eingesetzt. Diese Protokolle nutzen JWT als zugrundeliegendes Token-Format, um sichere Autorisierungs- und Authentifizierungsmechanismen bereitzustellen.

Typische Anwendungsfälle für JWT umfassen:

  • Authentifizierung von Benutzern in Webanwendungen und mobilen Apps.
  • Implementierung von Single Sign-On (SSO), um Benutzern den Zugang zu mehreren Anwendungen mit einem einzigen Login zu ermöglichen.
  • Übertragung von Informationen zwischen verschiedenen Microservices in einer verteilten Architektur.
  • Integration von Drittanbieter-Diensten, die JWT zur Autorisierung und Authentifizierung verwenden.

Insgesamt bietet JSON Web Token (JWT) eine flexible und sichere Möglichkeit zur Übertragung von Informationen in modernen Anwendungen, stellt jedoch auch spezifische Herausforderungen dar, die bei der Implementierung berücksichtigt werden müssen.

Typische Einsatzgebiete

  • 01Single Sign-On (SSO)
  • 02Microservice-Architekturen

Vor- und Nachteile

Vorteile

  • Stateless Authentifizierung ermöglicht effiziente Anfragen
  • Einfache Integration in moderne Webanwendungen

Nachteile

  • Widerruf von Tokens ist komplex
  • Sensible Informationen sind ohne zusätzliche Verschlüsselung lesbar

Praxisbeispiel

Ein Beispiel für die Erstellung eines JWTs in Node.js könnte folgendermaßen aussehen:

const jwt = require('jsonwebtoken');
const token = jwt.sign({ userId: 123 }, 'geheimerSchluessel', { expiresIn: '1h' });
.

Voraussetzungen & Tools

Das solltest du mitbringen

  • Grundkenntnisse in Webentwicklung
  • Verständnis von JSON und HTTP

Typische Tools

JS
jsonwebtokenBibliothek zur Erstellung und Verifizierung von JWTs in Node.js

Häufige Fehler & Best Practices

Vermeiden

  • Unzureichende Sicherheit bei der Token-Signatur
  • Zu große Payloads, die die Performance beeinträchtigen

Besser so

  • Verwendung von kurzen Ablaufzeiten für Tokens
  • Implementierung von Refresh-Tokens zur Verlängerung der Sitzung

Vergleich mit ähnlichen Technologien

OAuth 2.0
JWT ist das Token-Format, das häufig in OAuth 2.0 verwendet wird.

Lernpfad & Zertifizierungen

  1. 1
    Verständnis von JWT

    Erlernen der grundlegenden Konzepte und der Struktur von JSON Web Tokens, einschließlich Header, Payload und Signatur.

  2. 2
    Implementierung

    Praktische Anwendung von JWT in Webanwendungen zur Authentifizierung und Autorisierung.

  3. 3
    Sicherheitsaspekte

    Erforschen von Sicherheitspraktiken im Umgang mit JWT, einschließlich der Verwendung von Signaturalgorithmen und der Handhabung von Ablaufzeiten.

Certified Information Systems Security Professional (CISSP)(ISC)²
Certified Cloud Security Professional (CCSP)(ISC)²

Live aus 7.804 Stellen

JSON Web Token (JWT) am Arbeitsmarkt

Die Nachfrage nach Fachkräften mit Kenntnissen in JSON Web Tokens ist im deutschen IT-Arbeitsmarkt stark gestiegen, insbesondere im Zusammenhang mit der Implementierung von Sicherheitsprotokollen wie OAuth 2.0 und OpenID Connect. Unternehmen suchen nach Experten, die in der Lage sind, sichere und skalierbare Authentifizierungsmechanismen zu entwickeln.

Gehaltsbereich laut Lexikon-Eintrag (Einschätzung)

50.000 – 80.000 € / Jahr

Das Gehalt variiert je nach Erfahrung, Region und Unternehmensgröße.

Typische Berufe

Offene Stellen im Bereich IT-Security

IT-Administrator (m/w/d) – Schwerpunkt IT-SecurityJobriver IT Jobbörse · Tübingen
Information Security Manager (m/w/d)Jobriver IT Jobbörse · Gelsenkirchen
Business Development Manager Cybersecurity (m/w/d)Jobriver IT Jobbörse · Freiburg im Breisgau 80.000 € - 120.000 €
Alle 633 Stellen ansehen

Häufige Fragen zu JSON Web Token (JWT)

Was ist ein JSON Web Token (JWT)?

Ein JSON Web Token (JWT) ist ein standardisiertes, kompaktes Format zur sicheren Übertragung von Informationen zwischen Parteien in Form von JSON-Objekten. Es ist nach RFC 7519 definiert und ermöglicht die digitale Signatur, wodurch die Authentizität und Integrität der übermittelten Daten gewährleistet werden. JWTs bestehen aus drei Teilen: Header, Payload und Signatur, die in der Regel Base64-encodiert sind. Sie finden häufig Anwendung in der Authentifizierung und Autorisierung, insbesondere in Microservice-Architekturen und bei Single Sign-On (SSO) Lösungen.

Wie funktioniert ein JWT?

Ein JWT funktioniert durch die Erstellung eines Tokens, das aus drei Teilen besteht: dem Header, der Payload und der Signatur. Der Header enthält Informationen über den verwendeten Signaturalgorithmus, während die Payload die eigentlichen Daten, wie Benutzerinformationen oder Berechtigungen, speichert. Die Signatur wird erstellt, indem der Header und die Payload mit einem geheimen Schlüssel oder einem öffentlichen/privaten Schlüsselpaar signiert werden. Bei jeder Anfrage wird das Token an den Server gesendet, der die Signatur überprüft, um die Authentizität des Tokens zu bestätigen.

Wofür wird ein JWT verwendet?

JWT wird hauptsächlich zur Authentifizierung und Autorisierung in Webanwendungen verwendet. Es ermöglicht die sichere Übertragung von Benutzerinformationen zwischen Client und Server, ohne dass eine ständige Server-Sitzung erforderlich ist. Aufgrund seiner stateless Natur ist JWT besonders vorteilhaft in Microservice-Architekturen, wo einzelne Dienste unabhängig voneinander agieren können. Zudem wird JWT häufig in Sicherheitsprotokollen wie OAuth 2.0 und OpenID Connect eingesetzt, um den Zugriff auf geschützte Ressourcen zu steuern.

Was sind die Vorteile von JWT?

Die Vorteile von JWT umfassen die Effizienz in der Authentifizierung, da alle benötigten Informationen im Token selbst gespeichert sind, was Datenbankabfragen überflüssig macht. Darüber hinaus ermöglicht die stateless Natur von JWT eine einfache Skalierbarkeit von Anwendungen, insbesondere in Microservices. JWTs sind auch plattformunabhängig und können leicht zwischen verschiedenen Systemen ausgetauscht werden. Zudem bieten sie durch digitale Signaturen eine hohe Sicherheit, da die Integrität der Daten gewährleistet ist.

Was sind die Nachteile von JWT?

Ein wesentlicher Nachteil von JWT ist das Widerrufproblem, da es nicht möglich ist, ein bereits ausgestelltes Token auf der Serverseite zu widerrufen oder zu verlängern. Dies bedeutet, dass ein Token nach Ablauf seiner Gültigkeit weiterhin verwendet werden kann, es sei denn, es wird ein Workaround wie Refresh-Tokens implementiert. Zudem sind die im Token gespeicherten Informationen ohne zusätzliche Verschlüsselung lesbar, was zu Sicherheitsrisiken führen kann, insbesondere bei Fehlkonfigurationen oder großen Token-Größen.

Wie lange ist ein JWT gültig?

Die Gültigkeit eines JWT wird durch den registrierten Claim „exp“ definiert, der einen Zeitstempel enthält. Nach Erreichen dieses Zeitpunkts wird das Token gemäß den Vorgaben des RFC 7519 ungültig und sollte nicht mehr verwendet werden. Die Festlegung einer angemessenen Gültigkeitsdauer ist entscheidend, um die Sicherheit der Anwendung zu gewährleisten. Oft werden kurze Gültigkeitszeiten für Access-Tokens mit längeren Gültigkeitszeiten für Refresh-Tokens kombiniert, um die Benutzererfahrung zu verbessern und gleichzeitig die Sicherheit zu erhöhen.

Wie kann man ein JWT signieren?

Ein JWT kann mit verschiedenen Algorithmen signiert werden, wobei die häufigsten HMAC (z. B. HS256) und RSA (z. B. RS256) sind. Bei der HMAC-Signatur wird ein geheimer Schlüssel verwendet, um die Signatur zu erstellen, während bei RSA ein öffentliches/privates Schlüsselpaar zum Einsatz kommt. Die Wahl des Signaturalgorithmus hängt von den Sicherheitsanforderungen der Anwendung ab. Die Signatur gewährleistet die Integrität des Tokens, indem sie sicherstellt, dass der Inhalt nicht manipuliert wurde, nachdem das Token ausgestellt wurde.

Was ist der Unterschied zwischen JWT und Session-Cookies?

Der Hauptunterschied zwischen JWT und Session-Cookies liegt in der Art und Weise, wie die Authentifizierung verwaltet wird. Während Session-Cookies serverseitig gespeichert werden und eine ständige Verbindung zwischen Client und Server erfordern, sind JWTs stateless und enthalten alle notwendigen Informationen im Token selbst. Dies ermöglicht eine bessere Skalierbarkeit und Flexibilität, insbesondere in Microservice-Architekturen. Außerdem sind JWTs plattformunabhängig und können leicht zwischen verschiedenen Systemen übertragen werden, während Session-Cookies oft an eine bestimmte Domain gebunden sind.

Wie lernt man, JWT zu implementieren?

Um JWT zu implementieren, sollte man zunächst die Grundlagen der Authentifizierung und Autorisierung in Webanwendungen verstehen. Es ist hilfreich, sich mit den Konzepten von JSON, Web-Protokollen und Sicherheitsstandards wie OAuth 2.0 und OpenID Connect vertraut zu machen. Es gibt zahlreiche Tutorials und Dokumentationen, die die Implementierung von JWT in verschiedenen Programmiersprachen und Frameworks erläutern. Praktische Übungen und Projekte, in denen JWT zur Authentifizierung verwendet wird, sind eine effektive Möglichkeit, das Wissen zu vertiefen und praktische Fähigkeiten zu entwickeln.

Was sind Claims in einem JWT?

Claims sind Informationen, die in der Payload eines JWT gespeichert sind und die Ansprüche über den Benutzer oder das Token selbst repräsentieren. Es gibt verschiedene Typen von Claims, darunter registrierte Claims (z. B. „iss“ für den Aussteller, „sub“ für das Subjekt und „exp“ für das Ablaufdatum), öffentliche Claims (die von den Nutzern definiert werden können) und private Claims (die zwischen Parteien vereinbart werden). Claims ermöglichen es, zusätzliche Informationen über den Benutzer oder die Berechtigungen zu übermitteln und sind entscheidend für die Funktionsweise von JWTs in Authentifizierungsprozessen.

Wie wird JWT in OAuth 2.0 verwendet?

In OAuth 2.0 wird JWT häufig als Token-Format verwendet, um den Zugriff auf geschützte Ressourcen zu steuern. Nach erfolgreicher Authentifizierung eines Benutzers wird ein JWT als Access-Token ausgegeben, das die Berechtigungen des Benutzers enthält. Dieses Token wird dann bei Anfragen an geschützte Ressourcen verwendet, um die Identität des Benutzers zu überprüfen. JWTs bieten den Vorteil, dass sie alle notwendigen Informationen enthalten, was die Serverlast verringert und die Effizienz der Authentifizierung in verteilten Systemen erhöht.

Was ist der Unterschied zwischen JWT und JWS?

JWT und JWS sind eng miteinander verbundene Konzepte, jedoch nicht identisch. JWT ist das allgemeine Format für JSON Web Tokens, während JWS (JSON Web Signature) ein spezifisches Format ist, das sich auf die digitale Signatur von JWTs konzentriert. Ein JWT kann signiert werden, um seine Integrität und Authentizität zu gewährleisten, was durch die Verwendung von JWS erfolgt. JWS ermöglicht es, die Signatur eines JWT zu überprüfen, um sicherzustellen, dass der Inhalt nicht manipuliert wurde. Somit ist JWS ein Teil des JWT-Standards, der sich auf die Sicherheitsaspekte konzentriert.

Wie kann man die Sicherheit von JWT erhöhen?

Um die Sicherheit von JWT zu erhöhen, sollten mehrere Maßnahmen ergriffen werden. Zunächst ist es wichtig, starke Signaturalgorithmen zu verwenden, wie RSA oder HMAC mit langen, komplexen Schlüsseln. Darüber hinaus kann die Payload des Tokens mit JWE (JSON Web Encryption) verschlüsselt werden, um die darin enthaltenen Informationen zu schützen. Eine regelmäßige Überprüfung und Aktualisierung der Gültigkeitsdauer der Tokens sowie die Implementierung von Refresh-Tokens können ebenfalls helfen, Sicherheitsrisiken zu minimieren. Schließlich sollte darauf geachtet werden, dass JWTs nicht in URLs übergeben werden, um das Risiko von Token-Diebstahl zu verringern.

Was sind Refresh-Tokens in Zusammenhang mit JWT?

Refresh-Tokens sind spezielle Tokens, die in Verbindung mit JWTs verwendet werden, um die Lebensdauer von Access-Tokens zu verlängern, ohne dass sich der Benutzer erneut anmelden muss. Access-Tokens haben in der Regel eine kurze Gültigkeitsdauer, während Refresh-Tokens länger gültig sind. Wenn ein Access-Token abläuft, kann der Client das Refresh-Token verwenden, um ein neues Access-Token zu erhalten, ohne dass eine erneute Authentifizierung erforderlich ist. Diese Methode verbessert die Benutzererfahrung und erhöht die Sicherheit, da Access-Tokens regelmäßig erneuert werden, während die Anzahl der Anmeldungen reduziert wird.

Welche Rolle spielt die Signatur in einem JWT?

Die Signatur in einem JWT spielt eine entscheidende Rolle für die Sicherheit und Integrität des Tokens. Sie wird erstellt, indem der Header und die Payload mit einem geheimen Schlüssel oder einem öffentlichen/privaten Schlüsselpaar signiert werden. Diese Signatur ermöglicht es dem Server, die Authentizität des Tokens zu überprüfen und sicherzustellen, dass die darin enthaltenen Informationen nicht manipuliert wurden. Ohne die Signatur wäre es möglich, das Token zu fälschen oder die enthaltenen Daten zu ändern, was zu Sicherheitsrisiken führen könnte. Daher ist die Signatur ein zentrales Element der JWT-Sicherheit.

Was sind die häufigsten Anwendungsfälle für JWT?

Die häufigsten Anwendungsfälle für JWT umfassen die Authentifizierung von Benutzern in Webanwendungen und mobilen Apps, die Implementierung von Single Sign-On (SSO) und die Autorisierung in Microservice-Architekturen. JWTs werden auch in APIs verwendet, um den Zugriff auf geschützte Ressourcen zu steuern. Darüber hinaus finden sie Anwendung in Sicherheitsprotokollen wie OAuth 2.0 und OpenID Connect, wo sie als Access-Token dienen. Ihre stateless Natur und die Möglichkeit, Informationen sicher zu übertragen, machen sie zu einer beliebten Wahl für moderne Webanwendungen.

Wie kann man ein JWT dekodieren?

Ein JWT kann einfach dekodiert werden, indem man den Token in seine drei Teile zerlegt: Header, Payload und Signatur. Die ersten beiden Teile sind Base64-encodiert und können leicht in lesbare JSON-Objekte umgewandelt werden. Es ist wichtig zu beachten, dass die Dekodierung eines JWT nicht die Validierung der Signatur umfasst. Um die Authentizität des Tokens zu überprüfen, muss die Signatur mit dem entsprechenden Schlüssel validiert werden. Es gibt zahlreiche Bibliotheken in verschiedenen Programmiersprachen, die sowohl die Dekodierung als auch die Validierung von JWTs unterstützen.

Quellen

  1. Starten Sie mit JSON-Web-Token - Auth0 · auth0.com
  2. Mit JSON Web Token sichere Tokens erstellen - jambit · jambit.com
  3. Was sind JSON Web Tokens? Wie funktioniert das Konzept? · hellocoding.de
  4. Was ist JWT; Was ist ein JSON Web Token? - Fastly · fastly.com
  5. JSON Web Token (JWT): Funktionsweise + Beispiele - IONOS · ionos.de
  6. Warum Entwickler vor JSON Web Tokens warnen - martinsfeld · martinsfeld.de
  7. JSON Web Token (JWT) im Detail - codecentric AG · codecentric.de
  8. Erhöhen Sie die Sicherheit Ihrer Webanwendung mit JSON-Web ... · sdh.global
  9. Die komplizierten Aspekte der JWT-Sicherheit, über die niemand ... · pingidentity.com
  10. Was sind JSON Web Tokens (JWT)? // deutsch - YouTube · youtube.com
Hilfreich? Teile den Begriff: LinkedIn

Du kennst dich mit JSON Web Token (JWT) aus?

Dann zeig es: Leg dir ein kostenloses Profil an und lass dich von passenden Stellen finden.