Active Directoryできめ細かなパスワードポリシーを管理する方法
初めて設定する場合、こうした作業は本当に面倒です。管理者や外部契約社員など、グループごとに異なるパスワードルールを設定したい場合、きめ細かなパスワードポリシー(FGPP)は必須と言えるでしょう。Windows Server 2008 より前は、ドメイン全体に適用できるパスワードポリシーがほぼ1つしかなく、これは理想的ではありませんでした。しかし、FGPP を使えば複数のポリシーを適用できるため、他のユーザーに影響を与えることなく、より厳格に管理できます。正直なところ、最初は少し戸惑うかもしれません。特に、これらのポリシーの作成、割り当て、検証方法を理解するのは大変です。しかし、一度コツをつかめば、特定のグループに対するセキュリティ要件の管理は、特に大規模ネットワークでははるかに容易になります。
通常、このような設定は、ユーザーから奇妙なパスワードエラーが報告されたり、重要なアカウントに完全に別のルールを適用したい場合に活用されます。ある設定ではうまくいきましたが、別の設定では…うまくいきませんでした。当然ながら、Windowsは必要以上に設定を難しくする必要があるからです。さて、私が役に立ったと思う設定を以下にまとめます。
Active Directory できめ細かなパスワードポリシーを作成して割り当てる方法
Active Directory 管理センター (ADAC) の使用
Windows Server 2012以降をお使いの場合は、これが最も簡単な方法です。を実行してActive Directory管理センターを開きます。ツリー全体を展開し、システムコンテナの下にあるパスワード設定コンテナをdsac.msc見つけます。それを右クリックし、「新規」 > 「パスワード設定」を選択します。表示されない場合は、「表示」>「高度な機能」で高度な機能が有効になっていることを確認してください。
ここからが楽しいところです。ポリシーに「管理者用パスワードポリシー」などの適切な名前を付けて、設定を微調整します。最小パスワード文字数、パスワードの複雑さ、パスワード履歴の長さ、ロックアウトオプションなどのオプションが表示されます。設定した属性はmsDS-MaximumPasswordAge、、などの AD 属性に対応します。優先順位msDS-MinimumPasswordLengthに注意してください。数字が小さいほど、優先度が高くなります。ユーザーに複数のポリシーが割り当てられている場合、AD は優先順位の番号が最も低いポリシーを適用します。多くの場合、特にグループメンバーシップと直接割り当てを通じて異なるポリシーが適用されている場合は、これが混乱の原因になります。
ユーザーまたはグループへのポリシーの適用
ポリシーを作成したら、実際に適用するユーザーを選択します。「直接適用先」セクションで設定します。グループを選択することをお勧めします。Domain Adminsなどのセキュリティグループや、外部請負業者用のカスタムグループなどを検討してください。グループを追加して保存します。その後、クライアントマシンで、ユーザーオブジェクトの属性エディター(Active Directoryユーザーとコンピューターの高度な機能が有効になっている場合)を開き、どのポリシーが適用されているかを確認できます。属性msDS-ResultantPSOを探してください。この属性に、ユーザーが最終的にどのポリシーを使用しているかが表示されます。
ヒント: コマンドラインツールdsget を使って簡単に確認することもできます。例: dsget user "CN=Max, OU=Admins, DC=woshub, DC=com" –effectivepso。ちょっと奇妙ですが、クリックするよりはずっと便利です。
PowerShell で FGPP を管理する – 自動化が鍵
スクリプトを使いたい場合(誰もがそうでしょうが)、PowerShell を使うとポリシーの作成と割り当てが簡単になります。まず、Active Directory モジュールがインストールされていることを確認してください。新しいポリシーを作成するための主なコマンドは ですNew-ADFineGrainedPasswordPolicy。例えば、次のようになります。
New-ADFineGrainedPasswordPolicy -Name "Admin PSO Policy" -Precedence 10 -ComplexityEnabled $true -Description "Domain password policy for admins" -DisplayName "Admin PSO Policy" -LockoutDuration "0.20:00:00" -LockoutObservationWindow "0.00:30:00" -LockoutThreshold 6 -MaxPasswordAge "12.00:00:00" -MinPasswordAge "1.00:00:00" -MinPasswordLength 8 -PasswordHistoryCount 12 -ReversibleEncryptionEnabled $false
作成したら、次の設定でDomain Adminsなどのグループに割り当てます。
Add-ADFineGrainedPasswordPolicySubject "Admin PSO Policy" -Subjects "Domain Admins"
後で設定を変更したい場合は、 を使用してくださいSet-ADFineGrainedPasswordPolicy。たとえば、パスワード履歴のカウントを増やすには、次のようにします。
Set-ADFineGrainedPasswordPolicy "Admin PSO Policy" -PasswordHistoryCount 12
ドメイン内のすべてのポリシーを確認するには、次のようにすると混乱を避けることができます。
Get-ADFineGrainedPasswordPolicy -Filter *
ユーザーまたはグループに現在適用されているポリシーを確認するには(正常に動作していない場合に便利です)、次の手順を実行します。
Get-ADUserResultantPasswordPolicy -Identity "CN=Max, OU=Admins, DC=woshub, DC=com"
またはグループの場合:
Get-ADGroup "Domain Admins" -properties * | Select-Object msDS-PSOApplied
もちろん、上書きされない限り、デフォルトのパスワード ポリシーは引き続き適用されます。次のコードで確認してください。
Get-ADDefaultDomainPasswordPolicy
P@ssw0rdFGPPを導入していても、ユーザーは依然として のような弱いパスワードを選んでしまうものです。残念ながら、FGPPは魔法ではなく、少しだけ制御を強化しただけなので、ドメインに弱いパスワードがないか定期的に監査することをお勧めします。
全体として、これらのポリシーの操作は必ずしも直感的ではありませんが、適切に管理すれば、特に大規模または複雑なネットワークにおいて、さまざまなグループに必要な柔軟性が得られます。結局のところ、セキュリティは継続的なプロセスです。