公開鍵 JWT 検証

JWKS Validator

信頼する JSON Web Key Set を使って JWT を検証します。header の kid から互換 JWK を選び、対応する公開鍵署名をブラウザ内で確認します。

alg
kid
iss

署名検証はブラウザ内で行います。リモート読み込みでは入力した 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 を結び付ける設計を推奨します。