Openldap:对于pwdAttribute,是否可以使用"userPassword"而不是"2.5.4.35"?

Cha*_*ang 9 ldap openldap

我在Fedora Core 13中使用Openldap 2.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
Run Code Online (Sandbox Code Playgroud)

如果我将pwdAttriute指定为"userPassword",则会收到错误消息

LDAP: error code 21 - pwdAttribute: value #0 invalid per syntax
Run Code Online (Sandbox Code Playgroud)

相反,我强制使用OID作为pwdAttribute:

pwdAttribute: 2.5.4.35
Run Code Online (Sandbox Code Playgroud)

对于pwdAttribute,可以使用"userPassword"而不是"2.5.4.35"吗?

我尝试在cn = config中配置openldap来加载模块ppolicy.la,但是在重启slapd服务几次后它似乎也没有工作:

dn: cn=module{0},cn=config
objectClass: olcConfig
objectClass: olcModuleList
objectClass: top
cn: module{0}
olcModuleLoad: {0}/usr/lib64/openldap/ppolicy.la
Run Code Online (Sandbox Code Playgroud)

use*_*421 6

相反,我强制使用OID作为pwdAttribute:

如果同时ppolicy加载了相关模式和叠加层,则可以指定OID或属性名称.

你为什么在那里有objectClass = person?密码策略不是一个人.习惯使用objectClass = device作为密码策略的结构类.


Gar*_*het 6

根据我的经验,EJP的答案是不正确的.

我收到了运行openldap 2.4.29的相同错误消息.密码策略覆盖允许使用pwdAttribute: userPassword,但仅在启用覆盖时才允许使用.否则,将使用上面的消息(pwdAttribute: value #0 invalid per syntax)拒绝该值.

如果您的OpenLDAP安装使用动态模块,请务必包含

moduleload      ppolicy.la
Run Code Online (Sandbox Code Playgroud)

在您的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
Run Code Online (Sandbox Code Playgroud)

在加载叠加层之前,我只能提供OID pwdAttribute.与改造后--enable-ppolicy并添加overlay条目,我能够使用ldapmodify替换pwdAttribute: 2.5.4.35pwdAttribute: userPassword.

我必须刷新pwdAttribute加载叠加后的值.