Zum Hauptinhalt springen

Appendix A. JWT Examples (JWT-Beispiele)

Dieser Anhang enthält Beispiele für JWTs.

A.1. Example Encrypted JWT (Beispiel für verschlüsseltes JWT)

Dieser Abschnitt enthält ein Beispiel für ein verschlüsseltes JWT. Das verschlüsselte JWT verwendet die JWE Compact Serialization.

Der folgende Beispiel-JOSE-Header deklariert Folgendes:

  • Das kodierte Objekt ist ein JWT
  • Das JWT ist verschlüsselt
  • Der Content Encryption Key (CEK) wird mit dem RSA-OAEP-Algorithmus verschlüsselt
  • Das JWT Claims Set wird mit dem AES GCM-Algorithmus verschlüsselt
{"alg":"RSA-OAEP","enc":"A256GCM"}

Das Folgende ist ein Beispiel für ein JWT Claims Set für das verschlüsselte JWT:

{"iss":"joe",
"exp":1300819380,
"http://example.com/is_root":true}

Das Format der JWE Compact Serialization ist:

BASE64URL(UTF8(JWE Protected Header)) || '.' ||
BASE64URL(JWE Encrypted Key) || '.' ||
BASE64URL(JWE Initialization Vector) || '.' ||
BASE64URL(JWE Ciphertext) || '.' ||
BASE64URL(JWE Authentication Tag)

A.2. Example Nested JWT (Beispiel für verschachteltes JWT)

Dieser Abschnitt enthält ein Beispiel für ein verschachteltes JWT, das verschachtelte Signierung und Verschlüsselung demonstriert. In diesem Beispiel wird das JWT Claims Set zuerst signiert und dann das resultierende JWS verschlüsselt.

Im ersten Schritt wird ein JWT Claims Set erstellt, das die Ansprüche enthält, und signiert, wodurch ein JWS erstellt wird. Im zweiten Schritt wird dieses JWS als Klartext für ein zu verschlüsselndes JWE verwendet.

Der JOSE-Header für das innere JWT (JWS):

{"alg":"RS256"}

Der JOSE-Header für das äußere JWT (JWE) enthält einen "cty" (content type) Wert von "JWT", der anzeigt, dass ein verschachteltes JWT transportiert wird:

{"alg":"RSA-OAEP","enc":"A256GCM","cty":"JWT"}

Das JWT Claims Set ist dasselbe wie im vorherigen Beispiel. Das resultierende verschachtelte JWT ist ein zuerst signiertes und dann verschlüsseltes JWT.