各組織では、独自のセキュリティ要件に沿った以下のようなパスワード要件があると思います。
- パスワードの長さ
- パスワードの複雑性
- パスワードの履歴
例えば「P@ssw0rd」というパスワードはどうでしょう?
長さや履歴はともかく複雑性は満たしているように見えますが、推測されやすいパスワードです。
このようなパスワードを禁止するためには今までのパスワード要件では実現出来ません。
今回はAzure ADでカスタムの禁止パスワードを設定する方法を紹介します。
1.Azure ADの禁止パスワードのリストとは?
Azure ADで管理しているユーザーに対して、単純だったり推測されやすいパスワードの利用を禁止するためのリストです。
Azure ADには以下の2種類の禁止パスワードのリストがあります。
- グローバル禁止パスワード
- カスタムの禁止パスワード
1.1.グローバル禁止パスワード
グローバル禁止パスワードはデフォルトでAzure ADテナントの全てのユーザーに適用され、この機能を無効にすることは出来ません。
各テナントで共通のリストを使用しているため、グローバルという名前が付いています。
「password」などのようなグローバルで利用されやすいパスワードが禁止されていると思われます。
1.2.カスタムの禁止パスワード
カスタムの禁止パスワードは組織で独自に禁止したいパスワードがある場合に利用します。
例えば、以下のような企業独自で利用されやすいものを禁止したい場合に有効です。
- 企業名
- ブランド名
- 製品名
カスタムの禁止パスワードはデフォルトでは無効になっており、有効化するにはAzure AD Premiumのライセンスが必要です。
2.パスワードの評価方法
禁止パスワードのリストを基に、実際にどのようにパスワードが評価されているのでしょうか?
本章は個人的な備忘録として簡潔にまとめています。
詳細を知りたい方は下記の公開情報をご覧ください。
Azure Active Directory パスワード保護を使用して不適切なパスワードを排除する
https://docs.microsoft.com/ja-jp/azure/active-directory/authentication/concept-password-ban-bad
2.1.正規化
まず、Azure ADでパスワードが評価される前に、「正規化」と呼ばれる処理が実施されます。
- 全ての文字を小文字に変換
- 形が似た文字を別の文字に置換
前者に関しては大文字と小文字の区別がないため、「PASSWORD」と「password」が同一とみなされるということです。
後者に関しては「@」を「a」、「0(ゼロ)」を「0(オー)」など、代替文字として使われる文字を本来の文字に置換します。
元の文字 | 置換後の文字 |
---|---|
0(ゼロ) | o(オー) |
1(イチ) | l(エル) |
$ | s |
@ | a |
上記2つのルールで正規化すれば、「P@ssw0rd」は「password」とみなされます。
全てのパスワードは評価前にこの正規化処理が実施されます。
2.2.判定方法
正規化が完了したら、パスワードが判定されます。判定方法には下記の3種類あります。
- あいまい一致
- 部分文字列の照合
- スコアの計算
2.2.1.あいまい一致
「あいまい一致」は評価対象パスワードの前後1文字の範囲内で編集したパスワードが、禁止リストに一致するか評価します。
例えば、下記の場合は全て禁止パスワードとみなされ、設定することが出来ません。
禁止パスワード:liglog
- liglo1:末尾の文字を変更
- liglog1:末尾に文字を追加
- liglo:末尾の文字を削除
2.2.2.部分文字列の照合
「部分文字列の照合」は禁止リストではなく、ユーザー名とテナント名で評価されます。
※テナント名は「onmicrosoft.com」の前に付いている文字列です
例えば、下記のユーザー名とテナント名の場合、全て禁止されます。
- ユーザー名:test
- テナント名:liglog
- liglogpass:テナント名が含まれている
- te$tpass:「testpass」に変換、ユーザー名が含まれている
2.2.3.スコアの計算
パスワードが下記のルールに沿って評価されます。
- 禁止パスワード1つにつき1ポイント
- その他の一意の1文字につき1ポイント
- パスワードが許可されるには5ポイント必要
禁止パスワード:liglog、test
下記の場合、分解された結果は合計4ポイントなので拒否されます。
- liglogtest1!:[liglog] + [test] + [1] + [!] = 4
下記の場合、分解された結果は合計5ポイントなので許可されます。
- liglogtest123:[liglog] + [test] + [1] + [2] + [3] = 5
- ligtest!:[l] + [i] + [g] + [test] + [!] = 5
3.カスタムの禁止パスワード有効化
それでは実際にカスタムの禁止パスワード設定を実施します。
3.1.設定方法
1.Azureポータルで「Azure Active Directory」-「セキュリティ」をクリックします。
2.「認証方法」をクリックします。
3.「パスワード保護」をクリックし、「カスタムの禁止パスワード」で下記の通り設定し、「保存」をクリックします。
- カスタムリストの適用:はい
- カスタムの禁止パスワードの一覧:<「2.パスワードの評価方法」を基に任意の値を入力>
3.2.動作確認
実際にカスタムの禁止パスワードに設定したパスワードに変更してみます。
下記の通り「他の人に推測されにくいパスワードを選択してください。」というエラーが表示されれば正常に反映されています。
Azure ADのカスタム禁止パスワードについては以上です。
コメント