レッスン 3
デコードと検証
JWT の JSON を読むこととトークンを信頼することは同じではない。
JWT をデコードすると、Base64URL テキストを JSON に戻します。JWT を検証すると、トークンがアプリケーションにとって受け入れ可能であることを証明します。
デコードが答える可読性の質問
デコードは次を答えるのに役立ちます。
- header はどのアルゴリズムを主張しているか?
subにはどのユーザーまたはサービス名があるか?expは過去か?- どの scope や role があるか?
デバッグに有用ですが、セキュリティ判断ではありません。
検証が答える信頼の質問
検証は次を確認します。
- 署名が信頼できる秘密鍵または公開鍵と一致する。
- アルゴリズムがアプリケーションが許可するものである。
issが信頼できる issuer である。audが自サービスと一致する。exp、nbf、クロックスキュールールが満たされる。
これらのチェックが欠けると、デコード後は有効に見えてもトークンは危険なままです。
経験則
調査にはデコーダーを使う。認証ライブラリ、IdP、バックエンドミドルウェアで検証する。