ldap中cn和ou的区别

  • 本文关键字:区别 ou cn ldap ldap naming
  • 更新时间 :
  • 英文 :


到目前为止,我的目录经验最初是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的abc"作者R. Voglmaier来自亚马逊。应该下周某个时候到。

叶子与非叶子无关。

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

您通常会期望具有OU的对象是非叶子的,而具有OU的人是叶子的,但这并没有什么固有的

我可以理解您的困惑,因为您采取了最复杂的事情来试图理解它,因为OpenLDAP的config分支是一个特殊的事情。

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

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

按照惯例,OU被用来描述一个OrganizationalUnit,比如一个大型组织中的一个部门,而CommonName实际上可以用于任何地方。当您在查看并试图理解LDAP的配置部分中的LDAP信息时,实际上没有任何组织单元可用。因此没有定义ou。

我试图避免那些"叶子"one_answers"容器"命名,因为它意味着容器只是一个没有附加信息的东西的集合,而在LDAP中可能不是这种情况。一个"容器"可能有比"存储在里面"的条目更多的可用属性。

O'Reilly还有一本关于LDAP-Administration的好书,可能会很有趣。

希望这能有所帮助。

最新更新