LDAP 对象类违规:后缀中不允许使用属性 ou?

LDAP 对象类违规:后缀中不允许使用属性 ou?

我即将设置一个 LDAP 目录。它用作将用户权限从 Web 应用程序传达到 WebDav 文件系统访问的工具,例如,将用户添加到 Web 平台将允许使用相同凭据登录文件系统。没有其他用途。以下这个德语教程鼓励使用属性、c等。我配置了以下后缀和根:ooudc

suffix                "ou=webtool,o=myOrg,c=de"
rootdn                "cn=ldapadmin,ou=webtool,o=myOrg,c=de"

服务器启动后我可以通过以下方式连接LDAP 管理员,报告“LDAP 错误:缺少对象”。嗯,目前还没有任何对象。

我现在想从 shell 创建 root 和 admin 元素。我创建了一个init.ldif文件:

dn: ou=webtool,o=myOrg,c=de
objectclass: dcObject
objectclass: organization
dc: webtool
o: webtool

dn: cn=ldapadmin,ou=webtool,o=myOrg,c=de
objectclass: organizationalRole
cn: ldapadmin

尝试加载文件时遇到错误,告诉我ou不允许:

server:~ # ldapadd -x -D "cn=ldapadmin,ou=webtool,o=myOrg,c=de" -W -f init.ldif
Enter LDAP Password:
adding new entry "ou=webtool,o=myOrg,c=de"
ldap_add: Object class violation (65)
        additional info: attribute 'ou' not allowed

除了后缀之外,我没有ou在任何地方使用,所以问题是:这里不允许吗?什么允许来这里吗?

答案1

创建元素有许多依赖项,如果您不了解这个概念,错误消息会相当令人困惑。 不一定objectclassdcObject数据库的根节点,因为当您阅读几个教程时可能会猜到。相反,它必须对应于对象的类型:在这里,对于以 开头的名称ou=,它必须是organizationalUnit。我在 中找到了这条信息这些桌子。此外,对象类规定了哪些属性必须和可以添加到记录中。这里,organizationalUnit必须有一个ou:条目,并且不能没有dc:或没有o:条目。因此,健康init.ldif文件如下所示:

dn: ou=webtool,o=myOrg,c=de
objectclass: organizationalUnit
ou: LDAP server for my webtool

dn: cn=ldapadmin,ou=webtool,o=myOrg,c=de
objectclass: organizationalRole
cn: ldapadmin

注意:该页面还指出:“虽然许多 objectClasses 没有显示必须属性,但您必须(哦)遵循任何层次结构 [...] 来确定是否确实如此。”我以为这意味着我的根记录必须为和c=o=分别为c:o:)提供必须字段,但这是不是案子。

相关内容