LDAP概念
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 | 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概念的更多相关文章
- LDAP概念和原理介绍
LDAP概念和原理介绍 相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”.“LDAP的主要产品”.“LDAP的基本模型”.“ ...
- LDAP概念和原理
LDAP概念和原理介绍 相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”.“LDAP的主要产品”.“LDAP的基本模型”.“ ...
- LDAP概念了解
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.LDAP支持TCP/IP,这对访问Internet是必须的. L ...
- LDAP概念和原理介绍 (转)
相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从"什么是LDAP"."LDAP的主要产品"." ...
- JAVA操作LDAP总结
一.LDAP概念 LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP. LDAP目录为数据库, ...
- LDAP学习笔记总结
一.LDAP概念LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了并且可以根 ...
- 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 ...
- 2020年,手把手教你如何在CentOS7上一步一步搭建LDAP服务器的最新教程
同步滚动:关 什么是LDAP 什么是LDAP? 要想知道一个概念,最简单的办法就是wikipedia,当然也可以百科. LDAP全称是轻型目录访问协议(Lightweight Directory Ac ...
- [Liferay] Liferay 实现单点登录 - OpenLDAP
Liferay 的单点登录绝对是个难啃的骨头,更何况网上能搜到的基本都是些滥竽充数的文章,很不负责任. 于是在自己搭通单点登录一条线之后,决定整理下思路并写出来,希望各位能别重蹈覆辙. 本文不介绍概念 ...
随机推荐
- 4.4 explain 之 possible_keys 、key、key_len
一.possible_keys 显示可能应用在这张表中的索引,一个或多个. 查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被查询实际使用. 二.key 实际使用的索引.如果为null,则没有 ...
- 消息队列redis
1.消息队列流程 2.接收用户请求 <?php header("Content-type:text/html;charset=utf-8"); //首先加载redis组键 $ ...
- jQuery 练习:tab 切换
实现内容随菜单切换 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 2018-05-09 5分钟入门CTS-尝鲜中文版TypeScript
知乎原链 本文为中文代码示例之5分钟入门TypeScript的CTS版本. CTS作者是@htwx(github). 它实现了关键词和标准库的所有命名汉化. 本文并未使用附带的vscode相关插件(包 ...
- 自动排版工具——XML自动排版生成工具
——支持全球化/多语言/符合W3C标准的XML自动排版工具 Boxth XML/XSL Formatter是专为XML数据或其他结构化数据源自动输出排版文件(如: PDF等)而设计的集数据格式化.版式 ...
- Android为TV端助力 浅谈Aidl 通讯机制
服务端: 首先是编写一个aidl文件,注意AIDL只支持方法,不能定义静态成员,并且方法也不能有类似public等的修饰符:AIDL运行方法有任何类型的参数和返回值,在java的类型中,以下的类型使用 ...
- VysorPro助手
Vysor是一款非常强大而又好用的Android远程显示及控制软件,有Chrome插件版.Windows客户端版和Mac版,是Android开发和测试人员的必备神器.其中Windows客户端版相对Ch ...
- Play 2D games on Pixel running Android Nougat (N7.1.2) with Daydream View VR headset
- java数据结构 • 面向对象 • 异常 • 随机数·时间
• 语法基础 • 控制流 • 数据结构 • 面向对象 • 异常 • 随机数 //String常用的方法: indexOf charAt charAt codePointAt compa ...
- git 入门教程之忽略文件
忽略文件 "并不是所有的牛奶都叫特仑苏",在版本控制系统中也有相似的表达,那就是"并不是所有的文件都需要提交". 有的是因为没必要提交,比如日志文件,系统缓存文 ...