人们在LDAP目录中使用inetOrgPerson的CN使用什么

人们在LDAP目录中使用inetOrgPerson的CN使用什么,ldap,openldap,schema-design,Ldap,Openldap,Schema Design,我一直在使用givenName+“”+姓氏作为CN字段,昨晚醒来时尖叫着“约翰·史密斯呢?”?我可以想象任何一个大型组织都会雇用多个同名人员。所以这当然行不通。人们用什么来代替 编辑注意:在inetOrgPerson中,CN是DN的一部分 编辑注意:在这种情况下,我预计会增加到数十万个用户条目。在LDAP目录中,无论是OpenLDAP还是Active Directory,规则是区分名称(DN)必须是唯一的,独立于用于构成相对区分名称(RDN)的属性(或属性) 人们如何确保它的独特性: 我想说的是

我一直在使用
givenName+“”+姓氏
作为CN字段,昨晚醒来时尖叫着“约翰·史密斯呢?”?我可以想象任何一个大型组织都会雇用多个同名人员。所以这当然行不通。人们用什么来代替

编辑注意:在
inetOrgPerson
中,CN是DN的一部分


编辑注意:在这种情况下,我预计会增加到数十万个用户条目。

在LDAP目录中,无论是OpenLDAP还是Active Directory,规则是区分名称(DN)必须是唯一的,独立于用于构成相对区分名称(RDN)的属性(或属性)

人们如何确保它的独特性:

  • 我想说的是,在小企业中,在目录中创建条目的人保证它是唯一的,首先是通过知识,其次是通过初步搜索。如果出现重复,他会找到一些解决方案,如“John E Smith”。使用此解决方案,如果名称发生更改(结婚、离婚等),LDAP记录必须从一个DN“移动”到另一个DN。最好尽可能避免更改条目的DN,但在小目录中这并不重要

  • 在中型企业中,唯一性大部分时间是由来自人力资源部的员工ID提供的。例如FR12345678。我在大公司看到,人们使用员工ID登录。我在这里描述的是,尽管使用
    uid
    属性来命名对象,这是一种更为先进的方法,尽管它是一个对象(但是有些目录不允许您选择命名属性,我认为它是一个 X500功能)

  • 在大多数目录中(不在AD中),您可以使用多个属性来组成RDN。例如,
    sn=Assin+TelephoneNumber=1234
    在openLDAP中是有效的RDN,在PBX中是有意义的。 还有一件事

  • 在某些目录(为系统管理而设计)中,服务器端会将某些属性测试为在整个目录树中都是唯一的。这是Active Directory中的
    sAMAccountName
    userPrincipalName
    的情况,它们用于登录。使用带有“给定名称”的CN属性,管理员有义务保证唯一性。您可以在OpenLDAP中为
    slapd.conf
    中的数据库定义使用unique属性,添加:

    # index since the unique overlay will search for matching mail attributes
    index mail eq
    
    overlay unique
    unique_attributes mail
    
    如果未在中编译unique overlay,则需要使用以下工具重新编译:

    ./configure ... --enable-unique
    

    用我的一些经验来补充JPBlanc的回答。我工作的地方有几个ldap服务器/树。我们的广告服务器使用DisplayName作为CN的值。在4K+用户中,我们只有少数出现重复的实例。我认为,如果存在重复,默认操作是在值上加1。这是令人惊讶的罕见,即使在该用户群的最大部分有很高的转换率。我们有两个不同的电子目录树,它们相互链接,并且使用用户名。用户名是首字母+姓氏。那里的任何副本都会附加一个递增的数字。正如你可以想象的那样,布朗夫妇、史密斯夫妇和其他普通的名字经常出现这种情况。另一个目录树是ADLDS(以前的ADAM)目录,它为每个新条目使用一个唯一生成的编号作为CN。它基本上是一个自动递增的数字,由外部加载过程控制。最后,我们有一个外部合作伙伴(想想独立代理)的目录,它使用电子邮件地址+id号作为CN的组合


    我在用户基础上做了很多维护工作,我最不喜欢的方案是外部生成的号码。如果我在所有其他系统中都接到关于乔·布朗的支持电话,我至少可以知道我需要在哪里浏览才能找到他。当然,一个简单的搜索过滤器将给我所有的布朗,但我仍然要写它,并执行它。因此,我的建议是使用CN名称的某些部分,并以某种方式确保唯一性。从管理的角度来看,这会容易一些。CN确实很重要,但您将要处理更多的其他用户属性,因此不要过分担心。

    commonName
    CN
    是一个多值属性。可以在“John Smith”中插入附加值,以进一步识别条目。条目的主键,
    可分辨名称
    dn
    对于托管或隐藏的DIT是唯一的。另外,不要落入试图在特定于供应商的基础上与LDAP交互的陷阱。坚持LDAP标准,避免以“Microsoft方式”或“OpenLDAP方式”行事的陷阱。@Terry Gardner,谢谢。inetOrgPerson不是特定于OpenLDAP的,对吗?不是。inetOrgPerson是在RFC中定义的。@这个问题有什么问题吗?请解释一下。询问者想知道。非常感谢。我得出了大致相同的结论。我们计划至少有数万用户:他们实际上是订阅者,所以多年来这个目录可能会变得巨大,甚至数十万。作为另一个数据点,在我工作的一个地方,有12000名员工和一支流动的承包商队伍,我在大约十年的时间里被提升到了4级,因为我是流动承包商之一,它无法识别我以前的存在。在波多黎各和大多数西班牙裔国家,我们附加了母亲的婚前姓,示例:FRANK RIVERA RODRIGUEZ,其中RODRIGUEZ是母亲的娘家姓。这是西班牙裔国家的标准用法,增加了更多的独特性,尽管不是全部。如果我们无法实现唯一性,我们会在母亲的婚前姓名后附加pk_id(自动编号),以保证唯一性。