> ## 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.

> 移行期間中に 2 つのアクティブなキーを維持することで、ダウンタイムをゼロにしてアプリケーションの Private Key JWT 資格情報をローテーションします。

# 資格情報のローテーション

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

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

<Tabs>
  <Tab title="Auth0 Dashboard を使用">
    Auth0 Dashboard でアプリケーションの資格情報をローテーションするには、次の手順を実行します。

    1. [**Auth0 Dashboard > アプリケーション > アプリケーション**](https://manage.auth0.com/#/applications) に移動し、更新するアプリケーションを選択します。
    2. **Credentials** タブに切り替えます。
    3. **利用可能な資格情報** セクションで、**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. 資格情報を認証方法 `private_key_jwt` に関連付けるには、Management API の [Update a Client](https://auth0.com/docs/api/management/v2#!/Clients/patch_clients_by_id) エンドポイントに PATCH リクエストを送信します。

       ```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} }]
                    }
                 }
          }'
       ```

       | Parameter                  | Description                                                                                                                                           |
       | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
       | `clientId`                 | 更新するアプリケーション。                                                                                                                                         |
       | `credentialId1`            | 現在使用中の既存の資格情報の ID。                                                                                                                                    |
       | `credentialId2`            | 新しい資格情報の ID。                                                                                                                                          |
       | `managementApiAccessToken` | スコープ `update:clients` および `update:credentials` を持つ [Management API 用のアクセストークン](/docs/ja-jp/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}
       ```

       | Parameter                  | Description                                                                                                                      |
       | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
       | `clientId`                 | 更新するアプリケーション。                                                                                                                    |
       | `credentialId`             | 削除する古い資格情報の ID。                                                                                                                  |
       | `managementApiAccessToken` | スコープ `delete:credentials` を持つ [Management API 用のアクセストークン](/docs/ja-jp/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 認証を設定する](/docs/ja-jp/get-started/applications/configure-private-key-jwt)
* [アプリケーションの資格情報](/docs/ja-jp/secure/application-credentials)
* [資格情報の設定](/docs/ja-jp/get-started/applications/credentials)
