公開鍵 JWT 検証
JWKS Validator
信頼する JSON Web Key Set を使って JWT を検証します。header の kid から互換 JWK を選び、対応する公開鍵署名をブラウザ内で確認します。
署名検証はブラウザ内で行います。リモート読み込みでは入力した JWKS URL だけを取得し、JWT をそのエンドポイントや検証 API に送信しません。
トークン内の jku / x5u を自動追跡しません。JWKS の取得元は信頼済み設定として扱い、未検証トークンに選ばせないでください。
JWKS で JWT を検証するときの手順
まず header の alg と kid を読みます。その後、期待する issuer 用に信頼している JWKS を使います。未検証 JWT 自身に鍵の取得先を決めさせません。
RFC 7517 の JWK Set は keys 配列を持ち、kid は rollover 時のキー選択によく使われます。一致する kid が見つかっても、alg、key use、issuer の信頼確認が必要です。
1. alg + kid を読む
未検証の header を設定値として信用せず、選択のヒントとして確認します。
2. 信頼済み JWK を選ぶ
kid に加え kty、alg、use、key_ops があれば互換性を確認します。
3. 署名 + claims を確認
署名の後に exp/nbf、必要なら issuer/audience を検証します。
対応アルゴリズム
RS256/384/512、PS256/384/512、ES256/384/512 を Web Crypto API で検証します。公開 JWKS に共有 HMAC シークレットを載せるべきではないため HS 系は対象外です。
jku / x5u を自動追跡しない理由
token が指定した URL を盲目的に取得すると SSRF や trust boundary の問題になります。ここでは明示的に入力した JWKS URL だけを取得し、production では trusted issuer と既知の metadata/JWKS を結び付ける設計を推奨します。