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
.