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によって拒否され、ユーザーはこれらの要件に準拠するパスワードを作成するように求められます。
ロック
パスワードポリシーを有効にすると、パスワードが必要な基準を満たしていない場合は、サインアップおよびパスワードロックモードのリセット時にユーザーに通知されます。
デスクトップ上のロックの表示は次のようになります。

モバイルの場合:

カスタムサインアップエラー
サインアップエラーが発生すると、400
HTTPステータスコードが返されます。パスワードが選択したパスワードポリシーの基準を満たしていない場合、JSON応答にはcode: invalid_password
が含まれます。
応答には、選択されたパスワードのどこが間違っているかをユーザーに案内するために使用できる追加情報も含まれます。
message
は、printf
関数(またはNode.jsutil.format
)を使用してフォーマットする準備が整いました。format
は、message
内で使用される値を含む配列です。(message
はformat
とは別になっているため、カスタムUIでのエラーメッセージのi18nが容易になります。)verified
はtrue
または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?
パスワードオプション
ここで説明したパスワード強度機能に加えて、データベース接続のパスワードポリシー設定には、接続のパスワードポリシーをさらに強化し、ユーザーがより安全なパスワードを使用できるようにするさまざまなパスワードオプションも含まれています。詳細については、「パスワードオプション」をお読みください。