1.1、LDAP目录结构

 

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

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

1.2、条目(Entry)

条目(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组成,他们之间由加好隔开。

如果DN中含有一些特殊字符,比如:,=+<>;\",他们需要转转义符(\)来帮助表述。

1.3、属性(Attribute)

每个条目都可以有很多属性(Attribute),比如常见的人都有姓名、地址、电话等属性。每个属性都有名称及对应的值,属性值可以有单个、多个。比如你有多个电话。

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.4、属性类型(AttributeType)

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

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

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

1.5、对象类(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:

图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.6、模式(Schema)

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

LDAP概念的更多相关文章

  1. LDAP概念和原理介绍

    LDAP概念和原理介绍 相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”.“LDAP的主要产品”.“LDAP的基本模型”.“ ...

  2. LDAP概念和原理

    LDAP概念和原理介绍 相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”.“LDAP的主要产品”.“LDAP的基本模型”.“ ...

  3. LDAP概念了解

    LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.LDAP支持TCP/IP,这对访问Internet是必须的. L ...

  4. LDAP概念和原理介绍 (转)

    相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从"什么是LDAP"."LDAP的主要产品"." ...

  5. JAVA操作LDAP总结

    一.LDAP概念 LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP. LDAP目录为数据库, ...

  6. LDAP学习笔记总结

    一.LDAP概念LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根 ...

  7. centos7下ldap+kerberos实现单点登陆

    一. LDAP概念 http://wiki.jabbercn.org/index.php/OpenLDAP2.4%E7%AE%A1%E7%90%86%E5%91%98%E6%8C%87%E5%8D%9 ...

  8. 2020年,手把手教你如何在CentOS7上一步一步搭建LDAP服务器的最新教程

    同步滚动:关 什么是LDAP 什么是LDAP? 要想知道一个概念,最简单的办法就是wikipedia,当然也可以百科. LDAP全称是轻型目录访问协议(Lightweight Directory Ac ...

  9. [Liferay] Liferay 实现单点登录 - OpenLDAP

    Liferay 的单点登录绝对是个难啃的骨头,更何况网上能搜到的基本都是些滥竽充数的文章,很不负责任. 于是在自己搭通单点登录一条线之后,决定整理下思路并写出来,希望各位能别重蹈覆辙. 本文不介绍概念 ...

随机推荐

  1. C#设计模式之十三模板方法模式(Template Method Pattern)【行为型】

    一.引言 “结构型”的设计模式已经写完了,从今天我们开始讲“行为型”设计模式.现在我们开始讲[行为型]设计模式的第一个模式,该模式是[模板方法],英文名称是:Template Method Patte ...

  2. 设计模式—模板方法的C++实现

    这是Bwar在2009年写的设计模式C++实现,代码均可编译可运行,一直存在自己的电脑里,曾经在团队技术分享中分享过,现搬到线上来. 1. 模板方法简述 1.1 目的 定义一个操作中的算法骨架,而将一 ...

  3. 三、HTTP基础路由详解

    1.一次请求的完整实现过程 2.基础路由 Route::get($uri,$callback); Route::post($uri,$callback); Route::put($uri,$callb ...

  4. Exception 和 Error 有什么区别么

    声明 本篇所涉及的提问,正文的知识点,全都来自于杨晓峰的<Java核心技术36讲>,当然,我并不会全文照搬过来,毕竟这是付费的课程,应该会涉及到侵权之类的问题. 所以,本篇正文中的知识点, ...

  5. wx-charts 微信小程序图表 -- radarChart C# .net .ashx 测试

    radarChart:原始代码 new wxCharts({ canvasId: 'radarCanvas', type: 'radar', categories: ['1', '2', '3', ' ...

  6. js-dot.js

    //小结// toExponential 保留小数点( 0-20 bit ) document.writeln(Math.PI.toExponential(0)); //3e+0 document.w ...

  7. 在html中使用特殊字体

    目的:一首诗,要求从右往左读,垂直排列,类似古文 效果图: html内容: <!doctype html><html lang="en"><head& ...

  8. 有状态(Stateful)与无状态(Stateless)

    1.有状态(Stateful): 有数据存储功能.有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,类里面有成员变量,而且成员变量是可变的,是非线程安全的.在不同方法调用间 ...

  9. HDU 1847 Good Luck in CET-4 Everybody!(找规律版巴什博奕)

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  10. POJ 2478Farey Sequence

    Farey Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17744   Accepted: 7109 D ...