JSON Web Token (JWT) – Sicherer und flexibler Authentifizierungsstandard
Ein offener Standard für sichere und kompakte Übertragung von Informationen
Json Web Token Jwt JSON Web Token (JWT) ist ein kompakter, URL-sicherer Token, der Informationen in Form eines JSON-Objekts enthält und digital signiert ist, um Authentifizierung und Autorisierung zu ermöglichen.
Das Wichtigste auf einen Blick
- JWT ist ein offener Standard für sichere Informationsübertragung als JSON-Objekt.
- Tokens bestehen aus Header, Payload und Signatur.
- JWTs werden häufig für Authentifizierung und Autorisierung in Webanwendungen genutzt.
- Digitale Signaturen gewährleisten die Integrität und Authentizität des Tokens.
- JWTs sind kompakt und URL-sicher, daher gut für Web- und Mobilanwendungen geeignet.
- Die Verwendung von JWT ermöglicht zustandslose Authentifizierung ohne Server-Sitzungsverwaltung.
Überblick: Json Web Token Jwt
JSON Web Token (JWT) ist ein offener Standard (RFC 7519), der es ermöglicht, Informationen sicher und kompakt zwischen Parteien auszutauschen. JWTs sind vor allem in der Webentwicklung und API-Sicherheit verbreitet, um Benutzer zu authentifizieren und Zugriffsrechte zu verwalten. Durch die digitale Signatur kann die Integrität und Authentizität der übertragenen Daten gewährleistet werden.
Was ist ein JSON Web Token (JWT)?
Ein JSON Web Token (JWT) ist ein kompakter, URL-sicherer Token, der Informationen in Form eines JSON-Objekts enthält. Er wird digital signiert, um die Authentizität und Integrität der Daten sicherzustellen. JWTs werden hauptsächlich zur Authentifizierung und Autorisierung in webbasierten Anwendungen verwendet.
Aufbau eines JWT
Ein JWT besteht aus drei Teilen, die jeweils Base64Url-kodiert sind und durch Punkte getrennt werden: Header, Payload und Signatur.
Bestandteile eines JWT
| Bestandteil | Beschreibung | Beispielinhalt |
|---|---|---|
| Header | Beschreibt den Typ des Tokens und den verwendeten Signaturalgorithmus | {"alg":"HS256","typ":"JWT"} |
| Payload | Enthält die Claims, also die zu übermittelnden Informationen | {"sub":"1234567890","name":"Max Mustermann","iat":1516239022} |
| Signatur | Digitale Signatur zur Sicherstellung der Integrität und Authentizität | HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret) |
Verwendung von JWT in der Praxis
JWTs werden häufig verwendet, um Benutzer nach der Anmeldung zu authentifizieren. Der Server erstellt einen Token, der im Client gespeichert wird (z.B. im Browser-LocalStorage) und bei nachfolgenden Anfragen zur Autorisierung mitgeschickt wird. Dadurch kann der Server zustandslos arbeiten, da keine Session-Daten gespeichert werden müssen.
Sicherheitsaspekte von JWT
Die Sicherheit eines JWT hängt von der Stärke des verwendeten Signaturalgorithmus und der Geheimhaltung des Schlüssels ab. Unsachgemäße Implementierung kann zu Sicherheitslücken führen, z.B. durch Verwendung schwacher Schlüssel oder fehlende Überprüfung der Signatur.
Vor- und Nachteile von JWT
| Vorteile | Nachteile |
|---|---|
| Kompaktes Format, gut für Web und Mobil | Token können bei Diebstahl missbraucht werden |
| Zustandslose Authentifizierung ohne Server-Sessions | Token können nicht einfach invalidiert werden |
| Standardisiert und weit verbreitet | Payload ist nicht verschlüsselt, nur signiert |
Häufige Anwendungsfälle
JWTs werden eingesetzt für Single Sign-On (SSO), API-Authentifizierung, Informationsaustausch zwischen Diensten und als Ersatz für klassische Session-IDs in Webanwendungen.
Beispiel eines JWT
Ein typisches JWT sieht folgendermaßen aus: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ik1heCBNdXN0ZXJtYW5uIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
Wichtig
JWTs sind nicht verschlüsselt, sondern signiert. Sensible Daten sollten daher nicht unverschlüsselt im Payload gespeichert werden.
Zusatzinformationen
Begriff: JSON Web Token (JWT)
Standard: RFC 7519
Format: Base64Url-kodierte JSON-Objekte
Bestandteile: Header, Payload, Signatur
Verwendung: Authentifizierung, Autorisierung, Informationsaustausch
Signaturalgorithmen: HMAC SHA-256, RSA, ECDSA
Vorteile: Kompakt, sicher, zustandslos
Einsatzgebiete: Web-APIs, Single Sign-On (SSO), Mobile Apps
Synonyme und alternative Bezeichnungen
Häufige Fragen zu Json Web Token Jwt
Was ist der Unterschied zwischen JWT und Session-Cookies?
Session-Cookies speichern Sitzungsinformationen serverseitig, während JWTs zustandslos sind und alle nötigen Informationen im Token selbst enthalten. JWTs ermöglichen so skalierbare Anwendungen ohne zentrale Sessionverwaltung.
Wie wird ein JWT validiert?
Ein JWT wird validiert, indem die Signatur mit dem geheimen Schlüssel oder dem öffentlichen Schlüssel (bei asymmetrischer Verschlüsselung) überprüft wird und die enthaltenen Claims auf Gültigkeit geprüft werden.
Kann man JWTs verschlüsseln?
Standard-JWTs sind signiert, aber nicht verschlüsselt. Für verschlüsselte Tokens gibt es das verwandte Format JWE (JSON Web Encryption).
Wie lange ist ein JWT gültig?
Die Gültigkeitsdauer wird im Token selbst durch den Claim 'exp' (Expiration Time) definiert und sollte je nach Anwendung kurz gehalten werden, um Sicherheitsrisiken zu minimieren.
Welche Algorithmen werden für die Signatur verwendet?
Häufig genutzte Algorithmen sind HMAC mit SHA-256 (HS256), RSA (RS256) und ECDSA (ES256). Die Wahl hängt von Sicherheitsanforderungen und Infrastruktur ab.
Kann man JWTs widerrufen?
Da JWTs zustandslos sind, ist ein Widerruf schwierig. Man kann z.B. eine Blacklist auf dem Server pflegen oder die Lebensdauer der Tokens kurz halten.
Sind JWTs sicher für die Übertragung sensibler Daten?
JWTs sind signiert, aber nicht verschlüsselt. Sensible Daten sollten daher nicht im Payload gespeichert oder zusätzlich verschlüsselt werden.
Quellen & weiterführende Informationen
Quellenvorschläge und Nachweise zum Artikel. Bitte externe Inhalte eigenständig prüfen.
- 01RFC 7519 - JSON Web Token (JWT) ↗
Offizieller Standard für JSON Web Tokens
https://tools.ietf.org/html/rfc7519 - 02JWT.io - Introduction to JSON Web Tokens ↗
Umfassende Einführung und Tools zu JWT
https://jwt.io/introduction/ - 03OWASP JSON Web Token Cheat Sheet ↗
Best Practices und Sicherheitsaspekte bei JWT
https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_Cheat_Sheet.html