資格情報のローテーションを行う

Auth0では、コンプライアンスを強化するため、また、秘密鍵の漏洩によってセキュリティが損なわれないように、定期的な鍵素材のローテーションを推奨しています。Auth0 DashboardManagement APIを使用すると、新しい鍵にローテーションして使うことができます。新しい資格情報を作成し、private_key_jwtでの認証方法と関連付けて、未使用または古い資格情報を削除する必要があります。

Auth0 Dashboardでアプリケーションの資格情報をローテーションする方法:

  1. [Auth0 Dashboard] > [Applications(アプリケーション)] > [Applications(アプリケーション)]に移動し、更新したいアプリケーションを選択します。

  2. [Credentials(資格情報)]タブに切り替えます。

  3. [Available Credentials(利用可能な資格情報)]セクションで、[Add New Key(新しいキーを追加)]を選択します。

  4. 新しい資格情報の名前、PEM形式の公開鍵、新しい資格情報のアルゴリズムを設定します。

  5. [Add Credential(資格情報の追加)]を選択します。

  6. 新しい資格情報を有効にするには、資格情報のメニューに移動し、[Enable for Private Key JWT use(秘密鍵JWTの使用を有効にする)]を選択します。

  7. 新しい資格情報を使用するためにアプリケーションを更新したら、元の資格情報は無効にします。

    1. [Disable for Private Key JWT Use(秘密鍵JWTの使用を無効にする)]を選択します。

    2. 無効にしたら、資格情報のメニューに戻り、[Delete Credential(資格情報の削除)]を選択します。

アクティブな資格情報

ダウンタイムが発生しないように、ローテーション中は複数の資格情報がアクティブであっても構いません。鍵が更新されるまでは、アプリケーションが古い鍵を使用しても正常に動作します。アプリケーションは、アクティブであればどのような資格情報を使っても、署名のあるアサーションを送信することができます。

ただし、複数の資格情報が使われる時間は最小限に留めることをお勧めします。以下は、複数の資格情報を使用している例です。

curl --location --request PATCH 'https://$tenant/api/v2/clients/$client_id' \
  --header 'Authorization: Bearer $management_access_token' \
  --header 'Content-Type: application/json' \
  --data-raw '{
          "client_authentication_methods": {
             "private_key_jwt": {
                "credentials": [{ "id": $credential1.id }, { "id": $credential2.id }]
             }
          }
 }'

Was this helpful?

/

もっと詳しく