メインコンテンツへスキップ
署名鍵を定期的に手動でローテーションして、アプリケーションやAPIがトークンの検証に使用するJSON Web Key(JWK)を変更することができます。アプリケーションまたはAPIがこのキー変更を許可せず 、トークンの検証に期限の切れた署名鍵を使おうとした場合は、認証要求が失敗します。
Auth0では、最初に開発テナントで署名鍵のローテーションを実行して、アプリケーションとAPIの動作が引き続き正常かどうかを確認することをお勧めしています。適切に機能していることが確認できたら、同じ署名鍵のローテーションを運用テナントで実行します。
Auth0は一度に1つの署名鍵しか署名しませんが、テナントの Connect(OIDC)ディスカバリーには常に複数のキーが含まれています。OIDCディスカバリーには常に現在のキーと次のキーの両方が含まれています。以前のキーが取り消されていない場合には、それも含まれています。緊急の状況でも速やかに動作するように、アプリケーションがディスカバリーにあるどのキーでも使用できるようにしておきます。OpenID Connectディスカバリーについては、「JSON Web Key Setを見つける」をお読みください。
新しい署名鍵を使ったアプリケーションの更新を、余裕をもって実行できるようにするため、以前の鍵を取り消すまでその鍵で署名したトークンが無効にならないようになっています。詳細については、「署名鍵を取り消す」をお読みください。
を使用すると、テナントのアプリケーションの署名鍵をローテーションすることができます。

Dashboardの使用

  1. [Dashboard]>[Settings(設定)]>[Signing Keys(署名鍵)]に移動します。
    Dashboard テナントの設定 署名鍵タブ
  2. [Rotation Settings(ローテーション設定)] の下から、[Rotate Signing Key(署名鍵のローテーション)] を見つけ、[Rotate Key(キーのローテーション)] を選択します。
  3. [Rotate(ローテーション)] をクリックして確定します。
    Dashboard 設定 署名鍵タブ ローテーションの確認

Management APIの使用

  1. 署名鍵のリストを取得するには、全アプリケーション署名鍵の取得エンドポイントにGET呼び出しを行います。
  2. 署名鍵をローテーションするには、アプリケーション署名鍵のローテーションエンドポイントにPOST呼び出しを行います。MGMT_API_ACCESS_TOKENプレースホルダーの値をManagement APIのアクセストークンで置き換えてください。
    curl --request POST \
       --url 'https://{yourDomain}/api/v2/keys/signing/rotate' \
       --header 'authorization: Bearer {yourMgmtApiAccessToken}'
    
    説明
    MGMT_API_ACCESS_TOKENcreate:signing_keysupdate:signing_keysのスコープを持つManagement APIのアクセストークン

キーのローテーションによる影響

アクセストークンを受け入れるAPIとAPIゲートウェイ

ほとんどのミドルウェアとAPIゲートウェイは、JSON Web Key Set(JWKS)エンドポイントを利用して、特定の間隔で現在の署名鍵と次の署名鍵を取得します。ミドルウェアやAPIゲートウェイがこのエンドポイントをサポートしておらず*.cerファイルの手動設定が必要な場合は、Auth0での署名キーのローテーションとミドルウェアおよびゲートウェイの再構成を調整する必要があります。

通常のWebアプリケーション

Auth0で署名鍵をローテーションする場合には、を利用するアプリケーションを再構成して調整する必要があります。これは通常、新しい公開証明書のアップロードや、WS-Fed/SAMLメタデータURLを追加してアプリケーションを再構成した際に起こります。これにより、アプリケーションがトークンの検証に使用するJWKSキーが変更されてしまいます。実装でJWKSキーが変わらないと想定されていないことを確認してください。

もっと詳しく

I