雑多なブログ

音楽や語学、プログラム関連の話題について書いています

JWTとは?(WIP)

JWTとは

  • JSON Web Token の略であり、「ジョット」と読む。
  • RFC7519で定義されている。
  • URL-Safeである。
  • 電子署名により、改ざんをチェックできる。

次のケースで利用が想定される。

  • ユーザー認証 シングルサインオンで、認証情報をさまざまなドメイン間で簡単に利用できる。
  • 情報の交換 公開鍵と秘密鍵のペアを利用して署名できるので、送信者が本人である事を確認でき、 署名によりコンテンツの改ざんもチェックできる。

jwtの構造

jwtは3つの要素から構成されている。

  • Header
  • Payload
  • Signature

それぞれがBase64エンコードされており、各要素をピリオド(.)で結合して一つの文字列として表現される。

xxxxxx.yyyyyy.zzzzzz

Header (ヘッダー)

一つ目の要素はヘッダである。一般的に algtyp の二つの要素から構成される。 "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更新