无法在 OpenLDAP 中添加自定义属性

无法在 OpenLDAP 中添加自定义属性

我想在 OpenLDAP 中添加自定义属性,但我可能不理解这个概念。我所做的是:

我创建了custom.schema

attributetype ( 1.3.6.1.4.1.4203.666.100.122
        NAME ( 'dateOfBirth' )
        SUP name
        )

attributetype ( 1.3.6.1.4.1.4203.666.100.123
        NAME ( 'IPPhone' )
        SUP name
        )

objectclass     ( 1.3.6.1.4.1.4203.666.100.1
    NAME 'customAttributes'
        DESC 'Custom attributes class'
    )

我添加到了 slapd.conf

include         /usr/local/etc/openldap/schema/custom.schema

现在我想将此对象类分配给当前数据库中的每个 uid。因此我转储了数据库,将 objectclass 属性添加到某个 uid,然后在导入 LDIF 时,ldap 提示:

65) invalid structural object class chain (inetOrgPerson/customAttributes)

LDIF 条目如下:

dn: dc=sss,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: sss.com
dc: sss
structuralObjectClass: organization

dn: ou=People,dc=sss,dc=com
objectClass: organizationalUnit
ou: People
structuralObjectClass: organizationalUnit


dn: uid=zzz,ou=People,dc=sss,dc=com
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: customAttributes
structuralObjectClass: inetOrgPerson
...

您能否指导我如何添加这些自定义属性?

答案1

无效的结构对象类链错误表明违反了 STRUCTURAL objectClass 规则。如果没有相反的声明,您的 customAttributes objectClass 将被视为 STRUCTURAL objectClass,但它不能与 inetOrgPerson 一起使用。我建议您尝试将您的架构更改为以下内容:

objectclass     ( 1.3.6.1.4.1.4203.666.100.1
    NAME 'customAttributes'
    AUXILIARY
    DESC 'Custom attributes class'
    MAY (dateofBirth $ IPPhone)
)

为了进一步解释,我阅读了LDAP 指南。除此之外,粗略地看一下您尝试创建的模式,可能会对组织产生更多思考。通常建议将 objectClass 实体放在一棵树下,将 attributeType 实体放在另一棵树下,以避免混淆和冲突。

答案2

您的新对象类需要引用新属性。通常作为 MAY 子句完成

objectclass     ( 1.3.6.1.4.1.4203.666.100.1
    NAME 'customAttributes'
    DESC 'Custom attributes class'
    MAY (dateofBirth $ IPPhone)
)

可能还有其他要求。OpenLDAP 管理指南是最好的起点。这里是课程信息

答案3

您是否根据上述帖子修改了架构?此外,.schema 文件是否可读且具有正确的权限?

重新启动时,syslog(或 slapd 的日志文件)是否会给出任何错误?

相关内容