レッスン 3

デコードと検証

JWT の JSON を読むこととトークンを信頼することは同じではない。

JWT をデコードすると、Base64URL テキストを JSON に戻します。JWT を検証すると、トークンがアプリケーションにとって受け入れ可能であることを証明します。

デコードが答える可読性の質問

デコードは次を答えるのに役立ちます。

  • header はどのアルゴリズムを主張しているか?
  • sub にはどのユーザーまたはサービス名があるか?
  • exp は過去か?
  • どの scope や role があるか?

デバッグに有用ですが、セキュリティ判断ではありません。

検証が答える信頼の質問

検証は次を確認します。

  • 署名が信頼できる秘密鍵または公開鍵と一致する。
  • アルゴリズムがアプリケーションが許可するものである。
  • iss が信頼できる issuer である。
  • aud が自サービスと一致する。
  • expnbf、クロックスキュールールが満たされる。

これらのチェックが欠けると、デコード後は有効に見えてもトークンは危険なままです。

経験則

調査にはデコーダーを使う。認証ライブラリ、IdP、バックエンドミドルウェアで検証する。

実践したいときは関連する DevCove ツールを使えます。任意であり、このレッスンの必須部分ではありません。

関連ツールを開く

コース概要へ戻る