本文へスキップ
ecdsa.com

JWKS(JSON Web Key Set)

公開鍵の JWK を keys 配列に持つ JSON オブジェクトで、通常は発行者の jwks_uri で配信され、リライングパーティがトークン検証と鍵ローテーションへの追従に使います。
別表記JWK Setjwks_uriJSON Web Key Setjwks.json

OpenID Connect のディスカバリ(/.well-known/openid-configuration)と OAuth の認可サーバーメタデータ(RFC 8414)は、この URL を jwks_uri として公開します。セットには、現在検証に使える有効な鍵がすべて含まれ、それぞれに kid が付いています。検証者はセットをキャッシュし、トークンのヘッダーと kid が一致する鍵を選び、鍵の kty と alg が想定するアルゴリズムに合うことを確認します。未知の kid を受け取った場合は、レート制限をかけたうえでセットを再取得します。

鍵のローテーションでは、新しい鍵で署名を始める前にその鍵をセットに追加し、古い鍵は、それで署名したすべてのトークンの有効期限が切れた後に初めて削除します。注意すべき失敗は、誤って公開された秘密のメンバー(d)、重複した kid の値、alg がないために緩いライブラリが誤ったアルゴリズムで使ってしまう鍵、そして更新されないキャッシュです。JWKS チェッカーでは、稼働中のエンドポイントにこうした問題がないかを確認できます。

規格と参考文献

すべての用語