Definitionen Was ist JWT?

Autor / Redakteur: zeroshope / Manfred Klein

Bei JWT handelt es sich um ein Access-Token, das den Austausch von Claims ermöglicht. Es basiert auf JSON und ist genormt. Typischerweise wird es für SSO-Szenarien genutzt. Eine Besonderheit des Tokens ist sein einfacher Aufbau.

Firma zum Thema

JWT – JSON Web Token als Authentifizierungsmechanismus im Netz
JWT – JSON Web Token als Authentifizierungsmechanismus im Netz
(© aga7ta - Fotolia)

JWT steht für JSON Web Token. Bei JSON handelt es sich um die Kurzform für JavaScript Object Notation. Es ist ein Datenformat in einer leicht lesbaren Textform, das so einen einfachen Informationsaustausch ermöglicht.

Die Beschreibung Web zeigt an, dass es sich um ein Token handelt, das im Netz zum Einsatz kommt. Ein Token ist ein Programm, dass der gegenseitigen Verifizierung von Claims dient. Klassischerweise kommen Tokens für die Authentifizierung von Nutzer- oder Programmanfragen zum Einsatz. Bei JWT ist dies nicht anders.

SSO-Szenarien als typisches Einsatzgebiet von JWTs

JWTs dienen vor allem in Single Sign-On (SSO)-Szenarien der Authentifizierung von Nutzern. Beispielsweise können in einem System mit einem Drittanbieter die Identitätsinformationen zwischen Service-Provider und Identity-Provider übertragen werden. Prinzipiell sind JWTs aber nicht darauf beschränkt, in solchen Szenarien zu dienen. Sie eignen sich generell für alle Bereiche, in denen Daten, kompakt, signiert und eventuell auch verschlüsselt übertragen werden sollen.

Der Aufbau eines JWTs

Bei einem JWT handelt es sich um einen String, der im Header oder als Request-Parameter übermittelt wird. Er hat diesen Aufbau:

  • Header: Hierbei handelt es sich um JSON-Element, um den Token-Typ zu definieren (zum Beispiel Medientyp oder Algorithmus).
  • Payload: Dieses JSON-Element beschreibt den Claim (beispielsweise den Aussteller oder die Zieldomäne).
  • Signatur: Header und Payload wird in Base64 kodiert und gehashed, um eine unverwechselbare „Unterschrift“ zu erzeugen.

Header und Payload können mehrere Felder haben, um mit unterschiedlichen Typen und einer Vielzahl von Claims arbeiten zu können. Generell stehen Implementierungen für große Anzahl von Plattformen zur Verfügung. Diese sind im Web über die Domain JWT.io abrufbar.

(ID:47022083)