【AD DS】FGPP (Fine-Grained Password Policy) とは?PSO について解説!

Active Directory Doman Service で構築したドメイン環境では、ユーザーに対してパスワードの規則を設定するパスワード ポリシーを作成できます。

従来のパスワード ポリシーでは、ドメインで 1 つのパスワード ポリシーしか作成できず、全てのドメイン ユーザーは共通のパスワード ポリシーを利用する必要がありました。

しかしながら、FGPP を利用するとユーザーもしくはグループ単位に対して異なるパスワード ポリシーを適用できます。

今回は FGPP (Fine-Grained Password Policy) について紹介します。

 

FGPP (Fine-Grained Password Policy) とは

ドメイン ユーザーが認証の際に使うパスワードの設定において、パスワードの長さ(6 文字以上など)やパスワードの有効期間などの規則を決めることができます。
このパスワードの規則のことを、パスワード ポリシーと呼びます。
ドメイン ユーザーはパスワード ポリシーで決められている規則に沿ったパスワードしか設定することができません。

Windows 2000 Server や Windows Server 2003 の時の Active Directory では、ドメイン ユーザーのパスワード ポリシーはドメイン単位でしか設定することしかできませんでした。
そのため、全てのドメイン ユーザーに対して同じパスワード ポリシーが適用する必要がありました。

 

Windows Server 2008 から「細かい設定が可能なパスワード ポリシー (FGPP : Fine-Grained Password Policy) 」がという機能が追加されました。
この機能により、ユーザーまたはグループ単位に異なるパスワード ポリシーを適用することが可能になりました。
例えば、営業部の社員のグループに適用するパスワード ポリシー、取締役の社員のグループに適用するパスワード ポリシーを別に定義するという運用も可能となります。

 

 

 

ただし、Windows Server 2008 では FGPP を設定する GUI のウィザードが用意されておらず、設定が大変な機能でした。
Windows Server 2012 からはこの問題が改善され、[Active Directory 管理センター] から簡単に FGPP が設定できるようになりました。

FGPP の機能を利用するには、PSO (Password Setting Object) というパスワード設定オブジェクトを作成して、PSO をユーザーまたはグループに適用する設定を行います。
そのため、この機能を FGPP という単語の代わりに PSO と呼ぶ場合もありますが、同じ機能を意味している場合が多いです。

 

PSO の設定手順

1) 任意のドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) [Windows 管理ツール][Active Directory 管理センター] をクリックして開きます。 

 

3) [Active Directory 管理センター] の画面の左ペインの [<ドメイン名> (ローカル)] をクリックします。

 

4) [System] のコンテナをダブルクリックします。

 

5) [Password Settings Container] をダブルクリックします。

 

6) [Password Settings Container] の空白の部分を右クリックして、[新規][パスワードの設定] をクリックして、PSO を新規に作成します。

 

7) PSO の設定にて、[パスワードの設定] の項目にて、各設定を行います。

 

8) [直接の適用先] の項目にて、[追加] をクリックします。

 

9) PSO で作成したパスワード設定を適用するユーザーもしくはグループを追加します。

 

10) パスワードの設定、適用先のアカウントの設定が完了したら [OK] をクリックします。

 

11) [Active Directory 管理センター] にて、[Password Settings Container] の下に PSO が作成されていることを確認します。

 

 

PSO の適用状態の確認

ユーザーまたはグループに PSO が適用されているかどうかを確認するか確認する方法は以下の通りです。

1) ドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) 管理者権限でコマンド プロンプトを開きます。

3) 以下のコマンドを、PSO の適用の有無を確認するアカウントの DN を指定して実行します。

    dsget user “<アカウントの DN>” -effectivepso

※ コマンドの実行結果より、”effectivepso” と表示されている項目の下に表示されている DN が対象のアカウントに適用されている PSO となります。
  PSO の DN が表示されなかったら、PSO は適用されていないアカウントとなります。

 

PSO で適用されたパスワードの有効期限の確認

通常のパスワード ポリシーで定義されたユーザーのパスワードの有効期限は net user コマンドで確認できます。
しかしながら、PSO を適用した後でも net user コマンドでは PSO のパスワード ポリシーの設定の反映は確認できず、ドメイン全体に適用されているパスワード ポリシーの結果が表示されます。
これは PSO が正常に適用できていないわけではなく、net use コマンドの想定された動作です。

PSO で適用したパスワード設定の適用結果を確認する方法は以下の通りです。

1) ドメイン コントローラーに管理者権限をもつユーザーでログオンします。

2) [Windows 管理ツール] より [Active Directory ユーザーとコンピューター] を開きます。

3) メニューの [表示][拡張機能] をクリックして有効にします。

 

4) 対象のアカウントをダブルクリックしてプロパティ画面を開きます。

 

5) プロパティ画面の [属性エディター] タブを選択し、[フィルター] をクリックします。

 

6) フィルターの [構築済み] を有効にします。

 

7) [属性エディター] タブから、msDS-UserPasswordExpiryTimeComputed 属性の値を確認します。これが PSO が適用されたパスワードの有効期限です。