JWKS による SLAS JWT の検証

JSON Web Key Set (JWKS) は、JSON ベース形式の暗号化公開鍵のセットであり、JSON Web Token (JWT) の信頼性を検証するために一般的に使用されます。各 JWKS キーは、キーの種類 (kty)、アルゴリズム (alg)、およびキー ID (kid) を含む JSON Web Key (JWK) として表されます。この形式により、サーバーは JWKS エンドポイントを介して公開鍵を安全に共有でき、クライアントはトークンの署名に使用される秘密鍵を必要とせずにアクセスして JWT を検証できます。この公開鍵と秘密鍵のペアにより、送信される JWT の整合性と信頼性が確保されます。

JWKS は、トークンベースの認証に依存する分散システム、特に OAuth 2.0 および OpenID Connect プロトコルで重要な役割を果たします。JWKS を使用すると、公開鍵の信頼できる中央リポジトリが提供されるため、キーの管理が簡素化され、セキュリティが強化されます。JWKS を使用するシステムは、サービスを中断することなく動的にキーを取得し、キーのローテーションを処理できるため、最新の認証システムで署名を検証し、データを保護するための好ましい方法となっています。追加情報については、次を参照してください:

JWKS を使用して SLAS JWT を検証するには、次のようにします。

  1. SLAS JWKS エンドポイントから JWKS を取得します。
  2. JWT のヘッダーを解析した後、キー ID (kid) を取得します。
  3. kid と一致するキーを JWKS で見つけます。
  4. 一致する公開鍵を使用して JWT 署名を検証します。

新しく作成されたテナントの場合、SLAS JWKS エンドポイントは通常 2 つのキーを返します。キーの最初の正常なローテーションが完了した後、それ以降、エンドポイントはテナントごとに 3 つのキーを返します。これにより、SLAS が署名キーをローテーションする場合でも JWT を検証できます。

パフォーマンスを向上させ、レート制限を回避するには、署名キーのキャッシュを検討してください。トークンのデコードに失敗した場合は、キャッシュを無効にし、新しい署名キーを取得して、検証を 1 回だけ 再試行します。

kid “4f3df” は JWKS 出力に含まれていないことに注意してください。JWT は引き続き検証されます。

kid “a5fdc” が JWKS 出力で見つかり、署名が検証されることに注意してください。