LDAP使用手册 一、 LDAP介绍
LDAP是轻量级目录访问协议的简称(Lightweight Directory Access Protocol).用于访问目录服务。它是X.500目录访问协议的移植,但是简化了实现方法。
二、 目录服务与关系数据库之间的区别
a) 目录查询操作比关系数据库有更高的效率,但是更新效率比关系数据库低 b) 目录不支持关系数据库那样的复杂查询,比如两个表的连接。
c) 目录不支持多操作的事物完整性,没有方式确认一些操作是全部成功还是全部失败 d) 目录能够能好和更灵活的支持子查询和匹配查询
e) 目录协议更适合应用于广域网,比如因特网或者大型公司的网络 f) 目录的管理,配置,和调试比关系型数据库更简单
g) 在使用关系数据库之前,必须首先定义表结构(模式)才可以进行操作。而目录中所使用的模式是
由LDAP定义好的一系列类组成的。对于目录中的每条记录中必须属于其中的一个类或者多个类。这些类定义了该记录中可以存储的信息。
h) 目录以对象的形式存储数据。信息被组织成树型结构。
i) 目录服务支持分布式存储结构,容易实现数据的扩展,能满足大容量存储的要求。
三、 LDAP的优点
1:可以存储在其它条件下很难存储的管理信息 2:数据安全可靠,访问控制粒度细腻。
3:LDAP是一个标准的,开放的协议,具有平台无关性。 4:数据分布广,规模可灵活扩充。
5:LDAP目录服务器可以使任何一种开放源代码或商用的LDAP目录服务器。 四、 LDAP模型
LDAP模型是从X.500协议中继承过来的。是LDAP的一个组成部分,用于指导客户如何使用目录服务
LDAP 定义了四个模型,包括信息模型,命名模型,功能模型,安全模型。 1.LDAP 信息模型(LDAP information model)
LDAP信息模型用于描述LDAP中信息的表达方式。
LDAP信息模型包含三部分 Entries Attributes Values (条目 属性 值)
Entry:Directry中最基本的信息单元,Entry中所包含的信息描述了现实世界中的一个真实的对象,在
目录系统中它可以理解为,目录树中的一个节点 。在目录中添加一个Entry时,该Entry必须属于一个或多个object class ,每一个object class 规定了该Entry中必须要包含的属性,以及允许使用的属性。Entry所属的类型由属性objectclass规定。每一个Entry都有一个DN(distinguished name) 用于唯一的标志Entry在directory中的位置。如下图所示:
根节点DN的命名有多种方法,其中之一就是域名命名法。例如:我们要以公司的网址
作为公司目录树的根节点。如sohu.com 那么根节点的DN应该为 DN:dc=sohu,dc=com
上图中根节点的DN :dc=example,dc=com 而该根节点有两个子节点,ou=people,和
ou=servers。
People节点的DN:ou=People,dc=example,dc=com
RDN:是目录树中节点的相对分辨名。如:People节点的DN:
ou=People,dc=example,dc=com 而该节点的RDN:ou=People
Attribute: 每个Entry都是由许多Attribute组成的。每一个属性(Attribute)描述的是对象的一个特征。
每一个属性(Attribute)由一个类型(type)和一个或多个值组成(Value) 如下图所示:
2.LDAP命名模型(LDAP Naming Model)
LDAP命名模型定义了如何在目录系统中组织数据以及如何从目录系统中查找数据
LDAP命名模型指定将Entry按类似倒立的树形结构进行规划。非常类似于UNIX系统得文件系
统如下图所示:
Unix File System
A Directory Tree
LDAP 目录结构与Unix系统的文件系统主要有三点不同 1. UNIX文件系统有一个根路径,作为访问所有文件和目录的入口。而LDAP 目录结构中的root
Entry只是一个特殊的Entry,它包含了目录服务器的配置信息,通常情况下,并不用来存储信息
2. 在LDAP 目录中任何一个节点都可以包含信息,同时也可以是一个容器,也就是说任何一个
LDAP Entry都可以有子节点。而UNIX文件系统中的节点要么是一个文件,要么是一个目录。而不能同时是这两种情况。只有目录才可以拥有子节点。下图表示了LDAP 是一个典型的目录结构 LDAP Directory