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です。