Okta内からActive Directory(AD)パスワードの変更を実行すると、ADエージェントがユーザーに代わって変更を実行します。AD内でそのユーザーに対して構成されたパスワードの複雑さの要件が評価され、適用されます。このユーザーの新しいパスワードの設定に適用されるこれらの要件のいずれかが満たされていない場合、ADはパスワードの変更を拒否します。
ユーザーには[Password requirements were not met(パスワードの要件が満たされていません)]というエラーが表示されます。
ADエージェントのログで以下のエラーを確認できます。
2024/11/21 14:57:46.905-06:00 Error -- SERVER(3) -- Exception during Directory Invoke Action 2024/11/21 14:57:46.905-06:00 Info -- SERVER at System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) at Okta.DirectoryServices.ActiveDirectoryAdapter.DirectoryInvoke(String targetDN, String method, List`1 parameters, Boolean useLegacyPolicyHintsControl) System.Reflection.TargetInvocationException received with message Exception has been thrown by the target of an invocation. Source=System.DirectoryServices InnerException=System.Runtime.InteropServices.COMException (0x800708C5): The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements. (Exception from HRESULT: 0x800708C5). Caused by System.Runtime.InteropServices.COMException received with message The password does not meet the password policy requirements. Check the minimum password length, password complexity and password history requirements. (Exception from HRESULT: 0x800708C5) Source= InnerException=.
System Logイベントには、パスワード変更の試みが失敗したことが示されます。
- Active Directory(AD)
- 委任認証
ドメイン内で定義されてユーザーに割り当てられているActive Directoryパスワードポリシーは、パスワードの変更を試みたときに評価されます。ユーザーに異なる要件を課すきめ細かなパスワードポリシーが使用されている可能性があるため、ユーザーにどのパスワードポリシーが適用されているかを確認することが重要です。割り当てられたポリシーのいずれかの要件が満たされていない場合、パスワードの変更は拒否されます。Active Directoryからのエラーメッセージには、どの要件が満たされていないかは示されません。構成される要件には、以下が含まれます。
- パスワード履歴 - 以前のパスワードを再利用できるようになるまでにユーザーが作成する必要がある一意のパスワードの数。
- パスワードの変更禁止期間 - ユーザーが別のパスワードを設定できるようになるまでの、パスワードが存続している必要がある時間の長さ。
- パスワードの最小の長さ - パスワードに含めることができる最小文字数。
- パスワードの複雑さの要件 - パスワードにユーザーのアカウントの詳細が含まれていないことと、次の3つ以上が含まれていることが求められます。
- 大文字
- 小文字
- 数字
- 特殊文字
このエラーは、ドメイン内の適用可能なパスワードポリシーの要件が満たされていないため、Active Directoryによってパスワードの変更が拒否されたことを示しています。これはOktaエラーではなく、Active Directoryからのエラー詳細で該当する情報が提供されないため、Oktaからはどの要件が満たされていないのかを判断できません。「パスワードがOktaの要件を満たしていない場合のActive Directoryでのパスワード更新」で詳しく説明されているように、Oktaは委任認証のユーザーのパスワード変更時にパスワードポリシーのすべての要素を評価せず、ローカルAD環境内での評価のためにドメインコントローラーにリクエストを渡します。
このエラーが発生した場合でも、管理パスワードリセットに対して同じパスワードポリシー要件がすべて適用されるわけではないため、管理者はOktaから、またはActive Directory内で直接、ユーザーのパスワードリセットを開始できる可能性があります。たとえば、現在のパスワードの変更禁止期間がまだ過ぎていない場合でも、管理者がユーザーのパスワードをリセットできる可能性があります。
ユーザーに適用されるパスワードポリシーとパスワード要件は、PowerShellを介して決定できます。
まず、次のPowerShellコマンドを実行して、きめ細かなパスワードポリシーがユーザーに適用されているかどうかを確認する必要があります。
Get-ADUserResultantPasswordPolicy -Identity <user>
ユーザーにきめ細かなパスワードポリシーが割り当てられている場合は、ポリシーの詳細が返されます。割り当てられていない場合は、このコマンドは結果なしで完了します。
例:きめ細かなパスワードポリシーが割り当てられていないユーザー
例:きめ細かなパスワードポリシーが割り当てられているユーザー
このコマンドは、ユーザーのADアカウントのmsDS-ResultantPSO属性からポリシーの詳細を取得します。これは、アカウントの詳細でも確認できます。
ユーザーにきめ細かなパスワードポリシーが適用されていない場合は、デフォルトのドメインパスワードポリシーが適用されます。このポリシーの詳細は、次のPowerShellコマンドで取得できます。
Get-ADDefaultDomainPasswordPolicy
適用されるパスワードポリシーを確認した後は、ポリシーの要件が満たされていることを確認する必要があります。パスワードの長さ、履歴、複雑さの要件の詳細をユーザーが通知して、選択した新しいパスワードがこれらの要件を満たせるようにする必要があります。
診断が困難になることがあるこのエラーの一般的な原因として、ユーザーにパスワードの変更禁止期間の値が表示されないため、パスワードの変更禁止期間の要件が満たされないことがあります。アカウントの初期作成時、ユーザーパスワードの変更時、または管理パスワードリセット時([User must change password at next logon(ユーザーは次回ログオン時にパスワードの変更が必要)]も選択されていない限り)にユーザーのADパスワードが設定されると、そのイベントのタイムスタンプがユーザーのADアカウント内のpwdLastSet属性に保存されます。ユーザーが新しいパスワード値を設定するには、該当するパスワードポリシーで指定されたパスワードの変更禁止期間がpwdLastSet値から経過している必要があります。
たとえば、ここではまず、ユーザーにきめ細かなパスワードポリシーが適用されていないことを確認します。
次に、ユーザーに適用されるデフォルトのドメインパスワードポリシーの詳細を取得します。
注:ポリシーで設定されているパスワードの変更禁止期間は1日(MinPasswordAge:1.00:00:00)または24時間です。
ユーザーのADアカウントのpwdLastSet属性を表示すると、ユーザーのパスワードが最後に設定されてから24時間が経過していないため、パスワードの変更禁止期間がまだ満たされていないことを確認できます。この時点でパスワードを変更しようとすると、この記事に示されているエラーが発生します。
pwdLastSet値はADツールからも表示できます。
ユーザーは、新しいパスワード値を設定する前に、パスワードの変更禁止期間の要件が満たされるまで待つ必要があります。
