> ## 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 のデータベース接続向けに Flexible Password Policy を設定する

> Flexible Password Policy を使用して、Auth0 のデータベース接続のパスワード強度と構成ルールを定義します。

Flexible Password Policy は、よりきめ細かな制御と設定オプションを提供するために、[レガシー パスワードポリシー](/docs/ja-jp/authenticate/database-connections/password-options) に置き換わるものです。

| ポリシー       | レガシーでの動作                                                                   | Flexible Password Policy での動作                                           |
| ---------- | -------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| パスワード強度    | 複雑さについて、あらかじめ用意された 5 段階のレベルから選択します。<br /><br />最大長を超えたパスワードは、通知なく切り捨てられます。 | 複雑さの各要件を個別にカスタマイズできます。<br /><br />最大長を超えたパスワードの扱いを選択できます (切り捨てまたはエラー) 。 |
| パスワード履歴    | ユーザーが再利用できない過去のパスワード数を、最大 24 個まで設定できます。                                    | 同等の機能を備えています。                                                           |
| パスワード辞書    | 10,000 語の一般的な単語を収録した組み込み辞書を 1 つ使用します。                                      | 10,000 語または 100,000 語の一般的な単語を収録した 2 つの組み込み辞書から選択できます。                   |
| 個人データをブロック | ユーザーデータ内の特定の固定フィールドをブロックします。                                               | ブロックするフィールドを最大 12 個まで自由にカスタマイズできます。                                     |

また、データベース接続用の Management API の構成スキーマでは、Flexible Password Policy により、レガシー パスワードポリシーの `options` オブジェクトと属性も、単一の設定可能な `options.password_options` オブジェクトに置き換えられます。

<div id="prerequisites">
  ## 前提条件
</div>

Flexible Password Policy を使用するには、次の要件を満たしている必要があります。

* Auth0 のユーザーストア (`"strategy": "auth0"`) を利用するデータベース接続を使用している必要があります。

* テナントで Universal Login を使用している必要があります。

* テナントにカスタムのパスワードリセット画面が設定されていてはなりません。

* Management API を使用する場合、アクセストークンに `read:connections` と `update:connections` のスコープが含まれている必要があります。これらがないと、データベース接続の設定を取得または変更することは、それぞれできません。

<div id="enable-the-flexible-password-policy">
  ## Flexible Password Policy を有効にする
</div>

Flexible Password Policy は、Auth0 Dashboard または Management API から有効にできます。

<Tabs>
  <Tab title="Auth0 Dashboard">
    Auth0 Dashboard から Flexible Password Policy を有効にするには、次の手順を実行します。

    1. [Auth0 Dashboard > Authentication > Database](https://manage.auth0.com/#/connections/database) に移動し、編集する接続名を選択します。

    2. **認証方法** タブを選択します。次に、**パスワード** セクションで **Configure** を選択して **Password** パネルを開きます。

    3. 上部の Flexible Password Policy バナーで **Activate** を選択し、続けて **Confirm** を選択します。

    これにより、データベース接続の既存のパスワードポリシーがレガシー構成から Flexible Password Policy 構成に変換され、**認証方法** タブに戻ります。

    同じ **認証方法 > パスワード > Configure** パネルに、Flexible Password Policy の設定オプションが **Policy**、**Composition**、**Security** の 3 つのセクションに表示されます。

    <AccordionGroup>
      <Accordion title="ポリシー設定">
        **Policy** セクションには、次の設定があります。

        * **Password for login**: ユーザーがパスワードでログインできるようにするか、ブロックするかを設定します。

        * **Password on signup**: ユーザーがパスワードでサインアップできるようにするか、ブロックするかを設定します。

        * **Self-service change password**: ユーザー自身によるパスワード変更を許可するか、ブロックするかを設定します。

        * **Support users without a password**: Management API と Authentication API を使用して、パスワードなしでユーザーを作成できるようにするかどうかを切り替えます。
      </Accordion>

      <Accordion title="構成設定">
        **Composition** セクションには、次の設定があります。

        * **Minimum password length**: 最小パスワード長を入力します。

        * **Additional composition rules**

          * **Required password options**: 少なくとも 1 つの大文字、少なくとも 1 つの小文字、少なくとも 1 つの数字、少なくとも 1 つの特殊文字、または前述の 4 種類の文字タイプのうち少なくとも 3 種類を必須にします。

          * **Block three or more sequential characters**: ABC や 321 のような、3 文字以上の連続した文字をブロックします

          * **Block three or more identical characters in a row**: 000 のような、同じ文字が 3 文字以上連続するものをブロックします

          * **Maximum password length exceeded**: 72 バイトを超えるパスワードについて、**Truncate password** (長いパスワードを許可するが、最初の 72 バイトのみを暗号化) または **Show error** (72 バイトを超えるパスワードを拒否) のいずれかを選択します。
      </Accordion>

      <Accordion title="セキュリティ設定">
        **Security** セクションには、次の設定があります。

        * **Password history**: パスワードの再利用を防止します。

          * **Password history size**: ユーザーが再利用できない過去のパスワード数を選択します。

        * **Password dictionary**: 指定した辞書、または追加した辞書エントリに含まれるパスワードをユーザーが使用できないようにします。

          * **Default dictionary**: [10,000 common words](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt) 辞書または [100,000 common words](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/100k-most-used-passwords-NCSC.txt) 辞書のいずれかを選択します。

          * **Additional dictionary entries**: 追加の禁止パスワードを 1 行に 1 つずつ入力します。

        * **Block profile data in passwords**: ユーザーのプロファイルデータを含むパスワードを設定できないようにします。

          * **Select profile fields to block**: ブロックする 8 つの一般的なデフォルトフィールドから選択します。

          * **Additional profile fields to block**: ブロックする追加のプロファイルフィールドを入力します。
      </Accordion>
    </AccordionGroup>

    これらの設定を変更したら、**Save** をクリックします。
  </Tab>

  <Tab title="Management API">
    データベース接続の構成では、`options` オブジェクトにパスワードポリシーの設定が含まれています。Flexible Password Policy では、`options` 内のレガシーなパスワードオブジェクトや属性が、より細かな設定が可能な単一のオブジェクト (`options.password_options`) に置き換えられます。

    Management API を使用して Flexible Password Policy を有効にするには、次の手順に従います。

    <Steps>
      <Step title="現在のデータベース接続の構成を取得する">
        まず、[Get a connection endpoint](https://auth0.com/docs/api/management/v2/connections/get-connections-by-id) を使用して、データベース接続の現在の構成を取得します。

        レスポンスに含まれる構成全体を保存してください。レスポンス本文のスキーマは、エンドポイントのドキュメントで確認できます。
      </Step>

      <Step title="レガシー設定を Flexible Password Policy の設定に置き換える">
        構成の `options` オブジェクトで、以下のレガシーなパスワードオブジェクトと値を削除したうえで、必要な Flexible Password Policy の構成を含む単一の `password_options` オブジェクトを追加します。

        | Legacy `options` attribute    | Flexible Password Policy `options` attribute |
        | ----------------------------- | -------------------------------------------- |
        | `password_complexity_options` | `password_options.complexity`                |
        | `password_history`            | `password_options.history`                   |
        | `password_no_personal_info`   | `password_options.profile_data`              |
        | `password_dictionary`         | `password_options.dictionary`                |
        | `passwordPolicy`              | Removed                                      |

        たとえば、次の 2 つの `options` のパスワード構成は同等です。

        <Columns cols={2}>
          <div>
            ```json Legacy password policy example theme={null}
            "password_history": {
                "enable": true,
                "size": 5
            },
            "password_dictionary": {
                "enable": true,
                "dictionary": [
                    "badPassword",
                    "reallyBadPassword"
                ]
            }
            ```
          </div>

          <div>
            ```json Flexible Password Policy example theme={null}
            "password_options": {
                "history": {
                    "active": true,
                    "size": 5
                },
                "dictionary": {
                    "active": true,
                    "default": "en_10k",
                    "custom": [
                        "badPassword",
                        "reallyBadPassword"
                    ]
                }
            }
            ```
          </div>
        </Columns>

        `password_options` オブジェクトの完全なスキーマは、API リファレンス ([Update a connection endpoint](https://auth0.com/docs/api/management/v2/connections/patch-connections-by-id) の body parameters など) で確認できます。
      </Step>

      <Step title="必要に応じて他のパスワード設定も更新する">
        `password_options` オブジェクト外にある他のパスワード属性は変更されませんが、Auth0 Dashboard の Flexible Password Policy 設定には表示されます。

        | Management API `options` attribute                | Auth0 Dashboard setting                   |
        | ------------------------------------------------- | ----------------------------------------- |
        | `authentication_methods.password.enabled`         | Policy > Password for login               |
        | `authentication_methods.password.signup_behavior` | Policy > Password on signup               |
        | `authentication_methods.password.api_behavior`    | Policy > Support users without a password |
        | `disable_self_service_change_password`            | Policy > Self-service change password     |

        必要に応じて、これらの属性を更新して構成を変更できます。
      </Step>

      <Step title="データベース接続を更新する">
        [Update a connection endpoint](https://auth0.com/docs/api/management/v2/connections/patch-connections-by-id) を使用してデータベース接続を更新します。

        <Warning>
          このエンドポイントは、送信した構成で既存の構成を上書きします。そのため、データベース接続の他の設定を保持するには、変更後のオブジェクト全体を `PATCH` リクエストに含めてください。
        </Warning>
      </Step>
    </Steps>

    更新後は、[Get a connection endpoint](https://auth0.com/docs/api/management/v2/connections/get-connections-by-id) を使って再度データベース接続の構成を取得することで確認できます。レスポンスに `options.password_options` オブジェクトが含まれていれば、そのデータベース接続では Flexible Password Policy が有効になっています。
  </Tab>
</Tabs>

<div id="revert-to-the-legacy-password-policies">
  ## レガシーパスワードポリシーに戻す
</div>

レガシーパスワードポリシーに戻すには、Management API を使用する必要があります。

上記と同じ手順に従って、データベース接続を元の `options` で更新し、`password_options` オブジェクト全体を削除します。
