LDAP基础概念

LDAP基础概念
数据库

1.一、LDAP目录结构
数据结构


wKioL1PHexCiFLkzAACx6mZ_OZI194.jpg

  此图为树形目录结构,我将此跳过去了,由于这个是按照“国家这种结构来划分的”。若是你喜欢这样看更好,以下还有一种:ide

  wKioL1PHe5TDP0w8AACgqGGzxhU812.jpg

树也能够根据互联网域名组主。这种命名方式正愈来愈受欢迎,由于它容许使用DNS为目录服务定位 。这个LDAP目录树中使用基于域的命名。比较适合个人应用场景(从域名-->部门-->我的)。post



1.二、条目(Entry)ui

  条目(Entry)就是目录管理的对象,他是LDAP中最基本的颗粒,就像字典中的词条,或者是数据库中的记录。一般对LDAP的添加、删除、更改、检索都是以条目为基本对象的。
编码

  每个条目都有一个惟一的标名(distinguished Name ,DN),好比(1.1中图2互联网域名树形图):cn=doubao,ou=Ops,dc=shuyun,dc=com。DN在语法上是由多个相对的标(distinguished Name ,DN)组成的,他们之间由逗号分隔。若是把DN看作对象的全路径,那么RDN就是其中的每一段路径。经过DN的层次型语法结构,能够方便地表示出条目在LDAP树中的位置。有时在不一致引发歧义的状况下,RDN也特指DN中最靠前的一段,而剩余的部分称为父标识(Parent DN,PDN)。此处再也不举例。RDN自己也能够由多个值构成,好比OU=Tech+CN=doubao,dc=shuyun,dc=com中的RDN为OU=Tech+CN=doubao,由2个值OU=Tech和CN=doubao组成,他们之间由加好隔开。spa

  若是DN中含有一些特殊字符,好比:,=+<>;\",他们须要转转义符(\)来帮助表述。设计



1.三、属性(Attribute)3d

  每一个条目均可以有不少属性(Attribute),好比常见的人都有姓名、地址、电话等属性。每一个属性都有名称及对应的值,属性值能够有单个、多个。好比你有多个电话。orm

  LDAP为人员组织机构中常见的对象都设计了属性(好比commonName,surname)。下面有一些经常使用的别名(表1-3-1)


属性 别名 语法 描述 值(举例)
commonName cn Directory String 姓名 doubao
surname sn Directory String Chen
organizationalUnitName ou Directory String 单位(部门)名称 Tech
organization o Directory String 组织(公司)名称 shuyun
telephoneNumber
Telephone Number 电话号码 110
owner

DN 该条目的拥有者 cn=doubao,ou=ops,dc=shuyun
jpegPhoto
Binary JPEG照片 ..



1.四、属性类型(AttributeType)

  每一个属性都有惟一的属性类型(AttributeType),属性类型约定属性值的数据格式和语法类型(Syntax)。好比,属性cellPhone的类型为telephoneNumber,它规定了电话号码是由数字组成的,其中容许插入一些分隔符,如链接符、括号、空格等。

  属性类型也约定了属性值是否能够有多少个,多值属性类型也可使人员信息的组织变得更加灵活并接近现实状况,好比:人员的手机、地址、邮箱等属性均可以有多个值。这样,用ldap组织的信息会比简单的表结构更加理想。

  类型也规定了属性查询时的匹配规则、排序顺序、大小写敏感等。



1.五、对象类(ObjectClass)

  对象类(ObjectClass)是属性的集合,LDAP预想了不少人员组织机构中常见的对象,并将其封装成对象类。好比人员(person)含有姓(sn)、名(cn)、电话(telephoneNumber)、密码(userPassword)等属性,单位职工(organizationalPerson)是人员(person)的继承类,除了上述属性以外还含有职务(title)、邮政编码(postalCode)、通讯地址(postalAddress)等属性。

  经过对象类能够方便的定义条目类型。每一个条目能够直接继承多个对象类,这样就继承了各类属性。若是2个对象类中有相同的属性,则条目继承后只会保留1个属性。对象类同时也规定了那些属性是基本信息,必须含有(Must 活Required,必要属性):哪些属性是扩展信息,能够含有(May或Optional,可选属性)。

  对象类有三种类型:结构类型(Structural)、抽象类型(Abstract)和辅助类型(Auxiliary)。结构类型是最基本的类型,它规定了对象尸体的基本属性,每一个条目属于且仅属于一个结构型对象类。抽象类型能够是结构类型或其余抽象类型父类,它公国将对象属性中共性的部分组织在一块儿,称为其余类的模板,条目不能直接集成抽象型对象类。辅助类型规定了对象实体的扩展属性。虽然每一个条米只属于一个结构型对象类,但能够同时属于多个辅助型对象类。

  对象类自己是能够相互继承的,因此对象类的根类是top抽象型对象类。以经常使用的人员类型为例,他们的继承关系如图1-5-1:

wKioL1PHmHLycKa4AADp74iLi5M845.jpg

图1-5-1

 若是将其中一支 top-->person-->organizationalPerson-->inetOrgPerson的必要属性和可选属性列表(表1-5-2),就会发现这种设计仍是很是合理的。咱们能够从任何一个对象派生出本身的对象类,好比organizationalPerson派生出职工(employee)对象类,那么它能够含有工号(employeeNumber)、工种(employeeType)等属性。注意,对象类继承的时候会把属性是必须(Must)仍是可选(May)的特性也一并继承。也就是说person有cn和sn两个Must属性,organizationalPerson和inetOrgPerson因为直接或间接继承了person,也会有这两个Must属性。

表1-5-2

对象类 必要属性(Required) 可选属性(Optional)
top objectClass
person
cn description seeAlso telephoneNumber
sn userPassword

organizationalPerson
destinationIndicator facsimileTelephoneNumber internationalISDNNumber
1 ou physicalDeliveryOfficeName
postalAddress postalCode postOfficeBox
preferredDeliveryMethod registeredAddress st
street teletexTerminalIdentifier telexNumber
title x121Address



对象类 必要属性(Required) 可选属性(Optional)
inetOrgPerson
audio businessCategory carLicense
departmentNumber displayName employNumber
employeeType givenName homePhone
homePostalAddress initals jpegPhoto
labeledURL mail manager
mobile o pager
photo preferredLanguage roomNumber
secretary uid userCertificate
userOKCS12 userSMIMECertificate x500UniqueIdentifier




1.六、模式(Schema)

  对象类(ObjectClass)、属性类型(AttributeType)、语法(Syntax)分别约定了条目、属性、值,他们之间的关系以下图所示。因此这些构成了模式(Schema),模式中的每个元素都有惟一的OID编号,如2.5.4.41.条目数据在导入时一般须要接受模式检查,它确保了目录中全部的条目数据结构都是一致的。

wKiom1PHoRbxZBZ-AAECq9r2G9Y162.jpg

相关文章
相关标签/搜索