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

# Auth0データベース接続のパスワード強度

> Auth0のパスワード強度機能を使用すると、ユーザーのサインアップ時に入力されるパスワードの強制的な複雑さのレベルをカスタマイズできます。Auth0は、OWASPパスワード推奨事項に準拠した5つのセキュリティレベルを提供します。

<Warning>
  **パスワードの強度** 機能を利用できるのはデータべース接続に対してのみです。ソーシャル・エンタープライズ接続でのパスワードの複雑さは、各プロバイダーによって規定されます。
</Warning>

認証にパスワードを使用する場合、パスワードの強度が重要な懸念事項となります。強力なパスワードポリシーにより、手動または自動で誰かがパスワードを推測することは、不可能ではないにしても困難になります。

強力なパスワードとは、次のような特徴を持つパスワードを指します。

* **パスワードの長さ** ：パスワードが長くなると、文字の組み合わせが多くなり、推測が難しくなります。10文字未満のパスワードは弱いとみなされます。
* **パスワードの複雑さ** ：大文字と小文字、数字、特殊文字を組み合わせたパスワードが推奨されます。
* **パスフレーズ** ：文章や単語の組み合わせは、通常のパスワードよりもはるかに長くなりますが、覚えやすくなります。

## パスワードポリシー

Auth0のパスワード強度機能を使用すると、ユーザーのサインアップ時に入力されるパスワードの強制的な複雑さのレベルをカスタマイズできます。Auth0は、[OWASPパスワード推奨事項](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Authentication_Cheat_Sheet.md)に準拠した5つのセキュリティレベルを提供します。

各レベルで、新しいパスワードは次の基準を満たす必要があります。

* **なし** （デフォルト）：任意のタイプの文字が少なくとも1つ。
* **低**：少なくとも6文字。
* **適正** ：小文字、大文字、数字を含む8文字以上。
* **良好** ：小文字、大文字、数字、特殊文字（`!@#$%^&*`など）の4種類の文字のうち少なくとも3種類を含む8文字以上。
* **優秀** ：小文字、大文字、数字、特殊文字（`!@#$%^&*`など）の4種類の文字のうち少なくとも3種類を含む10文字以上。連続する同一文字は2文字までです（例：`111`は許可されません）。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Auth0 Dashboard管理者のパスワードポリシーは、**Fair（普通）** レベルとして設定された基準を反映します。
</Callout>

## パスワードの最小長

[「パスワードポリシー」のセクション](#password-policies)で説明されているポリシー強度要件とは関係なく、パスワードの最小長要件を設定できます。

設定可能なパスワードの最小長は1バイト、最大長は72バイトです。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  上限は、使用しているパスワードハッシュアルゴリズムによって異なります。
</Callout>

より高いレベルのパスワードポリシーを選択しても、最小長の値を指定しない場合は、ポリシーレベルのパスワード最小長が自動的に使用されます。

| パスワードポリシーレベル     | パスワードの最小の長さ |
| ---------------- | ----------- |
| None（非常に弱い）      | 1           |
| Low（弱い）          | 6           |
| Fair（中）          | 8           |
| Good（強い）         | 8           |
| Excellent（非常に強い） | 10          |

パスワードの最小長を指定した場合、この値はパスワードポリシーで指定された値よりも優先されます。

### ユニバーサルログインページを使用する場合のパスワードの最小長

[ユニバーサルログインページ](/docs/ja-jp/authenticate/login/auth0-universal-login)または[ユニバーサルログインパスワードリセットページ](/docs/ja-jp/customize/login-pages/classic-login/customize-password-reset-page)のいずれかを使用しており、パスワードの最小長の値を設定する場合は、[Auth0 Dashboard](https://manage.auth0.com/#)を使用していくつかの追加の構成手順を完了する必要があります。

#### ホストされたパスワードリセットページを使用する場合のパスワードの最小長を設定する

[カスタマイズされたパスワードリセットページ](/docs/ja-jp/customize/login-pages/classic-login/customize-password-reset-page)を使用しており、パスワードの長さパラメーターを設定する場合は、次の手順を実行する必要があります。

1.テンプレートを更新してライブラリバージョン1.5.1以降を含める
2.新しいパラメーターを活用するために`password_complexity_options`を追加する

パスワードリセットページを更新しない場合、Auth0はパスワード最小長を設定する試みを無視します。

##### ステップ1：パスワード変更ライブラリのバージョンを更新する

新しいパスワードの最小長機能を使用するには、使用するパスワード変更ライブラリをバージョン1.5.1（またはそれ以降）に更新する必要があります。

```lines theme={null}
<script src="https://cdn.auth0.com/js/change-password-1.5.1.min.js"></script>
```

##### ステップ2：新しいパラメーターを活用するためにpassword\_complexity\_optionsを追加する

新しいパラメーターを活用するために`password_complexity_options`を追加する必要があります。次のように、このオプションをページのスクリプトに追加します。

```lines theme={null}
<script>
    //code omitted for brevity
    new Auth0ChangePassword({
    container:                    "change-password-widget-container",     // required
    email:                        '{{email}}',                            // DO NOT CHANGE THIS
    csrf_token:                   '{{csrf_token}}',                       // DO NOT CHANGE THIS
    ticket:                       '{{ticket}}',                           // DO NOT CHANGE THIS
    password_policy:              '{{password_policy}}',                  // DO NOT CHANGE THIS
    password_complexity_options:  {{password_complexity_options}}         // DO NOT CHANGE THIS

    //code omitted for brevity

  });
</script>
```

一番下までスクロールして **［Save（保存）］** を選択します。

#### ユニバーサルログインページを使用する場合のパスワードの最小長を設定する

カスタマイズされた[ログインページ](/docs/ja-jp/authenticate/login/auth0-universal-login)を使用しており、パスワードの長さパラメーターを設定する場合は、[Lockバージョン11.9以降を使用するようにページを更新する](/docs/ja-jp/authenticate/login/auth0-universal-login/universal-login-vs-classic-login/classic-experience)必要があります。

```lines theme={null}
<script src="https://cdn.auth0.com/js/lock/11.9/lock.min.js"></script>
```

一番下までスクロールして **［Save（保存）］** を選択します。

## ポリシーを変更

パスワード長さポリシーを変更するには、[［Auth0 Dashboard（Auth0ダッシュボード）］>［Authentication（認証）］>［Database（データベース）］](https://manage.auth0.com/#/connections/database)の順に移動します。更新するデータベース接続を選択し、「認証方法」タブを選択します。パスワードセクションで「構成」を選択し、**パスワードの強度** セクションを見つけます。

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/Sm-rZzBGG9mhReiN/docs/images/ja-jp/cdy7uua7fh8z/5DaTBH1ILrFFYXYPQzaxgl/2e7eb61516ff91005292dbaceaf0cc56/2025-01-13_14-56-44.png?fit=max&auto=format&n=Sm-rZzBGG9mhReiN&q=85&s=060dbf75b26579f308ce6b3e58cc0f57" alt="Auth0 Database Authentication - Password Policy - Password Strength" width="1062" height="1105" data-path="docs/images/ja-jp/cdy7uua7fh8z/5DaTBH1ILrFFYXYPQzaxgl/2e7eb61516ff91005292dbaceaf0cc56/2025-01-13_14-56-44.png" />
</Frame>

新しいポリシーは、以降のすべてのユーザーサインアップとパスワード変更に適用されます。ユーザーが必要な基準に一致しないパスワードを入力した場合、そのパスワードはAuth0によって拒否され、ユーザーはこれらの要件に準拠するパスワードを作成するように求められます。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  ポリシーの変更前に作成された既存のパスワードは、引き続き検証されます。
</Callout>

### ロック

パスワードポリシーを有効にすると、パスワードが必要な基準を満たしていない場合は、サインアップおよびパスワードロックモードのリセット時にユーザーに通知されます。

デスクトップ上のロックの表示は次のようになります。

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/CVqyjpVc9VVKbCsn/docs/images/ja-jp/cdy7uua7fh8z/3BOFON1gZiWRHl4Foybm5H/98d045d03e2b497a0eb389168f89978d/7cmjQFY45M.png?fit=max&auto=format&n=CVqyjpVc9VVKbCsn&q=85&s=2d7d64c961c8231db8e1140e37104e63" alt="Auth0 Lock Password Strength checks on Desktop" width="293" height="393" data-path="docs/images/ja-jp/cdy7uua7fh8z/3BOFON1gZiWRHl4Foybm5H/98d045d03e2b497a0eb389168f89978d/7cmjQFY45M.png" />
</Frame>

モバイルの場合：

<Frame>
  <img src="https://mintcdn.com/docs-dev-actions-triggers-prototype/w3k2AH_K7Myvi2qD/docs/images/ja-jp/cdy7uua7fh8z/01rh02vYW6lBjOxBFh7HVC/619b3cea2e916987e4cfb0d1a835530b/moUbn4XXxR.png?fit=max&auto=format&n=w3k2AH_K7Myvi2qD&q=85&s=e2d2b24c990cd7217677bc3606461040" alt="設定します0 ラッキョウ文芸的プログラミングバッファオーバーラン正直の頭に神宿るつる座ホルムアルデヒド" width="317" height="478" data-path="docs/images/ja-jp/cdy7uua7fh8z/01rh02vYW6lBjOxBFh7HVC/619b3cea2e916987e4cfb0d1a835530b/moUbn4XXxR.png" />
</Frame>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  入力したパスワードがAuth0に拒否されると、通知が英語で表示されます。通知を別の言語で表示したい場合は、クライアント側で翻訳する必要があります。
</Callout>

## カスタムサインアップエラー

サインアップエラーが発生すると、`400` HTTPステータスコードが返されます。パスワードが選択したパスワードポリシーの基準を満たしていない場合、JSON応答には`code: invalid_password`が含まれます。

応答には、選択されたパスワードのどこが間違っているかをユーザーに案内するために使用できる追加情報も含まれます。

* `message`は、`printf`関数（またはNode.js `util.format`）を使用してフォーマットする準備が整いました。
* `format`は、`message`内で使用される値を含む配列です。（`message`は`format`とは別になっているため、カスタムUIでのエラーメッセージのi18nが容易になります。）
* `verified`は`true`または`false`のいずれかになります。ルールに違反した場合は`false`を返します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  一部のルールは複合ルールです。ルールには、どのサブルールが失敗したかを示す`items`（項目）フィールドが含まれることがあります。各サブルールには、`message`（と、必要に応じて`format`）があります。
</Callout>

### 例

これは、パスワードが`hello`である`良好`なポリシーからのサンプルの`description`エラーレポートです。

```json lines theme={null}
{
  "rules":[
    {
      "message":"At least %d characters in length",
      "format":[8],
      "verified":false
    },
    {
      "message":"Contain at least %d of the following %d types of characters:",
      "format":[3,4],
      "items":[
        {
          "message":"lower case letters (a-z)",
          "verified":true
        },
        {
          "message":"upper case letters (A-Z)",
          "verified":false
        },
        {
          "message":"numbers (such as 0-9)",
          "verified":false
        },
        {
          "message":"special characters (such as !@#$%^&*)",
          "verified":false
        }
      ],
      "verified":false
    }
  ],"
  verified":false
}
```

これは、パスワードが`hello1234`である`良好`なポリシーからのサンプルの`description`エラーレポートです。

```json lines theme={null}
{
    "rules":[
      {"message":"At least %d characters in length","format":[8],"verified":true},
      {"message":"Contain at least %d of the following %d types of characters:","format":[3,4],
        "items":[
          {"message":"lower case letters (a-z)","verified":true},
          {"message":"upper case letters (A-Z)","verified":false},
          {"message":"numbers (such as 0-9)","verified":true},
          {"message":"special characters (such as !@#$%^&*)","verified":false}
        ],"verified":false}
      ],"
      verified":false
    }
```

## パスワードオプション

ここで説明したパスワード強度機能に加えて、データベース接続のパスワードポリシー設定には、接続のパスワードポリシーをさらに強化し、ユーザーがより安全なパスワードを使用できるようにするさまざまなパスワードオプションも含まれています。詳細については、「[パスワードオプション](/docs/ja-jp/authenticate/database-connections/password-options)」をお読みください。
