OpenLDAP 用パスワード品質チェックモジュール (ppolicy-pwdcheck)
======================================================================

概要
======================================================================

OpenLDAP のパスワードポリシー機能 (ppolicy オーバーレイ) 用の
パスワード品質チェックモジュールです。

ポリシーが適用されたエントリのパスワード変更時に新パスワードの品質
(パスワードの複雑性) をチェックすることが可能となります。品質が
満たない場合には、パスワードの変更は拒否されます。

インストールと設定
======================================================================

(1) OpenLDAP サーバー (slapd) を ppolicy オーバーレイを利用するように
    設定する。

(2) LDAP DIT のパスワードポリシーエントリに以下の属性を追加する。
    (pwdCheckModule と pwdCheckQuality 属性は、既存であれば置き換える)

  objectClass: pwdPolicyChecker
  pwdCheckModule: ppolicy-pwdcheck.la
  pwdCheckQuality: 2

(3) ppolicy-pwdcheck 用の環境変数を設定する。(任意)

  # echo 2 >/opt/osstech/var/lib/sv/slapd/env/PPOLICY_PWDCHECK_COMPLEX
  # /opt/osstech/sbin/service osstech-ldap restart

環境変数
======================================================================

環境変数により当モジュールの動作を制御することが可能です。

環境変数は、ファイル「/opt/osstech/var/lib/sv/slapd/env/<環境変数名>」
に設定値を記述することで、OpenLDAP サーバーサービス (osstech-ldap) の
起動時に自動的に設定されるようになります。

環境変数の設定を変更した場合は、OpenLDAP サーバーサービスを
再起動する必要があります。

  # /opt/osstech/sbin/service osstech-ldap restart

内蔵のパスワード品質チェック機能
----------------------------------------------------------------------

環境変数名:	PPOLICY_PWDCHECK_INTERNAL
既定値：	1 (有効)
説明:
  内蔵のパスワード品質チェック機能を利用するかどうかを設定する。
  0 に設定すると無効化、それ以外の数値で有効化される。

環境変数名:	PPOLICY_PWDCHECK_LENGTH
既定値：	6
説明:
  パスワードの長さに要求される最短の長さを設定する。
  これより短い長さのパスワードは拒否される。

環境変数名:	PPOLICY_PWDCHECK_COMPLEX
既定値：	3
説明:
  パスワードに含まれる文字種の数に求められる最小の数を設定する。
  これより少ない数の文字種しか含まないパスワードは拒否される。
  英文字の大文字・小文字は別の種類として扱われる。

環境変数名:	PPOLICY_PWDCHECK_ALPHABET
既定値：	0
説明:
  パスワードに含まれる英文字の数に求められる最小の数を設定する。
  これより少ない数の英文字しか含まないパスワードは拒否される。

環境変数名:	PPOLICY_PWDCHECK_UPPER
既定値：	0
説明:
  パスワードに含まれる英大文字の数に求められる最小の数を設定する。
  これより少ない数の英大文字しか含まないパスワードは拒否される。

環境変数名:	PPOLICY_PWDCHECK_LOWER
既定値：	0
説明:
  パスワードに含まれる英小文字の数に求められる最小の数を設定する。
  これより少ない数の英小大文字しか含まないパスワードは拒否される。

環境変数名:	PPOLICY_PWDCHECK_DIGIT
既定値：	0
説明:
  パスワードに含まれる数字の数に求められる最小の数を設定する。
  これより少ない数の数字しか含まないパスワードは拒否される。

環境変数名:	PPOLICY_PWDCHECK_SYMBOL
既定値：	0
説明:
  パスワードに含まれる記号の数に求められる最小の数を設定する。
  これより少ない数の記号しか含まないパスワードは拒否される。

環境変数名:	PPOLICY_PWDCHECK_HAS_NO_ID
既定値：	0
説明:
  0より大きい整数値を設定した場合、ユーザー名が含まれる
  パスワードは拒否される。パスワード変更対象のユーザーの
  DNのRDNがユーザー名としてチェックに使われる。
  パスワードに含まれるユーザー名の大文字・小文字は区別されず
  チェックされる。


外部コマンドによるパスワード品質チェック機能
----------------------------------------------------------------------

環境変数名:	PPOLICY_PWDCHECK_COMMAND
既定値：	なし (無効)
説明:
  パスワードの品質をチェックするための外部コマンドを設定する。
  コマンドからの応答を基にパスワードの許可あるいは拒否を判定する。
  コマンドにコマンドライン引数を渡すことはできない。

コマンドへの入力:
  標準入力にパスワード変更対象の LDAP エントリの識別名 (DN) と
  改行文字、新しいパスワードと改行文字を渡す。

コマンドからの入力(品質チェック結果):
  パスワードの品質に問題がない場合は「OK」あるいは
  「OK: 任意の文字列」を返し、問題がある場合はそれ以外の任意の
  文字列 (問題の内容) を返す必要がある。コマンドの終了コードは
  無視される。

