JWT/JWS(JOSE)
JWTとは、2者の間で受け渡す情報の項目(クレーム)を、署名や暗号化を施せる一続きの文字列として表す形式のことです。JWSは、内容に署名を付けて表す形式で、署名付きのJWTはこの形式で作られます。
別表記:JWT/JWS/JOSE/JSON Web Token/JSON Web Signature/ジョット
どういう形をしているのか
情報の項目はJSONの形でまとめられ、全体はピリオドで区切った複数の部分からなる文字列になります。URLの中にもそのまま入れられる形(URL-safe)です。
発行元(iss)、対象(sub)、受け取り手(aud)、期限(exp)などを表す項目の名前が登録されていますが、どれもあらゆる場面で必ず使うものではありません。項目名が3文字前後なのは、HTTPのヘッダやURLの一部にも収まるよう、全体を小さく保つためです。
どこで定められているのか
いずれも2015年5月に、IETFの標準の文書(RFC)として発行されました。JWSは、IETFのJOSEという作業部会がまとめた、署名、暗号化、鍵の表し方に関する一連の文書の1つです。
よくある誤解:署名すれば中身は見えなくなるのか
見えます。JWSが担うのは、内容が途中で変えられていないかを確かめられるようにすることです。変えられていれば、署名の照合が合わなくなります。
中身を隠す暗号化は、別の文書(JWE)が扱います。他人に知られたくない情報を含む場合は、JWEで暗号化する、暗号化された通信路(TLSなど)で送る、またはその両方といった対策が要ります。
