JWTとは?(WIP)
JWTとは
次のケースで利用が想定される。
- ユーザー認証 シングルサインオンで、認証情報をさまざまなドメイン間で簡単に利用できる。
- 情報の交換 公開鍵と秘密鍵のペアを利用して署名できるので、送信者が本人である事を確認でき、 署名によりコンテンツの改ざんもチェックできる。
jwtの構造
jwtは3つの要素から構成されている。
- Header
- Payload
- Signature
それぞれがBase64エンコードされており、各要素をピリオド(.
)で結合して一つの文字列として表現される。
例
xxxxxx.yyyyyy.zzzzzz
Header (ヘッダー)
一つ目の要素はヘッダである。一般的に alg
と typ
の二つの要素から構成される。
"type": "JWT"
は、このデータがJWTである事を示し、alg
は署名アルゴリズムを示している。次の例では HS256
となっているが、これは HMAC SHA256
である事を示している。
例
{ "typ": "JWT", "alg": "HS256" }
Payload (ペイロード)
二つ目の要素はペイロードである。
Signature (シグネチャー)
三つ目の要素はシグネチャーである。
参考URL
https://datatracker.ietf.org/doc/html/rfc7519:url
https://jwt.io/:url
https://techblog.yahoo.co.jp/advent-calendar-2017/jwt/:url
2021/06/17更新