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 を検証するには、次のようにします。
- SLAS JWKS エンドポイントから JWKS を取得します。
- JWT のヘッダーを解析した後、キー ID (
kid
) を取得します。 kid
と一致するキーを JWKS で見つけます。- 一致する公開鍵を使用して JWT 署名を検証します。
新しく作成されたテナントの場合、SLAS JWKS エンドポイントは通常 2 つのキーを返します。キーの最初の正常なローテーションが完了した後、それ以降、エンドポイントはテナントごとに 3 つのキーを返します。これにより、SLAS が署名キーをローテーションする場合でも JWT を検証できます。
パフォーマンスを向上させ、レート制限を回避するには、署名キーのキャッシュを検討してください。トークンのデコードに失敗した場合は、キャッシュを無効にし、新しい署名キーを取得して、検証を 1 回だけ 再試行します。
kid
“4f3df” は JWKS 出力に含まれていないことに注意してください。JWT は引き続き検証されます。
kid
“a5fdc” が JWKS 出力で見つかり、署名が検証されることに注意してください。