在openldap文件中添加密码策略时,从命令行运行时会抛出错误
root@openldap-server:/etc/ldap/slapd.d# ldapadd -D cn=admin,dc=zariga,dc=com -w password -f passwordpolicy.ldif
adding new entry "cn=DefaultPPolicy,ou=Policies,dc=zariga,dc=com"
ldap_add: Object class violation (65)
additional info: no structural object class provided
这是LDIF文件
dn: cn=DefaultPPolicy,ou=Policies,dc=zariga,dc=com
cn: DefaultPPolicy
objectClass: pwdPolicy
objectClass: top
pwdAttribute: userPassword
pwdMaxAge: 3024000
pwdExpireWarning: 1814400
pwdInHistory: 4
pwdCheckQuality: 1
pwdMinLength: 9
pwdMaxFailure: 4
pwdLockout: TRUE
pwdLockoutDuration: 600
pwdGraceAuthNLimit: 0
pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdAllowUserChange: TRUE
pwdSafeModify: FALSE
答案 0 :(得分:3)
您尝试仅使用pwdPolicy
objectClass 将对象添加到LDAP,该对象定义为AUXILIARY
(请参阅Password Policy for LDAP Directories, ch. 5.1)和每个对象添加到LDAP服务器必须具有STRUCTURAL
objectClass 。
您需要更改 LDIF 文件,以包含一个STRUCTURAL
objectClass ,例如 device (或任何其他您喜欢的但是它的类型是STRUCTURAL
)。
例如:
dn: cn=DefaultPPolicy,ou=Policies,dc=zariga,dc=com
cn: DefaultPPolicy
objectClass: device
objectClass: pwdPolicy
objectClass: top
...