JSON Web Key Setを見つける
このディスカバリーエンドポイントを使用して、アプリケーションやAPIがJSON Web Key Set(JWKS)エンドポイント(jwks_uri
)を自動的に見つけるように構成します。このエンドポイントには、RS256署名アルゴリズムで署名された、すべてのAuth0発行JSON Web Token(JWT)に署名するために使用されたJWKSが含まれています。エンドポイントは以下の場所にあります:
https://{yourDomain}/.well-known/openid-configuration
.
JWKSを使用してJWTを検証する場合、次の操作が必要になります。
Auth0ディスカバリーエンドポイントからJWKSを取得し、署名に使用される可能性のある鍵をフィルタリングします(例:公開鍵が欠落している鍵や、
kid
プロパティが設定されている鍵)。デコードしたJWTのヘッダーから
kid
プロパティを取得します。フィルタリングしたJWKSの中から
kid
プロパティと一致する鍵を探します。JWKSで対応する
x5c
プロパティを使用して証明書を作成します。証明書を使用してJWTの署名を検証します。
JWKSを使用してJWTの署名を検証する例は、「RS256とJWKSを使った操作」(Node.js使用)または「Backend/API Quickstarts」を参照してください。
JWTの構造の詳細については、「JSON Web Tokenの構造」をお読みください。
JWKSに複数の署名鍵が存在する可能性があることを想定しておくことをお勧めします。Auth0のJWKSエンドポイントにある署名鍵は通常1つであるため、不要に思われるかもしれませんが、署名証明書のローテーションでJWKSに複数の署名鍵が見つかる可能性があります。
アプリケーションの性能を向上させ、レート制限の超過を回避できるように、署名鍵はキャッシュすることをお勧めします。ただし、トークンのデコードに失敗した場合には、必ずキャッシュを無効にして、新しい署名キーを取得し、もう一度だけ試すようにしてください。