メインコンテンツまでスキップ

Appendix A. JWT Examples (JWT例)

本付録では、JWTの例を提供します。

A.1. Example Encrypted JWT (暗号化JWT例)

本節では、暗号化されたJWTの例を提供します。暗号化されたJWTは、JWE Compact Serializationを使用します。

以下の例のJOSE Headerは次を宣言します:

  • エンコードされたオブジェクトはJWTです
  • JWTは暗号化されています
  • Content Encryption Key (CEK) はRSA-OAEPアルゴリズムを使用して暗号化されています
  • JWT Claims SetはAES GCMアルゴリズムを使用して暗号化されています
{"alg":"RSA-OAEP","enc":"A256GCM"}

以下は、暗号化されたJWTのJWT Claims Setの例です:

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

JWE Compact Serializationのフォーマットは:

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 (ネストされたJWT例)

本節では、ネストされた署名と暗号化を示すネストされたJWTの例を提供します。この例では、JWT Claims Setが最初に署名され、次に結果のJWSが暗号化されます。

最初のステップでは、クレームを含むJWT Claims Setが作成され署名されて、JWSが作成されます。2番目のステップでは、このJWSが暗号化されるJWEのプレーンテキストとして使用されます。

内部JWT(JWS)のJOSE Header:

{"alg":"RS256"}

外部JWT(JWE)のJOSE Headerには、ネストされたJWTが含まれていることを示す "cty" (content type) 値 "JWT" が含まれています:

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

JWT Claims Setは前の例と同じです。結果のネストされたJWTは、署名後に暗号化されたJWTです。