私はちょうどこの問題に遭遇し、前述とは異なる方法でそれを解決しました。CentOS 6.4で新しいLDAPをセットアップしています(RHEL 6.4での最終的な展開用)。デフォルトでは「(cn = config)」構成スキームになっているため、slapd.confを変更するための上記のすべての(間違いなく優れた)手順は適用されません。
「(cn = config)」の方法(一部のWebサイトでは「slapd.d」とも呼ばれます)では、オーバーレイを機能させるための多くの手順があります。私が扱っていたデフォルトのCentOS6.4LDAPにはppolicyスキーマが含まれていましたが、アクティブ化されていませんでした。
それを実行するために、多くのステップがありました:
まず、「ppolicy」モジュールは動的です。ランタイムモジュールのリストに含まれていることを確認する必要があります。デフォルトのCentOSインストールには何もなかったので、最初にモジュールをオンにしてから、リストにppolicyを追加する必要がありました。このLDIFはそれを行います:
dn: cn=Module{0},cn=config
objectClass: olcModuleList
cn: Module{0}
olcModuleLoad: ppolicy
後でモジュールを追加する場合は、このdnにolcModuleLoadエントリを追加するだけです。
次に、適用するデータベースのオーバーレイをオンにする必要があります。別のdnを作成します。したがって、次のようになります。
dn: olcOverlay=ppolicy,olcDatabase={2}bdb,cn=config
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
これらの最初の2つの手順は、マシンのrootユーザーによって、「cn = config」ドメイン内、つまりデータベースの外部で実行されます。以降の手順は「dc=example、dc = com」スコープ内にあるため、rootDNで実行できます。
3番目のステップは、パスワードポリシーのコンテナーを作成することです。これはオプションかもしれませんが、よくわかりません。次のようなdnを作成しました。
dn: ou=pwpolicies,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: pwpolicies
第4に、実際のポリシーを作成します。このエラーが発生した人はすでにこれを持っています。これは、構文エラーが発生している「pwdAttribute」を持つdnです。前述のオーバーレイとモジュールの作業が正しく行われると、構文エラーが発生することなくpwdAttribute:userPassword "を使用できます。もちろん、私のポリシーはouコンテナー内にあり、"pwdPolicy"に加えて"device"のobjectClassを使用しました。他の場所で提案されているように。
最後に、もちろん、実際にポリシーを使用できます。
そこにあるドキュメントの多くはslapd.confの設定方法に関するものであるため、このプロセス全体が私にとってより混乱しました。このほとんどをZytraxの「LDAPforRocketScientists」の本からまとめました。この本は、モジュールとオーバーレイの内容を非常によくカバーしていますが、パスワードポリシーのセクションに間違った例または廃止された例(構造オブジェクトクラスがない)があります。