ldap介绍

此文为copy,只为简单说明,源地址:http://windindream.blog.163.com/blog/static/49359192008311114717239/#_Toc195677486数据库


1. LDAP介绍安全


1.1. LDAP是什么服务器


1.2. LDAP是电话簿网络


1.3. LDAP是否是数据库数据结构


2. LDAP的特色框架


2.1. LDAP的优点ide


2.1.1 跨平台性能


2.1.2 费用及维护优化


2.1.3 复制技术spa


2.1.4 容许使用ACI


2.2. LDAP存储什么数据


2.3. 何时该用LDAP存储数据


3. LDAP的基本模型


3.1 信息模型:描述LDAP的信息表示方式


3.2 命名模型:描述LDAP中的数据如何组织


3.3 功能模型:描述LDAP中的数据操做访问


3.4 安全模型:描述LDAP中的安全机制


3.4.1 身份认证


3.4.2 通信安全


3.4.3 访问控制




1. LDAP介绍

1.1. LDAP是什么

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

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

LDAP是一个用来发布目录信息到许多不一样资源的协议。一般它都做为一个集中的地址本使用,不过根据组织者的须要,它能够作得更增强大。

1.2. LDAP是电话簿

LDAP实际上是一电话簿,相似于咱们所使用诸如NIS(Network Information Service)DNS (Domain Name Service)等网络目录,也相似于你在花园中所看到的树木。

1.3. LDAP是否是数据库

很多LDAP开发人员喜欢把LDAP与关系数据库相比,认为是另外一种的存贮方式,而后在读性能上进行比较。实际上,这种对比的基础是错误的。LDAP和关系数据库是两种不一样层次的概念,后者是存贮方式(同一层次如网格数据库,对象数据库),前者是存贮模式和访问协议LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个链接数据库的标准方式。该数据库为读查询做了优化。所以它能够很快地获得查询结果,不过在其它方面,例如更新,就慢得多

从另外一个意义上 LDAP是实现了指定的数据结构的存贮,它是一种特殊的数据库。可是LDAP和通常的数据库不一样,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀不少。

就象SybaseOracleInformixMicrosoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来讲LDAP目录也是一种类型的数据库,但不是关系型数据库。要特别注意的是,LDAP一般做为一个hierarchal数据库使用,而不是一个关系数据库。所以,它的结构用树来表示比用表格好。正由于这样,就不能用SQL语句了。

2. LDAP的特色

2.1. LDAP的优点

2.1.1 跨平台

LDAP最大的优点是:能够在任何计算机平台上,用很容易得到的并且数目不断增长的LDAP的客户端程序访问LDAP目录。并且也很容易定制应用程序为它加上LDAP的支持。

LDAP协议是跨平台的和标准的协议,所以应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上,LDAP获得了业界的普遍承认,由于它是Internet的标准。产商都很愿意在产品中加入对LDAP的支持,由于他们根本不用考虑另外一端(客户端或服务端)是怎么样的。LDAP服务器能够是任何一个开发源代码或商用的LDAP目录服务器(或者还多是具备LDAP界面的关系型数据库),由于能够用一样的协议、客户端链接软件包和查询命令与LDAP服务器进行交互。与LDAP不一样的是,若是软件产商想在软件产品中集成对DBMS的支持,那么一般都要对每个数据库服务器单独定制。

2.1.2 费用及维护

不象不少商用的关系型数据库,你没必要为LDAP的每个客户端链接或许可协议付费。

大多数的LDAP服务器安装起来很简单,也容易维护和优化。

2.1.3 复制技术

LDAP服务器能够用""""的方法复制部分或所有数据,例如:能够把数据""到远程的办公室,以增长数据的安全性。复制技术是内置在LDAP服务器中的并且很容易配置。若是要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,并且也很难管理。

2.1.4 容许使用ACI

LDAP容许你根据须要使用ACI(通常都称为ACL或者访问控制列表)控制对数据读和写的权限。例如,设备管理员能够有权改变员工的工做地点和办公室号码,可是不容许改变记录中其它的域。ACI能够根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。由于这些都是由LDAP目录服务器完成的,因此不用担忧在客户端的应用程序上是否要进行安全检查。

2.2. LDAP存储什么数据

LDAP对于这样存储这样的信息最为有用:也就是数据须要从不一样的地点读取,可是不须要常常更新。例如,这些信息存储在LDAP目录中是十分有效的:

公司员工的电话号码簿和组织结构图

客户的联系信息

计算机管理须要的信息,包括NIS映射、email假名,等等

软件包的配置信息

公用证书和安全密匙

2.3. 何时该用LDAP存储数据

大多数的LDAP服务器都为读密集型的操做进行专门的优化。所以,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是由于专门为读的性能进行优化,大多数的LDAP目录服务器并不适合存储须要常常改变的数据。例如,用LDAP服务器来存储电话号码是一个很好的选择,可是它不能做为电子商务站点的数据库服务器。

若是下面每个问题的答案都是"",那么把数据存在LDAP中就是一个好主意。

须要在任何平台上都能读取数据吗?

每个单独的记录项是否是每一天都只有不多的改变?

能够把数据存在平面数据库(flat database)而不是关系型数据库中吗?换句话来讲,也就是无论什么范式不范式的,把全部东西都存在一个记录中(差很少只要知足第一范式)。

最后一个问题可能会唬住一些人,其实用平面数据库去存储一些关系型的数据也是很通常的。例如,一条公司员工的记录就能够包含经理的登陆名。用LDAP来存储这类信息是很方便的。一个简单的判断方法:若是能够把保数据存在一张张的卡片里,就能够很容易地把它存在LDAP目录里。

3. LDAP的基本模型

3.1 信息模型:描述LDAP的信息表示方式

LDAP中信息以树状方式组织,在树状信息中的基本数据单元是条目,而每一个条目由属性构成,属性中存储有属性值;LDAP中的信息模式,相似于面向对象的概念,在LDAP中每一个条目必须属于某个或多个对象类(Object Class),每一个Object Class由多个属性类型组成,每一个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义都可以使用继承的概念。每一个条目建立时,必须定义所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型能够对应多个值。

LDAP中把对象类、属性类型、语法和匹配规则统称为Schema(图表),在LDAP中有许多系统对象类、属性类型、语法和匹配规则,这些系统SchemaLDAP标准中进行了规定,同时不一样的应用领域也定义了本身的Schema,同时用户在应用时,也能够根据须要自定义Schema。这有些相似于XML,除了XML标准中的XML定义外,每一个行业都有本身标准的DTDDOM定义,用户也能够自扩展;也如同XML,在LDAP中也鼓励用户尽可能使用标准的Schema,以加强信息的互联互通。

Schema中最难理解的是匹配规则,这是LDAP中为了加快查询的速度,针对不一样的数据类型,能够提供不一样的匹配方法,如针对字符串类型的相等、模糊、大于小于均提供本身的匹配规则。

3.2 命名模型:描述LDAP中的数据如何组织

LDAP中的命名模型,也即LDAP中的条目定位方式。在LDAP中每一个条目均有本身的DNRDNDN是该条目在整个树中的惟一名称标识,RDN是条目在父节点下的惟一名称标识,如同文件系统中,带路径的文件名就是DN,文件名就是RDN

3.3 功能模型:描述LDAP中的数据操做访问

LDAP中共有四类10种操做:查询类操做,如搜索、比较;更新类操做,如添加条目、删除条目、修改条目、修改条目名;认证类操做,如绑定、解绑定;其它操做,如放弃和扩展操做。除了扩展操做,另外9种是LDAP的标准操做;扩展操做是LDAP中为了增长新的功能,提供的一种标准的扩展框架,当前已经成为LDAP标准的扩展操做,有修改密码和StartTLS扩展,在新的RFC标准和草案中正在增长一些新的扩展操做,不一样的LDAP厂商也均定义了本身的扩展操做。

3.4 安全模型:描述LDAP中的安全机制

LDAP中的安全模型主要经过身份认证、安全通道和访问控制来实现。

3.4.1 身份认证

LDAP中提供三种认证机制,即匿名、基本认证和SASLSimple Authentication and Secure Layer)认证。匿名认证即不对用户进行认证,该方法仅对彻底公开的方式适用;基本认证均是经过用户名和密码进行身份识别,又分为简单密码和摘要密码认证;SASL认证即LDAP提供的在SSLTLS安全通道基础上进行的身份认证,包括数字证书的认证。

3.4.2 通信安全

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

3.4.3 访问控制

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

在使用关系型数据库系统开发应用时,每每是经过几个固定的数据库用户名访问数据库。对于应用系统自己的访问控制,一般是须要创建专门的用户表,在应用系统内开发针对不一样用户的访问控制受权代码,这样一旦访问控制策略变动时,每每须要代码进行变动。总之一句话,关系型数据库的应用中用户数据管理和数据库访问标识是分离的,复杂的数据访问控制须要经过应用来实现。

而对于LDAP用户数据管理和访问标识是一体的,应用不须要关心访问控制的实现。这是因为在LDAP中的访问控制语句是基于策略语句来实现的,不管是访问控制的数据对象,仍是访问控制的主体对象,均是与这些对象在树中的位置和对象自己的数据特征相关。

LDAP中,能够把整个目录、目录的子树、制定条目、特定条目属性集或符合某过滤条件的条目做为控制对象进行受权;能够把特定用户、属于特定组或全部目录用户做为受权主体进行受权;最后,还能够定义对特定位置(例如IP地址或DNS名称)的访问权。

相关文章
相关标签/搜索