基本介绍

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。

简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。目前已经被很多流行的应用和服务支持,如Apache、Oracle、Linux等。

LDAP模型

1.信息模型

在LDAP中信息以树状方式组织,在树状信息中的基本数据单元是条目,而每个条目由属性构成,属性中存储有属性值。

LDAP中的信息模式,类似于面向对象的概念,在LDAP中每个条目必须属于某个或多个objectClass,每个objectClass由多个属性类型组成,每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。

每个条目创建时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值

在LDAP中对象类、属性类型、语法和匹配规则统称为Schema. 在LDAP中有许多系统对象类、属性类型、语法和匹配规则,这些系统 Schema在LDAP标准中进行了规定,同时不同的应用领域也可以自定义Schema;同时用户在应用时,也可根据需要自定义Schema.

2.命名模型

即LDAP中的条目定位方式。在LDAP中每个条目均有自己的DN(Distinguish Name)和RDN(Relative Distinguish Name)。

DN是该条目在整个树中的唯一名称标识,RDN是条目在父节点下的唯一名称标识,如同文件系统中,带路径的文件名就是DN,文件名就是RDN。

3.功能模型

在LDAP中共有四类10种操作:

  • 查询类操作:搜索、比较
  • 更新类操作:如添加、删除、修改条目,修改条目名
  • 认证类操作:如绑定、解绑定;
  • 其它操作:放弃和扩展操作。

除扩展操作,另外9种是LDAP的标准操作;扩展操作是LDAP中为了增加新的功能,提供的一种标准的扩展框架,在新的RFC标准和草案中正在增加一些新的扩展操作,不同的LDAP厂商也均定义了自己的扩展操作。

4.安全模型

主要通过身份认证、安全通道和访问控制来实现。

身份认证

  • 匿名: 不对用户进行认证,该方法仅对完全公开的方式适用
  • 基本认证: 通过用户名和密码进行身份识别,又分为简单密码和摘要密码认证
  • SASL(Simple Authentication and Secure Layer): 在SSL和TLS安全通道基础上进行的身份认证,包括数字证书认证

安全通道

在LDAP中提供了基于SSL/TLS的通讯安全保障。SSL/TLS是基于PKI信息安全技术,是目前Internet上广泛采用的安全服务。 LDAP通过StartTLS方式启动TLS服务,可以提供通讯中的数据保密性、完整性保护;通过强制客户端证书认证的TLS服务,同时可以实现对客户端身份和服务器端身份的双向验证。

访问控制

虽然LDAP目前并无访问控制的标准,但从一些草案中或是事实上LDAP产品的访问控制情况,我们不难看出:LDAP访问控制异常的灵活和丰富,在 LDAP中是基于访问控制策略语句来实现访问控制的,这不同于现有的关系型数据库系统和应用系统,它是通过基于访问控制列表来实现的,无论是基于组模式或角色模式,都摆脱不了这种限制。

过滤器

LDAP是一个查询为主的记录结构,无论是何种查询方式,最终都由过滤器确定查询的条件。过滤器相当于SQL中的WHERE子句。任何LDAP的类过滤和字符串都必须放在括号内,如(objectclass=*),指列出所有类型的记录。

可以使用=>=<=~=(约等于)进行比较,如(number<=100)

合并条件是最怪的,必须把操作符放在两个操作对象的前面而不是中间,单一操作对象用括号括起来。如:

A与B,不是A&B,而是(&(A)(B));
或使用“|"表示;
非使用“!"表示。

对于”与”,或”或”在操作符后可以跟多个条件表达式,但非后则只能是单个表达式。

工具



blog comments powered by Disqus

Published

24 April 2013

Categories

Tags

Github