JWT
Steht für „JSON Web Token“.
Ein JWT ist ein branchenüblicher Token, der Sicherheitsinformationen zwischen zwei Parteien überträgt. JWTs sind kompakt und URL-sicher, sodass Webserver und Clients sie als Teil einer HTTPS-Anfrage austauschen können. JWTs werden am häufigsten verwendet, um einen Benutzer zu authentifizieren, der bei einer Website oder einer Webanwendung angemeldet ist, oft über einen Single-Sign-on-Dienst (SSO).
JWTs bestehen aus drei Teilen:
- Der Header enthält Informationen über den Tokentyp und den Algorithmus, der zum Erzeugen der digitalen Signatur verwendet wird.
- Die Nutzdaten enthalten die Liste der vom Token gemachten Aussagen. Diese Aussagen umfassen normalerweise Informationen über den Aussteller des Tokens, die Website oder Webanwendung, die den Token verwendet, und den Benutzer. Sie enthalten außerdem den Zeitpunkt, zu dem der Token ausgestellt wurde, und den Zeitpunkt, zu dem er abläuft beides mithilfe der (Unixzeit). Zusätzlich zu diesen üblichen Werten kann ein JWT beliebige Aussagen enthalten, die für die Website oder Webanwendung, die den Token ausstellt, spezifisch sind.
- Die Signatur bestätigt, dass der Token seit seiner Ausstellung nicht manipuliert wurde.
Websites und Webanwendungen verwenden JWTs häufig als zustandslose Methode zur Authentifizierung eines Benutzers. Der Server muss dabei keine Sitzung im Speicher oder in der Datenbank verwalten, wodurch der erforderliche Aufwand für jeden Benutzer sinkt. Stattdessen tauschen Client und Server den JWT mit jeder HTTPS-Anfrage aus und überprüfen dabei die Signatur, um sicherzustellen, dass der Token nicht verändert wurde. Sobald der JWT abläuft, muss sich der Benutzer erneut anmelden, damit ein neuer Token ausgestellt wird.
Einen JWT erstellen
Sowohl der Header als auch die Nutzdaten eines JWT bestehen aus Text, der in JSON geschrieben ist. Header und Nutzdaten werden jeweils mithilfe eines Algorithmus namens Base64 separat codiert, wodurch mehrere Textzeilen in eine einzelne Zeichenfolge umgewandelt werden. Die codierten Zeichenfolgen von Header und Nutzdaten werden kombiniert und durch ein „.“-Zeichen getrennt.
Die kombinierte Zeichenfolge mit dem codierten Header und den codierten Nutzdaten wird mithilfe eines Hash-Algorithmus und eines geheimen Schlüssels erneut codiert, um die Signatur zu erstellen. Die Signatur wird anschließend, durch ein weiteres „.“-Zeichen getrennt, an das Ende von Header und Nutzdaten angehängt, um den endgültigen JWT zu erstellen.
Testen Sie Ihr Wissen