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

6. Unsecured JWTs (無保護JWT)

JWT内に含まれる署名および/または暗号化以外の手段でJWTコンテンツが保護されるユースケース(JWTを含むデータ構造への署名など)をサポートするために、署名や暗号化なしでJWTを作成することもできます (MAY)。Unsecured JWT (無保護JWT) は、"alg" ヘッダーパラメータ値が "none" で、JWS Signature値が空文字列のJWSであり、JWA仕様 [JWA] で定義されています。これは、JWT Claims SetをJWS Payloadとする無保護JWSです。

6.1. Example Unsecured JWT (無保護JWT例)

以下の例のJOSE Headerは、エンコードされたオブジェクトが無保護JWTであることを宣言しています:

{"alg":"none"}

JOSE HeaderのUTF-8表現のバイト列をBase64urlエンコードすると、次のエンコードされたJOSE Header値が得られます:

eyJhbGciOiJub25lIn0

以下はJWT Claims Setの例です:

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

JWT Claims SetのUTF-8表現のバイト列をBase64urlエンコードすると、次のエンコードされたJWS Payloadが得られます (表示目的でのみ改行を追加):

eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt
cGxlLmNvbS9pc19yb290Ijp0cnVlfQ

エンコードされたJWS Signatureは空文字列です。

これらのエンコードされた部分をこの順序で連結し、部分間にピリオド ('.') 文字を挿入すると、次の完全なJWTが得られます (表示目的でのみ改行を追加):

eyJhbGciOiJub25lIn0
.
eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFt
cGxlLmNvbS9pc19yb290Ijp0cnVlfQ
.