添加:对象 class 添加密码策略时的违规错误

Add: Object class violation error on adding password policies

在 openldap 文件中添加密码策略时抛出错误 While 运行 from the command line

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

您正在尝试将一个对象添加到 LDAP 中,只有 pwdPolicy objectClass 定义为 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
...