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

5. JOSE Header (JOSEヘッダー)

JWTオブジェクトの場合、JOSE Headerによって表されるJSONオブジェクトのメンバーは、JWTに適用される暗号化操作と、オプションでJWTの追加プロパティを記述します。JWTがJWSかJWEかに応じて、JOSE Header値の対応するルールが適用されます。

本仕様では、JWTがJWSである場合とJWEである場合の両方において、以下のHeader Parameters (ヘッダーパラメータ) の使用をさらに規定します。

5.1. "typ" (Type) Header Parameter (型ヘッダーパラメータ)

[JWS] および [JWE] で定義されている "typ" (type) ヘッダーパラメータは、JWTアプリケーションによって、この完全なJWTのメディアタイプ [IANA.MediaTypes] を宣言するために使用されます。これは、JWTオブジェクトを含むことができるアプリケーションデータ構造に、JWTではない値も存在する可能性がある場合に、JWTアプリケーションが使用することを意図しています。アプリケーションは、この値を使用して、存在する可能性のある異なる種類のオブジェクト間の曖昧さを解消できます。オブジェクトの種類が既に分かっている場合、アプリケーションは通常これを使用しません。このパラメータはJWT実装によって無視されます。このパラメータの処理は、JWTアプリケーションによって実行されます。存在する場合、このオブジェクトがJWTであることを示すために、その値を "JWT" にすることが推奨されます (RECOMMENDED)。メディアタイプ名は大文字小文字を区別しませんが、レガシー実装との互換性のために、"JWT" は常に大文字を使用してスペルすることが推奨されます (RECOMMENDED)。このヘッダーパラメータの使用は任意です (OPTIONAL)。

5.2. "cty" (Content Type) Header Parameter (コンテンツ型ヘッダーパラメータ)

[JWS] および [JWE] で定義されている "cty" (content type) ヘッダーパラメータは、本仕様によって、JWTの構造情報を伝達するために使用されます。

ネストされた署名または暗号化操作が使用されない通常の場合、このヘッダーパラメータの使用は推奨されません (NOT RECOMMENDED)。ネストされた署名または暗号化が使用される場合、このヘッダーパラメータは存在しなければなりません (MUST)。この場合、値は "JWT" でなければならず (MUST)、このJWTにNested JWT (ネストされたJWT) が含まれていることを示します。メディアタイプ名は大文字小文字を区別しませんが、レガシー実装との互換性のために、"JWT" は常に大文字を使用してスペルすることが推奨されます (RECOMMENDED)。ネストされたJWTの例については、付録A.2を参照してください。

5.3. Replicating Claims as Header Parameters (ヘッダーパラメータとしてのクレーム複製)

一部のアプリケーションでは、JWTを復号化または検証することなく、特定のクレームをJWTを処理するソフトウェアに直接表示できるようにすることが有用です。これは、クレーム値をヘッダーパラメータ値として複製することで実現できます。

本仕様は、ヘッダーパラメータでのクレームの複製を要求も禁止もしていません。ただし、これを行うことを選択したアプリケーションは、以下のルールに従わなければなりません (MUST):

  1. クレームの存在と値のセマンティクスは、クレームがJWT Claims Setにあるか、ヘッダーパラメータとして存在するかにかかわらず、保持されなければなりません (MUST)。

  2. 同じ情報が両方の場所に存在する場合、その値は一致しなければなりません (MUST)。実装はこの一貫性を検証し (MUST)、一致しない場合はJWTを拒否しなければなりません (MUST)。