ldap中cn和ou之间的区别

时间:2015-08-11 18:56:17

标签: ldap naming

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

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

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

对于instace,让我们说我想在我的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标签?

也许这是我刚从亚马逊订购的一本书中记录的,"来自亚马逊的R. Voglmaier的LDAP" 的ABC。它应该在下周某个时候到达。

2 个答案:

答案 0 :(得分:1)

叶子和非叶子与它无关。

  • CN代表Common Name,是几个与人相关的类的属性,例如inetOrgPerson。但是没有什么可以阻止它成为其他类的属性,例如organizationalRole。
  • OU代表组织单位,是organizationalUnit类的一个属性。
  • 在这两种情况下,该属性都构成这些类的对象的DN的一部分。

你通常会期望一个OU的对象是一个非叶子,一个人是一个叶子,但它没有固有的东西。

答案 1 :(得分:0)

我可以理解你的困惑,因为OpenLDAP的配置分支是一个特殊的东西,你花了最复杂的东西去尝试理解它。

要记住我们的一件事,一个条目的对象类(我总是试图避免将它们称为“离开”或“容器”)来定义OU或CN是否应该或者可以是它的属性。根据设置的对象类,可能(不一定有用)在条目中具有两个属性。

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

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

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

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

希望有所帮助。