Was sind JSON Web Tokens? Wie sehen JWTs aus? Wozu braucht man sie?
Im digitalen Zeitalter sind JSON Web Tokens (JWTs) unverzichtbar für die Sicherheit im Internet, insbesondere bei der Verwendung von REST-APIs. Täglich werden unzählige Tokens in Ihrem Namen über Plattformen wie Microsoft, Google oder Amazon ausgetauscht.
Obwohl JWTs auf den ersten Blick komplex erscheinen (eyJhbGciOiJIU...), ist ihr Inhalt meist simpel, wie im Video erläutert. Es ist entscheidend zu verstehen, wie JWTs funktionieren und wie sie möglicherweise missbraucht werden könnten.
Gemäß RFC 7519 unterscheiden wir zwischen JWS (JSON Web Signature, signierte Tokens) und JWE (JSON Web Encryption, verschlüsselte Tokens). Im Fall von JWS, das die größte Verbreitung genießt, besteht das Token aus Header, Payload und Signature. Die ersten beiden sind base64url-kodierte JSON-Objekte, wobei base64url eine Modifikation von base64 ist, die Tokens URL- und HTTP-kompatibel macht.
Als Beispiel verwenden wir HS256, den 'einfachsten' symmetrischen Signaturalgorithmus. Zunächst nutzen wir das Token zur Autorisierung am API, später zur Authentifizierung.
In unserem Beispiel verwendet mein Handy ein JWT von mir (Tobias) und greift damit auf das CRM-System zu, um eine Kundenliste zu erhalten.
Wir beleuchten die Header "alg" und "typ" sowie die Claims "sub" und "iat". Nicht explizit beschrieben, aber funktional erklärt werden "exp" (Gültigkeitsende des Tokens) und "nbf" (Gültigkeitbeginn des Tokens).
Token Eingangsbeispiel:
Header:
Payload:
Links
- Bearer Tokens Was ist ein Bearer Token?
- OAuth2 in Bildern am Beispiel des Authorization Code Grants OAuth 2.0 im Detail
- jwt.io