【问题标题】:difference between cn and ou in ldapldap中cn和ou的区别
【发布时间】:2015-08-11 18:56:16
【问题描述】:

到目前为止,我的目录体验最初是 Novell 的 NDS 和 eDirectory,最近是 MS Active Directory,但现在我不得不直接使用 ldap(Zimbra 上的 OpenLdap 2.4。)

我对 ldap 中的命名有点困惑,而且我真的无法在众多谷歌搜索中找到我想要的东西:

在 eDir 和 AD 中,当对象标记为 cn= 时,它是叶对象,而标记为 ou= 的对象是容器对象。但在 ldap 中似乎并非如此。

例如,假设我想在我的 dit 中列出已安装的模式,我可以使用命令:

ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn

返回的结果是:

dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config

是否有文档解释为什么对象schemaconfig(显然是容器对象)仍标记为cn?或者有人可以向我解释何时在容器对象上使用cn 标签,而不是ou 标签?

这可能记录在我刚从亚马逊订购的一本书中,“LDAP 的基础知识”,作者是来自亚马逊的 R. Voglmaier。它应该会在下周的某个时间到达。

【问题讨论】:

    标签: ldap naming


    【解决方案1】:

    叶子和非叶子与它无关。

    • CN 代表 Common Name,它是几个与人员相关的类的属性,例如 inetOrgPerson。但没有什么能阻止它成为其他类的属性,例如 organizationsRole。
    • OU代表Organizational Unit,是organizationalUnit类的一个属性。
    • 在这两种情况下,属性都构成了这些类的对象的 DN 的一部分。

    您通常会期望具有 OU 的对象是非叶,而人是叶,但它没有任何内在的东西。

    【讨论】:

    • CN 和 OU 不需要 成为 DN 的一部分。它们可能是(并且经常是),但这不是强制性的。 DN 是由用户创建的,唯一的强制性是它必须是唯一的。没有规定必须包含 CN 或 DN。
    【解决方案2】:

    我能理解你的困惑,因为 OpenLDAP 的 config-branch 是一个特殊的东西,所以你花了最复杂的东西来尝试理解它。

    需要记住的一点是,条目的对象类(我总是尽量避免称它们为“叶子”或“容器”)定义了 OU 或 CN 是否应该或可以是它的属性。根据设置的对象类,可能(不一定有用)在条目中具有 both 属性。

    因此,如果您想知道是使用 CN 还是 OU,请查看 objectclass。

    按照惯例,OU 用于描述一个组织单元,例如大型组织内的一个部门,而 CommonName 几乎可以用于任何事物。当您正在查看并尝试了解 LDAP 配置部分中的 LDAP 信息时,实际上并没有任何可用的组织单位。因此没有定义 OU。

    我试图避免那些“叶子”和“容器”的命名,因为这意味着容器只是没有附加信息的事物的集合,而在 LDAP 中可能并非如此。 “容器”可能具有比“存储在内部”的条目更多的可用属性。

    O'Reilly 还有一本关于 LDAP 管理的好书,可能很有趣。

    希望能有所帮助。

    【讨论】:

    • 什么是“OpenLDAP 的配置分支”?
    • 当您设置 OpenLDAP 服务器时,您可以决定使用配置 文件 或 LDAP 服务器内的配置部分来配置。这通常被称为配置“分支”。它是与存储数据的分支“平行”的分支。
    猜你喜欢
    • 2013-09-16
    • 2014-08-13
    • 2020-08-13
    • 2019-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多