JWT (JSON Web Token) besteht aus Header, Payload und Signature, die durch zwei Punkte getrennt sind, und wird häufig für API-Authentifizierung, Single Sign-on und zustandslose Sitzungen verwendet. Dieses Tool bündelt Analyse, Erzeugung und Prüfung auf einer Seite mit drei Tabs. Für die Analyse wird kein Schlüssel benötigt; für Erzeugung und Prüfung sind Secret oder Schlüssel erforderlich.
Nach dem Einfügen eines Tokens wird dieser automatisch in drei Teile zerlegt. Header und Payload werden per Base64URL dekodiert und als JSON formatiert, während Signature unverändert erhalten bleibt. Alle drei Teile können einzeln kopiert werden. Zusätzlich werden Header-Felder wie alg, typ und kid gelesen, Standard-Claims wie iss, sub, aud und jti erkannt und die Zeitstempel iat, nbf und exp in lokale Zeit umgerechnet.
Anhand der Zeit-Claims bestimmt das Tool automatisch den Gesamtstatus des Tokens: gültig, läuft bald ab, abgelaufen, noch nicht gültig oder ohne Zeit-Claims. Außerdem wird die verbleibende Zeit bis zum Ablauf angezeigt. So lassen sich Probleme mit dem Anmeldestatus schneller eingrenzen, etwa ob ein Token abgelaufen ist, noch nicht gültig ist oder die Signatur selbst fehlerhaft ist. Benutzerdefinierte Claims können direkt im Payload-JSON eingesehen werden.
Im Tab zur Erzeugung können Header- und Payload-JSON direkt bearbeitet werden. Es stehen Funktionen zum Formatieren und Minimieren zur Verfügung. Häufig verwendete Claims können mit einem Klick eingefügt werden, wobei exp standardmäßig auf eine Stunde nach der aktuellen Zeit gesetzt wird. Nach Auswahl des Algorithmus und Eingabe des passenden Schlüssels kann ein Token erstellt werden. HMAC-Algorithmen verwenden ein Secret, das als UTF-8-Text oder bei einem Präfix 0x als Hexadezimalwert interpretiert werden kann. RSA- und EC-Algorithmen akzeptieren PEM-Privatschlüssel oder JWK. Fehlerhaftes JSON wird sofort gemeldet.
Unterstützt werden 12 Algorithmen: HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512 sowie ES256, ES384 und ES512. Die HS-Familie verwendet HMAC-Signaturen, RS und PS basieren auf RSA und ES auf ECDSA. Algorithmen, die einen sicheren Kontext benötigen, werden entsprechend gekennzeichnet.
Für die Prüfung wird der zur Signatur gehörende öffentliche Schlüssel benötigt. Für RSA werden öffentliche SPKI- oder PKCS#1-PEM-Schlüssel sowie JWK unterstützt. Für EC werden öffentliche SPKI-Schlüssel als PEM oder JWK unterstützt. Das Prüfergebnis zeigt einzeln, ob die Signatur gültig ist, ob das Token abgelaufen ist und ob es bereits gültig ist. Bei Fehlern wird eine konkrete Ursache angezeigt. Wird ein privater Schlüssel eingefügt, weist die Seite darauf hin, dass der entsprechende öffentliche Schlüssel verwendet werden sollte.
Die Algorithmen RS, PS und ES verwenden die WebCrypto-Schnittstelle des Browsers. Diese ist nur in einem sicheren Kontext verfügbar und erfordert daher HTTPS. HS ist davon nicht betroffen und kann auch über HTTP Tokens erzeugen und prüfen.
Tokens, Secrets, private und öffentliche Schlüssel werden vollständig im Browser verarbeitet. Es gibt keine serverseitige Berechnungs-API, und Eingaben werden weder hochgeladen noch gespeichert. Der Payload eines JWT ist lediglich Base64URL-kodiert und nicht verschlüsselt. Jeder, der das Token besitzt, kann dessen Inhalt lesen. Daher sollten keine vertraulichen Informationen im Payload abgelegt werden.
Kommentare 0