【AD基礎】ユーザー アカウントのパスワード ポリシーについて

  • 2022年12月11日
  • 2023年6月8日
  • AD DS

ユーザー アカウントには、認証を行うためにパスワードを設定することができます。

パスワードの設定時において、パスワードに必要な文字数や、英文字の大文字、小文字、数字、記号などの組み合わせや複雑さの条件を指定することができます。このようなパスワードの設定において、満たす必要がある条件の規則を決めたものをパスワード ポリシーと呼びます。

Active Directory のドメイン環境でも、パスワード ポリシーを定義することができます。パスワード ポリシーを定義すると、ドメインで管理しているユーザーのパスワードの条件を決めることができ、複雑なパスワードを設定する必要がある構成にできます。こうすることで、他社から推測されにくいパスワードを利用することで、なりすましや不正アクセスなども回避することができ、セキュリティを強化できます。

今回は、Active Directory ドメイン サービスにおけるパスワード ポリシーについて紹介します。

 

パスワード ポリシーとは?

パスワードの設定時において、パスワードに必要な文字数や、英文字の大文字、小文字、数字、記号などの組み合わせや複雑さの条件を指定することができます。このようなパスワードの設定において、満たす必要がある条件の規則を決めたものをパスワード ポリシーと呼びます。

Active Directory のドメインでもパスワード ポリシーを設定することができます。ドメインにてパスワード ポリシーを設定すると、ドメイン ユーザーはパスワード ポリシーで決められている規則に沿ったパスワードしか設定することができません。そのため、パスワード ポリシーを定義して、ドメイン ユーザーに複雑なパスワードを設定することで、なりすましや不正アクセスなどのセキュリティ リスクを軽減させることができます。

Active Directory では、パスワード ポリシーはドメイン単位で設定します。

パスワード ポリシーはドメイン単位でしか設定できず、コンテナや OU 単位に分けてポリシーを設定することができません。そのため、基本的には、全てのドメイン ユーザーには共通のパスワード ポリシーの規則が適用されます。

 

パスワード ポリシーの設定項目

Active Directory でのパスワード ポリシーは、グループ ポリシー管理エディターで設定することができます。ドメインに適用されるパスワード ポリシーは、ドメインの直下に適用されている GPO の中で優先順位が一番高い GPO のパスワード ポリシーです。

既定の設定では、Default Domain Policy のパスワード ポリシーがドメイン全体に適用されています。

パスワード ポリシーを設定できるポリシーのパスは以下の通りです。

パス:[コンピューターの構成] – [ポリシー] – [Windows の設定] – [セキュリティの設定] – [アカウント ポリシー] – [パスワードのポリシー]
パスワード ポリシーとして 6 のポリシーを定義することができます。
 
パスワード ポリシーの各ポリシーの詳細な内容を紹介します。
 

パスワードの長さ

[パスワードの長さ] のポリシーは、ユーザー アカウントのパスワードに使用する最小の文字数を定義します。ドメイン ユーザーは、[パスワードの長さ] で定義された文字数よりも大きい文字数のパスワードを設定する必要があります。

このポリシーで定義できる値は 0 ~ 14 の間となります。設定値を 0 に設定すると、パスワードを必要としないことを意味します。パスワードの長さの既定値は 7 文字です。

 

パスワードの変更禁止期間

[パスワードの変更禁止期間] ポリシーは、パスワードを設定してから、パスワードを変更可能になるまでの日数を定義します。[パスワードの変更禁止期間] で指定された日数の間は、パスワードを変更することができず、同じパスワードを利用し続ける必要があります。

このポリシーで定義できる値は 0 ~ 998 の間となります。設定値を 0 に設定すると、パスワードを変更してすぐにパスワードを変更することができることを意味します。

[パスワードの有効期間] が 0 (有効期限が無期限) に設定されている場合を除き、パスワードの変更禁止期間はパスワードの有効期間よりも短い日数を設定してください。[パスワードの有効期間] が 0 に設定されている場合は、パスワードの変更禁止期間は 0 ~ 998 日までの日数を自由に指定できます。

 

パスワードの有効期間

[パスワードの有効期間] ポリシーは、1つのパスワードを使用できる日数を定義します。パスワードを設定してから、[パスワードの有効期間] の日数を過ぎると、システムからパスワードを変更するように要求されます。

このポリシーで定義できる値は 0 ~ 999 の間となります。設定値を 0 に設定すると、パスワードの有効期限は無期限となり、同じパスワードを無期限で使用できる設定となります。既定値は 42 日です。

 

パスワードの履歴を記録する

[パスワードの履歴を記録する] ポリシーは、過去のパスワードの履歴を残すパスワードの数を定義します。パスワードの履歴を残す設定をすると、履歴に残っている過去のパスワードと同じ文字列を、新しいパスワードとして更新することができません。

このポリシーで定義できる値は 0~ 24 となります。設定値を 0 に設定すると、パスワードの履歴は残さずに、過去に設定されたパスワードと同じ文字列を使って、パスワードを更新することができます。既定値は 24 です。

 

暗号化を元に戻せる状態でパスワードを保存する

[暗号化を元に戻せる状態でパスワードを保存する] ポリシーは、AD データベースに格納されているユーザー アカウントのパスワードを可逆的な状態で保存するかどうかを定義します。

ユーザー アカウントのパスワードは、unicodePwd 属性に格納されていますが、この属性は読み取りが不可能な属性として定義されています。このポリシーは、ダイジェスト認証やリモートアクセスの認証として CHAP を利用するための内部機能として用意されているオプションです。Windows OS の標準機能として、ユーザーのパスワードを平文で取得できるようなコマンドや API は用意されておりませんので、このオプションを有効にしたとしても、ユーザーのパスワードを取得できるものではありません。

このポリシーで定義できる値は”有効”か”無効”です。既定値は無効です。

 

複雑さの要件を満たす必要があるパスワード

[複雑さの要件を満たす必要があるパスワード] のポリシーは、ユーザー アカウントのパスワードが複雑さの要件を満たす必要があるかどうかを定義します。

パスワードの複雑さの要件を満たすには、以下の 2 つの要件を満たす必要があります。

1.パスワードにユーザー名を含めない

パスワードの文字列に、ユーザーの SAM アカウント名(saMAccountName 属性)、表示名(displayName 属性)を含めることはできません。大文字、小文字の区別なく、SAM アカウント名と表示名は含めることはできません。

SAM アカウント名や表示名に区切り文字(ハイフン(-)、アンダースコア(_)、スペース( )等)が含まれる場合は、区切り文字で分割した文字列でパスワードに含まれていないかのチェックを行います。

SAM アカウント名、表示名が 3 文字未満である場合は、その文字列をパスワードに含めることができます。

 

2. 文字列の種類を 3 つ以上含める

パスワードとなる文字列の構成として、以下の 5 つの種類の文字のカテゴリの中から、少なくとも3種類の文字を含める必要があります。

  • 大文字の英字
  • 小文字の英字
  • 数字(0 ~ 9)
  • 英数字以外の特殊文字 (~!@#$%^&*_-+=`|\(){}[]:;”‘<>,.?/)
  • 任意の Unicode 文字(ひらがな、カタカナ、漢字、記号など)

 

 

FGPP (Fine-Grained Password Policy)

パスワード ポリシーはドメイン単位でしか設定できず、コンテナや OU 単位に分けてポリシーを設定することができません。そのため、基本的には、全てのドメイン ユーザーには共通のパスワード ポリシーの規則が適用される動作となります。

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

FGPP の機能を利用するには、PSO(Password Setting Object) というパスワード設定オブジェクトを作成して、PSO をユーザーまたはグループに適用する設定を行います。この設定を行うことで、特定のユーザーやグループに対して、ドメイン全体に適用されているパスワード ポリシー以外の設定を適用することができます。

FGPP を利用する詳細な設定手順は、以下の記事で紹介しています。

あわせて読みたい!

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

 

ユーザーのプロパティ設定

ユーザー アカウントのプロパティ設定の [アカウント] タブにある [アカウント オプション] にも、パスワード ポリシーに関連する設定があります。ユーザーごとに個別でパスワード ポリシーを設定する場合、ユーザー アカウントのプロパティ画面より設定してください。

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

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

3) [Active Directory ユーザーとコンピューター] の管理コンソールより、対象のユーザー アカウントをダブルクリックしてプロパティ画面を開きます。

4) [アカウント] タブにある [アカウント オプション] より、パスワード ポリシーに対する設定を行います。

 

[アカウント オプション] で設定できるパスワード ポリシーの設定項目を紹介します。

 

ユーザーは次回ログオン時にパスワード変更が必要

[ユーザーは次回ログオン時にパスワード変更が必要] の設定項目のチェックボックスを有効にすると、対象のドメイン ユーザーが、次回、ドメインに参加している Windows OS の端末にログオンするタイミングにて、パスワードの変更を要求されます。

ユーザーはパスワードを変更できない

[ユーザーは次回ログオン時にパスワード変更が必要] の設定項目のチェックボックスを有効にすると、対象のドメイン ユーザーは自身のパスワードを変更することができません。

パスワードを無期限にする

[パスワードを無期限にする] の設定項目のチェックボックスを有効にすると、パスワードの有効期限は無期限となり、同じパスワードを無期限で使用できます。

暗号化を元に戻せる状態でパスワードを保存する

[暗号化を元に戻せる状態でパスワードを保存する] の設定項目のチェックボックスを有効にすると、AD データベースに格納されているユーザー アカウントのパスワードを可逆的な状態で保存するかどうかを定義します。この設定項目を有効にすることで、ダイジェスト認証やリモートアクセスの認証として CHAP を利用することができます。

 

パスワード ポリシーの適用の優先順位

パスワード ポリシーの設定項目として、①ドメインのパスワード ポリシー、② FGPP で設定されたパスワード ポリシー、③ユーザー アカウントのプロパティ設定のパスワード ポリシーを設定することができます。

ユーザー アカウントに対して、① ~ ③ のそれぞれのパスワード ポリシーが設定されていた場合、設定が優先される順は以下の通りです。

③ ユーザーのプロパティ設定 > ② FGPP > ①ドメインのパスワード ポリシー
ユーザーのプロパティ設定のパスワードのポリシーが最優先で適用されます。
 

パスワード フィルター

パスワード フィルターとは、パスワードとして指定できる文字列の要件を独自に細かく指定するライブラリです。パスワード フィルターを利用することで、Windows OS 標準で用意されている既定の要件よりも、より細かい独自の要件を指定することができます。

パスワード フィルターを利用するには、パスワードとなる文字列の内容を検査するためのライブラリ(dll)を用意が必要です。例えば、パスワードの文字列として、4種類の文字のカテゴリを含まない場合はパスワードを FALSE として判定するライブラリの開発が必要です。

パスワード フィルター用のライブラリを作成したら、全てのドメイン コントローラーに以下の手順の設定を行うことで、ドメイン内にパスワード フィルターを構成することができます。

  1. ドメイン コントローラーに管理者権限をもつユーザーでログオンします。
  2. エクスプローラーを開き、%systemroot%\system32 のフォルダの配下に dll のファイルを保存します。
    (例として、この手順ではパスワード フィルターのライブラリのファイル名を pwdfilter.dll とします)
  3. [ファイル名を指定して実行] を開き、regedit と入力して [OK] をクリックしてレジストリ エディタを開きます。
  4. 以下のレジストリを設定して、パスワード フィルターを設定します。
    Notification Packages に、パスワード フィルターのライブラリ(拡張子は含めない)のファイル名を指定します。

     

    パス: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
    値:Notification Packages
    型:REG_MULTI_SZ
    設定値:pwdfilter
  5. 設定を適用するために、OS を再起動します。
  6. OS を再起動した後、[ファイル名を指定して実行] を開き msinfo32 と入力して [OK] をクリックします。
  7. [システム情報] にて、[システムの概要] – [ソフトウェア環境] – [読み込まれているモジュール] を選択します。
  8. 画面の右ペインに、pwdfilter が表示されていれば、パスワード フィルターが正常に lsass.exe にロードされています。

 

 

楽天ブックス
¥3,630 (2023/06/08 11:21時点 | 楽天市場調べ)
楽天ブックス
¥4,400 (2023/06/08 11:24時点 | 楽天市場調べ)