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

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

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

  • パスワードの長さ:パスワードが長くなると、文字の組み合わせが多くなり、推測が難しくなります。10文字未満のパスワードは弱いとみなされます。

  • パスワードの複雑さ:大文字と小文字、数字、特殊文字を組み合わせたパスワードが推奨されます。

  • パスフレーズ:文章や単語の組み合わせは、通常のパスワードよりもはるかに長くなりますが、覚えやすくなります。

パスワードポリシー

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

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

  • なし(デフォルト):任意のタイプの文字が少なくとも1つ。

  • :少なくとも6文字。

  • 適正:小文字、大文字、数字を含む8文字以上。

  • 良好:小文字、大文字、数字、特殊文字(!@#$%^&*など)の4種類の文字のうち少なくとも3種類を含む8文字以上。

  • 優秀:小文字、大文字、数字、特殊文字(!@#$%^&*など)の4種類の文字のうち少なくとも3種類を含む10文字以上。連続する同一文字は2文字までです(例:111は許可されません)。

パスワードの最小長

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

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

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

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

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

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

ユニバーサルログインページまたはユニバーサルログインパスワードリセットページのいずれかを使用しており、パスワードの最小長の値を設定する場合は、Auth0 Dashboardを使用していくつかの追加の構成手順を完了する必要があります。

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

カスタマイズされたパスワードリセットページを使用しており、パスワードの長さパラメーターを設定する場合は、次の手順を実行する必要があります。

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

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

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

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

<script src="https://cdn.auth0.com/js/change-password-1.5.1.min.js"></script>

Was this helpful?

/

ステップ2:新しいパラメーターを活用するためにpassword_complexity_optionsを追加する

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

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

Was this helpful?

/

一番下までスクロールして[Save(保存)]を選択します。

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

カスタマイズされたログインページを使用しており、パスワードの長さパラメーターを設定する場合は、Lockバージョン11.9以降を使用するようにページを更新する必要があります。

<script src="https://cdn.auth0.com/js/lock/11.9/lock.min.js"></script>

Was this helpful?

/

一番下までスクロールして[Save(保存)]を選択します。

ポリシーを変更

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

Auth0 Database Authentication - Password Policy - Password Strength

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

ロック

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

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

Auth0 Lock Password Strength checks on Desktop

モバイルの場合:

_設定します0 ラッキョウ文芸的プログラミングバッファオーバーラン正直の頭に神宿るつる座ホルムアルデヒド_

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

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

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

  • messageは、printf関数(またはNode.js util.format)を使用してフォーマットする準備が整いました。

  • formatは、message内で使用される値を含む配列です。(messageformatとは別になっているため、カスタムUIでのエラーメッセージのi18nが容易になります。)

  • verifiedtrueまたはfalseのいずれかになります。ルールに違反した場合はfalseを返します。

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

{
  "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
}

Was this helpful?

/

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

{
    "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
    }

Was this helpful?

/

パスワードオプション

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