> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Auth0 Dashboard で既存の認証情報をローテーションする方法について説明します。

# 認証情報のローテーション

Auth0 では、コンプライアンス要件を満たし、秘密鍵の漏えいによってセキュリティが損なわれることを防ぐために、鍵マテリアルを定期的にローテーションすることを推奨しています。<Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要な製品です。" cta="用語集を見る" href="/ja/docs/glossary?term=Auth0+Dashboard">Auth0 Dashboard</Tooltip> または <Tooltip tip="Auth0 Dashboard: サービスを設定するための Auth0 の主要な製品です。" cta="用語集を見る" href="/ja/docs/glossary?term=Management+API">Management API</Tooltip> を使用して、新しい鍵に切り替えることができます。新しい認証情報を作成し、それを `private_key_jwt` 認証方法に関連付けて、古い認証情報または未使用の認証情報を削除する必要があります。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  現在、アプリケーションに保存できる認証情報は同時に 2 つまでです。新しい認証情報を繰り返しローテーションするには、未使用の認証情報を削除する必要があります。
</Callout>

<Tabs>
  <Tab title="Auth0 Dashboard を使用">
    Auth0 Dashboard を使用してアプリケーションの認証情報をローテーションするには、次の手順に従います。

    1. [**Auth0 Dashboard > Applications > Application**](https://manage.auth0.com/#/applications) に移動し、更新するアプリケーションを選択します。
    2. **Credentials** タブに切り替えます。
    3. **Available Credentials** セクションで、**Add New Key** を選択します。
    4. 新しい認証情報の名前、PEM 形式の公開鍵、およびその認証情報のアルゴリズムを設定します。
    5. **Add Credential** を選択します。
    6. 新しい認証情報を有効にするには、その認証情報のメニューに移動し、**Enable for Private Key JWT use** を選択します。
    7. アプリケーションが新しい認証情報を使用するよう更新したら、元の認証情報を無効にします。

       1. **Disable for Private Key JWT Use** を選択します。
       2. 無効にしたら、認証情報のメニューに戻って **Delete Credential** を選択します。
  </Tab>

  <Tab title="Management API を使用">
    以下のローテーション例では、`credential1` は現在使用中の既存の認証情報、`credential2` はそれを置き換える新しい認証情報です。

    1. 新しいキーペアを生成します。

    2. Management API に `POST` リクエストを送信して、認証情報リソースを作成します。

           <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
             現在、アプリケーションに保存できる認証情報は同時に 2 つまでです。新しい認証情報を繰り返しローテーションするには、未使用の認証情報を削除する必要があります。
           </Callout>

    3. Management API の [Update a Client](https://auth0.com/docs/api/management/v2#!/Clients/patch_clients_by_id) エンドポイントに PATCH リクエストを送信し、認証方法 `private_key_jwt` に認証情報を関連付けます。

       ```bash lines theme={null}
       curl --location --request PATCH 'https://{domain}/api/v2/clients/{clientId} \
         --header 'Authorization: Bearer {managementApiAccessToken} \
         --header 'Content-Type: application/json' \
         --data-raw '{
                 "client_authentication_methods": {
                    "private_key_jwt": {
                       "credentials": [{ "id": {credentialId1} }, { "id": {credentialId2} }]
                    }
                 }
          }'
       ```

       | パラメーター                     | 説明                                                                                                                                                |
       | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
       | `clientId`                 | 更新するアプリケーション。                                                                                                                                     |
       | `credentialId1`            | 現在使用中の既存の認証情報の ID。                                                                                                                                |
       | `credentialId2`            | 新しい認証情報の ID。                                                                                                                                      |
       | `managementApiAccessToken` | スコープ `update:clients` および `update:credentials` を持つ [Management API のアクセストークン](/ja/docs/secure/tokens/access-tokens/management-api-access-tokens)。 |

    4. 新しい秘密鍵を使用して Auth0 Authentication API 用のアサーションに署名するよう、アプリケーションを更新します。

    5. アプリケーションから未使用の鍵を削除します。

       ```bash lines theme={null}
       curl --location --request PATCH 'https://{domain}/api/v2/clients/{clientId} \
         --header 'Authorization: Bearer $management_access_token' \
         --header 'Content-Type: application/json' \
         --data-raw '{
                 "client_authentication_methods": {
                    "private_key_jwt": {
                       "credentials": [{ "id": {credentialId2} }]
                    }
                 }
          }'
       ```

    6. アプリケーションから未使用の鍵を削除します。これにより、認証情報はストレージから完全に削除されます。認証情報を削除するには、先にアプリケーションとの関連付けを解除する必要があります。解除しないと削除できません。

       ```bash lines theme={null}
       curl --location --request DELETE 'https://{domain}/api/v2/clients/{clientId}/credentials/{credentialId}' \
         --header 'Authorization: Bearer {managementApiAccessToken}
       ```

       | パラメーター                     | 説明                                                                                                                            |
       | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
       | `clientId`                 | 更新するアプリケーション。                                                                                                                 |
       | `credentialId`             | 削除する古い認証情報の ID。                                                                                                               |
       | `managementApiAccessToken` | スコープ ` delete:credentials` を持つ [Management API のアクセストークン](/ja/docs/secure/tokens/access-tokens/management-api-access-tokens)。 |
  </Tab>
</Tabs>

<div id="active-credentials">
  ### 有効な認証情報
</div>

ダウンタイムを発生させないようにするため、ローテーション中は複数の認証情報を有効な状態のままにしておくことができます。キーが更新されるまで、アプリケーションは古いキーを使用して通常どおり動作できます。アプリケーションは、有効な認証情報のいずれの組み合わせでも署名付きアサーションを送信できます。

Auth0 では、複数の認証情報を同時に使用する期間はできるだけ短くすることを推奨しています。以下の例では、関連する複数の認証情報を使用しています。

```bash lines theme={null}
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 }]
             }
          }
 }'
```

<div id="learn-more">
  ## 詳しく見る
</div>

* [Private Key JWT 認証の設定](/ja/docs/get-started/applications/configure-private-key-jwt)
* [アプリケーションの認証情報](/ja/docs/secure/application-credentials)
* [認証情報の設定](/ja/docs/get-started/applications/credentials)
