Was ist ein JSON Web Token (JWT)?
JSON Web Token (JWT) ist ein offener Standard (RFC 7519) zur sicheren Übertragung von Informationen zwischen Parteien als JSON-Objekt. JWTs werden häufig für die Authentifizierung und Autorisierung in Webanwendungen verwendet, da sie kompakt und einfach zu verwenden sind.
Ein JWT besteht aus drei Hauptteilen:
- Header: Der Header gibt den Typ des Tokens an (typischerweise “JWT”) und das verwendete Signaturverfahren, wie HMAC SHA256 oder RSA.
- Payload: Die Payload enthält die Ansprüche oder Daten, die über das Token übertragen werden. Diese Daten können Informationen über den Benutzer, Berechtigungen oder andere relevante Informationen enthalten. Die Payload besteht aus “Claims”, die entweder standardisierte, registrierte Claims (wie sub für die Benutzer-ID) oder benutzerdefinierte Claims sein können.
- Signature: Die Signatur wird erstellt, indem der Header und die Payload zusammen mit einem geheimen Schlüssel oder einem privaten Schlüssel signiert werden. Dies stellt sicher, dass das Token nicht manipuliert wurde und von einer vertrauenswürdigen Quelle stammt.
Ein JWT sieht typischerweise wie folgt aus: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
.
JWTs werden oft in Authentifizierungssystemen verwendet, um Benutzersitzungen zu verwalten. Nachdem ein Benutzer sich erfolgreich angemeldet hat, erhält er ein JWT, das bei jedem nachfolgenden Request an den Server gesendet wird. Der Server überprüft die Signatur des Tokens, um sicherzustellen, dass es gültig und unverändert ist, und gewährt oder verweigert den Zugriff basierend auf den im Token enthaltenen Informationen.