10

FedoraCore13でOpenldap2.4.11を使用しています。

パスワードポリシーを作成しようとしています:

dn: cn=default,ou=policies,dc=estream,dc=com,dc=my
objectClass: person
objectClass: pwdPolicy
objectClass: top
cn: default
pwdAttribute: 2.5.4.35
sn: test

「userPassword」にpwdAttriuteを指定すると、エラーが発生します

LDAP: error code 21 - pwdAttribute: value #0 invalid per syntax

代わりに、pwdAttributeにOIDを使用するように強制します。

pwdAttribute: 2.5.4.35

pwdAttributeに「2.5.4.35」の代わりに「userPassword」を使用することは可能ですか?

cn = configにモジュールppolicy.laをロードするようにopenldapを設定しようとしましたが、slapdサービスを数回再起動した後も機能しないようです。

dn: cn=module{0},cn=config
objectClass: olcConfig
objectClass: olcModuleList
objectClass: top
cn: module{0}
olcModuleLoad: {0}/usr/lib64/openldap/ppolicy.la
4

4 に答える 4

5

代わりに、pwdAttributeにOIDを使用するように強制します。

ppolicy関連するスキーマとオーバーレイの両方がロードされている場合は、OIDまたは属性名のいずれかを指定できます。

なぜそこにobjectClass=personがあるのですか?パスワードポリシーは人ではありません。パスワードポリシーの構造クラスとしてobjectClass=deviceを使用するのが通例です。

于 2011-04-07T08:09:17.403 に答える
5

私の経験では、EJPの答えは正しくありません。

openldap2.4.29を実行しているときに同じエラーメッセージが表示されました。パスワードポリシーオーバーレイでは、の使用が許可されていますがpwdAttribute: userPassword、オーバーレイが有効になっている場合に限ります。それ以外の場合、値は上記のメッセージ()で拒否されますpwdAttribute: value #0 invalid per syntax

OpenLDAPインストールで動的モジュールを使用する場合は、必ず含めるようにしてください

moduleload      ppolicy.la

slapd.confファイル内(またはデータベース内の適切な同等物)cn=config

次に、適切なデータベースのオーバーレイをロードします。

database        bdb
suffix          "o=example.com"
rootdn          "cn=Directory Manager,o=example.com"
rootpw          password
directory       /opt/openldap-2.4.29/var/openldap-data/example.com
overlay         ppolicy

オーバーレイをロードする前は、のOIDしか提供できませんでしたpwdAttribute。で再構築し--enable-ppolicyてエントリを追加した後overlay、ldapmodifyを使用して。に置き換えることができましpwdAttribute: 2.5.4.35pwdAttribute: userPassword

pwdAttributeオーバーレイをロードした後、の値を更新する必要がありました。

于 2012-03-20T18:59:50.213 に答える
2

私はちょうどこの問題に遭遇し、前述とは異なる方法でそれを解決しました。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」の本からまとめました。この本は、モジュールとオーバーレイの内容を非常によくカバーしていますが、パスワードポリシーのセクションに間違った例または廃止された例(構造オブジェクトクラスがない)があります。

于 2013-08-21T21:08:18.360 に答える
1

新しいサーバーで2.3を2.4に変換しましたが、RedHat6.3でも同じエラーが発生していました。代わりにpwdAttribute:2.5.4.35を使用しましたが、問題なくロードされました。

于 2012-12-28T14:27:23.387 に答える