Traditionelle Plattform

JWT-Authentifizierung

JSON Web Token (JWT) ist ein kompaktes Darstellungsformat für Ansprüche, das für Umgebungen mit eingeschränkten Speicherbereichen wie HTTP -Berechtigungsheader und URI-Abfrageparameter vorgesehen ist. Ein Anspruch wird als Name/Wert-Paar dargestellt, das einen Anspruchsnamen und einen Anspruchswert enthält.

Die Ansprüche in einem JWT werden als JSON-Objekt codiert, das als Nutzdaten einer JWS-Struktur (JSON Web Signature) oder als unverschlüsselter Text einer JWE-Struktur (JSON Web Encryption) verwendet wird. JWT-Claims können digital signiert werden oder die Integrität kann mit einem Message Authentication Code (MAC) geschützt und auch verschlüsselt werden.

Ein JWT wird als Folge von URL-sicheren Teilen dargestellt, die durch Punkte ('.') getrennt sind. Jeder Abschnitt enthält einen base64url-encoded Wert. Die Anzahl der Teile im JWT hängt von der Darstellung des resultierenden JWS unter Verwendung der JWS Compact Serialization bzw. des resultierenden JWE unter Verwendung der JWE Compact Serialization ab.

Das Format eines typischen JWS ist < Base 64 URL encoded Header json >. < Base 64 URL encoded Payload json >. < Base 64 URL encoded signature >

Die Signatur wird durch Signieren des Inhalts des mit Base 64 URL codierten Headers und der Nutzdaten mit einem Verschlüsselungsschlüssel abgerufen.

Beispiel für JWS:

Header 
{
  "alg": "RS256",
  "typ": "JWT",
  "kid": "k12345"
}

Payload
{
  "exp": <expiration date>,
  "iss": "<name of the token issuer>"
}
Hinweis: Stellen Sie sicher, dass Sie den Wert des Parameters kid im Header korrekt festgelegt haben, wie im Beispiel gezeigt.
Hinweis: Der Wert des Parameters exp darf nicht größer als der Wert sein, den Sie in der Eigenschaft jwt.verify.max.future.validity.hoursangegeben haben. Weitere Informationen finden Sie unter Für die JWT-Authentifizierung erforderliche Eigenschaften.
Die tatsächliche JWS-Darstellung des obigen JWT, das mit dem privaten Schlüssel RS256 signiert ist, lautet wie folgt:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImExIn0
.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTMxNzYyMDY1fQ
.z4qfO0leZK2mYp_w-jFNidTx-Ri0PRMHLsOAG1Den7ZR4QntIJhU17U0afgoe5VzISXS6jW61ga3XEk39ey1G7a_-ARIVZLYN11fHDhsPuzN7PPkbT
5uWpHEUhVWRR8dxHqXmNiDaWjNhTnzHCBpfrRHj5pR_dzubbuE_uPuvDk
Diese JWS besteht aus drei Teilen, die durch ein '.' voneinander getrennt sind Zeichen:
  • Header = eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImExIn0
  • Nutzlast = G4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTMxNzYyMDY1fQ
  • Unterschrift= z4qfO0leZK2mYp_w-jFNidTx-Ri0PRMHLsOAG1Den7ZR4QntIJhU17U0afgoe5VzISXS6jW61ga3XEk39ey1G7a_-ARIVZLYN11fHDhsPuzN7PPkbT5uWpHEUhVWRR8dxHqXmNiDaWjNhTnzHCBpfrRHj5pR_dzubbuE_uPuvDk