LDAP使用手册.docx
- 文档编号:7233567
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:30
- 大小:13.37MB
LDAP使用手册.docx
《LDAP使用手册.docx》由会员分享,可在线阅读,更多相关《LDAP使用手册.docx(30页珍藏版)》请在冰豆网上搜索。
LDAP使用手册
LDAP使用手册
一、LDAP介绍(jièshào)
LDAP是轻量级目录访问(fǎngwèn)协议的简称(LightweightDirectoryAccessProtocol).用于访问目录(mùlù)服务。
它是X.500目录访问(fǎngwèn)协议的移植,但是(dànshì)简化了实现方法。
二、目录服务与关系数据库之间的区别
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信息模型(LDAPinformationmodel)
LDAP信息模型用于描述LDAP中信息的表达方式。
LDAP信息模型包含三部分EntriesAttributesValues
Entry:
Directry中最基本的信息单元,Entry中所包含的信息描述了现实世界中的一个真实的对象,在目录系统中它可以理解为,目录树中的一个节点。
在目录中添加一个Entry时,该Entry必须属于一个或多个objectclass,每一个objectclass规定了该Entry中必须要包含的属性,以及允许使用的属性。
Entry所属的类型由属性objectclass规定。
每一个Entry都有一个DN(distinguishedname)用于唯一的标志Entry在directory中的位置。
如下图所示:
根节点DN的命名有多种方法,其中之一就是域名命名法。
例如:
我们(wǒmen)要以公司的网址作为公司目录树的根节点。
如那么根节点(jiédiǎn)的DN应该为DN:
dc=sohu,dc=com
上图中根节点(jiédiǎn)的DN:
dc=example,dc=com而该根节点有两个子节点,ou=people,和ou=servers。
People节点(jiédiǎn)的DN:
ou=People,dc=example,dc=com
RDN:
是目录树中节点(jiédiǎn)的相对分辨名。
如:
People节点的DN:
ou=People,dc=example,dc=com而该节点的RDN:
ou=People
Attribute:
每个Entry都是由许多Attribute组成的。
每一个属性(Attribute)描述的是对象的一个特征。
每一个属性(Attribute)由一个类型(type)和一个或多个值组成(Value)如下图所示:
2.LDAP命名(mìngmíng)模型(LDAPNamingModel)
LDAP命名模型定义了如何(rúhé)在目录系统中组织数据以及如何从目录系统中查找数据
LDAP命名模型指定将Entry按类似倒立的树形结构进行规划。
非常类似于UNIX系统(xìtǒng)得文件系统如下图所示:
UnixFileSystem
ADirectoryTree
LDAP目录结构与Unix系统(xìtǒng)的文件系统主要有三点不同
1.UNIX文件(wénjiàn)系统有一个根路径,作为访问所有文件和目录的入口。
而LDAP目录结构中的rootEntry只是一个特殊的Entry,它包含了目录服务器的配置信息,通常情况下,并不用来存储信息
2.在LDAP目录中任何一个节点都可以包含信息,同时也可以是一个容器,也就是说任何一个LDAPEntry都可以有子节点。
而UNIX文件系统中的节点要么是一个文件,要么是一个目录。
而不能同时是这两种情况。
只有目录才可以拥有子节点。
下图表示了LDAP是一个典型的目录结构
LDAPDirectory
3.UNIX文件系统目录结构与LDAP目录的第三个区别在于他们的每一个(yīɡè)节点的命名不同。
LDAP目录中节点的命名和UNIX文件系统目录结构中的节点的命名是相反的。
上图示UNIX文件系统结构,如果要定位(dìngwèi)到grep节点的话,命名如下
/user/bin/grep
上图是一个典型的目录(mùlù)结构
第一个节点(jiédiǎn)DN命名为:
dn:
dc=example,dc=com
第二个节点(jiédiǎn)DN命名为:
dn:
ou=People,dc=example,dc=com
第三个节点(jiédiǎn)DN命名为:
dn:
uid=bjensen,ou=people,dc=example,dc=com
我们说每一个Entry的DN是唯一的,就是因为这种数形结构决定了,从根节点到其它任何(rènhé)一个节点的路径是唯一的。
RDN:
在DN中最左边的内容称为相对域名。
如ou=People,dc=example,dc=com
其RDN为ou=People
对于共享同一个父节点的所有节点的RDN必须是唯一的。
如果不属于同一个节点则节点的RDN可以相同。
特殊字符:
以下字符如果出现在Entry中的属性值,必须进行转义
#--------\#
,-------\,
+---------\+
“---------\”
\--------\\
<-----\<
>-----\>
;--------\;
如:
o=UnitedWidgets\,Ltd.,c=GB
别名(biémíng)
在LDAP中可以(kěyǐ)定义一个别名Entry,指向另外一个Entry。
如下图所示
如何(rúhé)创建别名Entry
要创建(chuàngjiàn)别名Entry,该Entry的objectclass必须是alias。
而且其属性aliasedObjectName的值必须是该Entry所指向的Entry的DN。
不过(bùguò)一般情况下应该避免使用别名Entry。
会影响性能。
而且如果被引用的Entry被删除的话,该Entry就会指向一个错误的结果。
LDAPURL
由于使用AliasEntry有许多缺点,可以使用LDAPURL或referral代替AliasEntry。
3.LDAP功能模型(LDAPFunctionalModel)
LDAP功能模型描述了LDAP协议可以采用的相关操作,来访问存储在目录树中的数据。
LDAP功能模型包含一系列的操作,这些操作被分为三组。
1.更新操作包括添加,删除,重命名,修改Entry
2.InterrogationOperation用于数据的查询
3.认证和控制(bindunbindabandon)
InterrogationOperation
1.TheLDAPSearchOperation
该操作需要八个参数
a.baseobject
也可以表示为DN。
表明你想要查询direcoty中树的顶点。
b.searchscope
DN与searchscope两个参数(cānshù)限定了要搜索数据的范围
共有(ɡònɡyǒu)三个scope
Sub搜索范围是包含顶节点(jiédiǎn)在内的一棵子树如下图
其中(qízhōng)DN=”ou=People,dc=example,dc=com”
Base搜索范围只包含一个节点(jiédiǎn)如下图
其中DN=”ou=People,dc=example,dc=com”
Onelevel其搜索范围是DN所表示的节点下的直接子节点。
如下图
其中(qízhōng)DN=”ou=People,dc=example,dc=com”
c.alias
d.sizelimit
表示返回(fǎnhuí)的符合条件的Entry的数目,0表示返回所有符合条件的Entry。
目录服务器端返回一个LDAP_SIZELIMIT_EXCEEDED。
e.timelimit
表示搜索一次所需要(xūyào)的时间,超过时间将停止搜索。
服务器端返回一个LDAP_TIMELIMIT_EXCEEDED
f.attribute-only
该属性是一个(yīɡè)boolean值,如果为true,表示服务器端之返回所搜索的Entry的属性名称,不返回属性值。
g.filter
通过该属性可以(kěyǐ)更精确的搜索结果。
就像SQL语句中的条件查询。
Filter分类
1.(sn=smith)匹配属性sn的值包含smith的Entry
2(sn=smith*)匹配属性sn的值以smith开始的所有Entry如smithers,smithsonain等。
其中“*”表示通配符,代表任意字符。
3(sn~=jensen)匹配属性sn的值听起来像jensen的Entry。
不同的目录服务器,有不同的实现方法。
4(age>21)或者(!
(age<=21))匹配属性age的值大于21的Entry
如果是字符的话,如(sn<=Smith)则按字典顺序进行比较。
5(telephoneNumber=*)匹配所有属性telephoneNumber的值不为空的Entry
6(&(sn=smith)(age>21))匹配属性sn的值包含smith而且属性age的值大于21的Entry
(|(sn=smith)(age>21))匹配(pǐpèi)属性sn的值包含smith或者属性age的值大于21的Entry
(&(mail=*)(!
(telephoneNumber=*)))匹配属性(shǔxìng)mail的值不为空,而且属性telephoneNumber为空的Entry
7如果属性的值包含以下五个特殊字符的话必须(bìxū)进行转义
如:
(cn=A*Star)则必须(bìxū)改为(cn=A\2AStar)
h.returnattributes
该属性表示客户的搜索结果中需要返回的和用户相关的属性列表,如果(rúguǒ)为空表示返回所有属性。
4.LDAP安全(ānquán)模型
安全模型的作用:
是提供(tígōng)一个框架,保护目录中的信息不被非法访问。
LDAP中的安全模型主要通过身份(shēnfen)认证、安全通道和访问控制(ACL)来实现
LDAP是一个面向连接的协议,在能够对LDAP目录进行任何操作(cāozuò)之前,LDAP客户端必须获得一个到LDAP服务端的一个连接,在这个过程中需要对LDAP客户端的身份进行验证,这一过程可以理解为用户绑定。
LDAPV2只支持简单的密码(mìmǎ)验证。
LDAPV3实现了SASL安全框架,SASL为多种验证协议提供了一种标准的验证方法,对于不同的验证系统,可以实现特定的SASL机制。
SASL机制代表了一种验证协议。
在用户通过验证之后,可以为该用户分配附加的权限,比如一些用户只能查看特定的Entry,而不能修改。
一些用户可以查看并且修改所有的Entry等。
这一过程可以理解为访问控制。
五、LDIF
LDIF通过一个文本文件,用来描述目录数据,可以将目录服务器中的数据导出到一个LDIF文件中,并且可以将LDIF文件中的数据导入到另一个目录服务器。
即使这两个目录服务器内部使用的是不同的数据库格式。
有两种类型的LDIF文件,第一种用来描述Directory目录数据的,第二种包含更新语句,用于更新现有的Directory条目数据。
第一种文件,内容包含两部分:
第一部分是DN,第二部分是一系列的属性-值对
如下(rúxià)图:
以上的LDIF文件只包含(bāohán)了一个DirectoryEntry。
可以在一个LDIF文件中包含多个Entry
第二种文件,包含更新语句。
第一行同样是DN。
第二行是更新类型,后边是要更新的属性及值。
当然(dāngrán)也可以用来添加新的Entry。
如下(rúxià)图:
添加(tiānjiā)一条Entry(注意第二行:
changetype:
add)
如下(rúxià)图:
删除(shānchú)一条Entry
如下(rúxià)图:
修改(xiūgǎi)一条Entry
语法(yǔfǎ)如下:
dn:
dnofentrytobemodified
changetype:
modify
modifytype:
attributetype
[attributetype:
attributevalue]
添加属性示例
删除属性示例
或者(huòzhě)
修改(xiūgǎi)属性值
也可以(kěyǐ)将多条更新语句放在一个文件里,各语句之间用“-”分开(fēnkāi)
重新命名Entry或移动(yídòng)Entry
语法(yǔfǎ):
dn:
Entry的DN名称(míngchēng)
changetype:
moddn //changetype类型(lèixíng)必须为moddn
[newsuperior:
如果(rúguǒ)要移动一条Entry则该项表示一个新的节点的DN]
[deleteoldrdn:
(0|1)该项表示是否要删除修改以前的RDN 0不删除]
[newrdn:
Entry的新RDN]
由于一条Entry的DN是由该Entry的RDN和它的父节点的DN组成的。
一条Entry的RDN是该Entry中的一个属性。
就像关系数据库中,主键值可以唯一区
区分一条记录一样,在同一个节点下的所有Entry中的RDN必须由唯一标识该Entry
属性组成。
所以重新命名Entry,也就是重新命名该Entry的RDN。
示例如下:
执行以上语句(yǔjù)后该Entry 如下所示:
dn:
uid=babsj,ou=People,dc=example,dc=com
uid:
babsj
uid:
bjensen
移动一条Entry示例(shìlì)如下:
六、LDAP模式(móshì)(schema)
如果你使用过关系(guānxì)型数据库,那么对模式应该不会陌生。
关系数据库系统都是通过表格的形式进行数据存储的。
在这之前,我们首先要定义表结构,也即是模式。
表结构由一些字段组成,每个字段都有一个类型,以及一些约束条件。
这就规定了我们可以存储的信息。
上面我们介绍过LDAP目录服务器中存储的信息是被组织成树型结构(jiégòu)进行存储的。
和存储信息之前也要定义模式,不过,与关系型数据库系统不同的是,作为LDAP目录服务器的用户而言,一般不需要自己定义模式,所有实现LDAP协议的目录服务器,都已经定义好了许多模式,这些模式可以解决我们大部分的信息存储的问题。
LDAP模式是由以下一些元素组成的
1:
Attributetypes属性类型,也就是属性名称。
我们已经介绍过,每个属性名称其实也代表着一种属性类型。
表示该属性可以存储什么样的信息。
2:
Attributesyntaxes属性语法,该元素表示每个属性名称所存储的信息如何组织。
3:
匹配规则,每一个属性都有匹配规则,用于数据的比较。
4:
objectclasses,对象类.上面已经介绍过,每个Entry都必须至少属于一个objectclass。
规定了该Entry可以存储那些属性。
下面介绍一下LDAP协议中定义的一些常用属性极其含义(具体信息看RFC2252文档)
属性
中文名称
描述
c
国家名称
值为两位国家代码
如:
中国:
CN
美国:
US
cn
通用名称
dc
域名组件
如:
dc=sohu,dc=com
co
国家名称
国家的全名
gn
gavenName
homephone
家庭电话号码
邮件地址
mobile
移动电话号码
o
组织名称
ou
部门名称
通常为组织机构下的
一个部门或者一个大
型实体下的一个子实
体
postalCode
邮政编码
sn
姓,别名
st
州或者省的名称
street
街道地址
userPassword
用户密码
uid
用户ID
departmentNumber
部门编号
displayName
显示名称
description
描述
employeeNumber
员工编号
manager
经理
下面(xiàmian)是一些LDAP协议中定义的objectclass(具体(jùtǐ)信息查看RFC2252文档)
Objectclass
必须属性
可选属性
account
userid
description$seeAlso$localityName$organizationName$organizationalUnitName$host
country
c
searchGuide$description
dcObject
dc
device
cn
serialNumber$seeAlso$owner$ou$o$l$description
inetOrgPerson->person
继承person
audio$businessCategory$carLicense$departmentNumber$displayName$employeeNumber$employeeType$givenName$homePhone$homePostalAddress$initials$jpegPhoto$labeledURI$mail$manager$mobile$o$pager$photo$roomNumber$secretary$uid$userCertificate$x500uniqueIdentifier$preferredLanguage$userSMIMECertificate$userPKCS12
organizationalPerson
继承Person
title$x121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$ou$st$l
organization
o
userPassword$searchGuide$seeAlso$businessCategory$x121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$st$l$description
organizationalRole
cn
x121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$seeAlso$roleOccupant$preferredDeliveryMethod$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$ou$st$l$description
organizationalUnit
ou
userPassword$searchGuide$seeAlso$businessCategory$x121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$st$l$description
person
cnsn
userPassword$telephoneNumber$seeAlso$description
Top(所有类的基类)
七、常用(chánɡyònɡ)目录服务器
1:
Apachedirectoryserver
2:
Sundirectoryserver
3:
openDS一个开源(kāiyuán)的,基于LDAP和DSML标准的Directoryservice。
Directoryservice不仅包括Directoryserver,还有其它与directory
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LDAP 使用手册