




已阅读5页,还剩79页未读, 继续免费阅读
(计算机应用技术专业论文)ldap协议研究与ldap服务器的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名趁垄日期矿。哞珀,7 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:! 墨丝丕夕导师签名: 日期:矽年i - 月纫日 学科专业:计算机应用 论文题目: l d a p 协议研究与 l d a p 服务器的设计与实现 导师:彭寿全教授硕士生:涂德志n o :0 0 s 0 6 0 4 1 摘要 l d a p 至问世以来已有近1 0 年的历史,1 9 9 7 年发展到了第三版,支持r e f e r r a l ,加强 了安全认证。国外的l d a p 产品居多,而国内对于l d a p 的应用还是很多的,例如c a 系 统中把l d a p 服务器当作存放证书的数据库。 本文对l d a pv 3 进行了深入浅出的讨论,简要地分析了l d a p 协议模型说明了 d n s 对l d a p 的贡献,详细介绍了l d a p 服务器灵活的配置策略和实现分布式l d a p 的 两大技术:r e f e r r a l 指针和r e p l i c a 复制。 l d a p 服务器是一台特殊的数据库,本文详细分析了b e r k e l e yd b 数据库,并力图说 明这一类嵌入式数据库是非常适合l d a p 服务器的。 本文在分析l d a p 协议以后,完成了l d a p 连接池的设计与实现,通过s c h e m a 映射 到关系数据库的表中,把m ss q ls e r v e r 数据库挂在了l d a p 服务器上的d i t 子树上。并 在此基础上进行了测试和分析。 l d a pv 3 加入了s a s l 认证机制,本文简略地介绍l d a p 的安全技术,讨论了如何把 防火墙以内的应用通过l d a p 服务器让防火墙以外的i n t e m e t 用户安全访问。 关键字:l d a p ,连接池数据库安全r e f e r r a i ,r e p l i c a ,u m l m a j o r :c o m p u t e ra p p l i c a t i o n t i t i e : t h es t u d yo f l d a p & t h ed e s i g na n di m p l e m e n to fl d a ps e r v e r a d v i s o r :p r o f s h o u q u a np e n g m a s t e rs t u d e n t :d e z h it un o :0 0 s 0 6 0 4 1 a b s t r a c t i th a sb e e na b o u t1 0y e a r ss i n c el d a pw a sb o m l d a pv e r s i o n3 ( i n1 9 9 7 ) s u p p o r t sr e f e r r a l a n ds a s ls e c u r e :a u t h e n t i c a t i o n t h e r ea r em a n yl d a pp r o d u c t si na b r o a d ,a n dm a n y a p p l i c a t i o n si nh o m e ,f o re x a m p l e ,c as y s t e mr e q u i r e st op u tt h e i rc e r t i f i c a t e si n t ol d a p s e r v e r t h i sp a p e rd i s c u s s e si nd e p t hl d a pv 3 :p r o t o c o lm o d e l t h ec o n t r i b u t i o no fd n s t ol d a p , t h ef l e x i b l ec o n 埏u r m i o no fl d a ps e r v e ra n dt w ot e c h n i q u e sr e f e r r a la n dr e p l i c ai nd i s t r i b u t i o n s y s t e m l d a ps e r v e ri sas p e c i a ld a t a b a s e t h i sp a p e ra n a l y z eb e r k e l e yd b a n dt r yt oi l l u s t r a t e t h e s ee m b e d d e dd a t 曲a s e ss u c ha sb e r k e l e yd ba r es u i t a b l ef o rl d a ps e r v e r a t i e ra n a l y z i n g l d a pp r o t o c o lt h i sp a p e rd i s c u s sh o wt om a d em ss q ls e r v e rd a t a b a s eb et h eb a c k e n do f l d a ps e r v e r f i n a l l yf r o mt h el d a pc l i e n tw et e s tt h es e r v e rp e r f o r m a n c ew i t hi d b mo rw i t h r e l a t i o n a ld a t a b a s e a d d i t i o n a l l y ,w ed i s c u s st h es c o u r i t yo fl d a p , a n dh o wt op u tt h ea p p l i c a t i o nw i t h i nt h e f i r e w a l lo u to ft h ef i r e w a l lt h r o u g hl d a ps e e v e ls p e c i a l l y , i nt h i st h e s i sw ef u l f i l lt h ed e s i g n u s i n gu m la n di m p l e m e n to f l d a pc o n n e c t i o n p 0 0 1 k e y w o r d s :l d a p c o n n e c t i o np o o l d a t a b a s e s e c u r i t y r e f e r r a l r e p l i c a u m l 厶喇p 协议嘲! 宠守上m 尸腰旁嚣的蠲订一争宾喜吧 ! 1 什么是目录 第一章引言 一提起目录,人们就想起了u n ix 的树状目录,目录中包含文 件和子目录,目录和文件的安全由a c l 控制。其实u n i x 的树状目 录就是我们这里所说的目录中的一种,文件系统中的全称路径名 就是我们在后文提到的d n 名( d is t in g u is h e dn a m e ) ,文件系统 中的相对路径名对应的是r d n ( r e l a t i v ed i s t i n g u is h e d n a m e ) 。 在u n ix 系统中,所有的资源都是以文件的形式来管理的,例 如打印机、串口、用户和网卡等等。如果增加设备,那么也一定 会以文件的形式来管理。u n ix 文件系统的安全级别是c 2 级,也 就是说对于普通的应用它已经很安全了,它也可以按照组的方式 进行访问控制。那么文件系统的目录给了我们一种什么样的启 示呢,我们可以把u n i x 文件系统的目录进行推广,把计算机网络 中的资源以一致的目录形式来管理,作为一种网络协议的目录服 务协议d a p ( d ir e c t o r ya c c e s s p r o t o c o l ,它是i s 0 标准) ,远 比u n ix 文件系统的目录在功能和安全上都强得多。 由于d a p 的庞大,早期的目录都是特定于某个应用的目录( 只 实现了d a p 的部分功能) ,即专用目录,也就是说它只存放了特 定应用的信息,因此不能被其它应用访问。如果每个专用目录都 要实现目录的全部功能,工作量是非常惊人的,因此许多专用目 录都只实现d a p 的部分功能。这就造成专用目录可能不能互相复 制、不能分割名空间、不能采用通常的检索手段。这对于程序开 发员和系统管理员来说,不啻是噩梦。程序员要为每一种类型的 专用目录开发应用,管理员要用不同的管理工具管理不同的专用 2 l d a p 协议研究与l d a p 聩务器的设计与实现 目录。同时,有些信息存放在不同的专用目录中,也会造成信息 冗余。当信息发生变化时,要更新、同步该信息在多个专用目录 上的副本也较困难,特别是在不同的专用目录管理员管理时,就 更困难。 要解决上述缺点,需要一种通用的、独立于应用的目录。它必 须基于开放的标准,得到大部分厂商的支持,可以运行在多种平 台上。它必须能够通过标准的一致的a p i 访问,具有良好的扩展 性,可以接纳任何应用需要的数据。在小型系统上,它不应该需 要额外的资源就能完全发挥功能。因为有大量的用户和应用访 问,所以它必须健壮、安全、可伸缩。在这种背景下l d a p 就诞生 了。 1 2l d a p 历史 l d a p的英文全称是 l i g h t w e ig h td i r e c t o r ya cc e ss p r o to c o l ,简称为l d a p ,由美国密西根大学所发明。它是基于 x 5 0 0 标准的协议,但是又比它简单许多,并且可以根据需要定 制的一种目录服务协议。与x 5 0 0 不同,l d a p 支持t c p i p , t c p ip 对访问i n t e r l 3 e t 是必须的。 l9 8 8 年,c c i t t 组织首先制定了x 5 0 0 标准来全面描述目录服 务的工作模型,包括目录服务器的目录结构、命名方法、搜索机 制以及用于客户机与服务器通信的协议d a p ( d i r ec f o r ya c c e ss p r o t o c 0 1 ) 。此标准很快被is o 组织引用,编号为i s 095 9 4 。但 是,在实际应用的过程中,x 5 0 0 存在着不少障碍。由于d a p 这 种应用层的协议是严格遵照复杂的is o 七层协议模型制定的,需 要得到其下六层协议的全面支持,因此在许多小系统上无法使 用。而t c p i p 协议体系的普及使得d a p 协议越来越不适应需要, 毕竟t c p i p 对i n te r n e t 访问是必须的。在这种情况下,d a p 的 简化版本( 丢掉了大多数的会话层和表示层,只是采用了简单的 编码传输和认证) l d a p 应运而生,它不需要获得d a p 的资源就可 囊i 碰i 露 删p 协议研霓与朋尸腰务器的谮计与饕砘 以存取目录,这是对d a p 的一种补充。1 9 9 3 年,r f c l 4 8 7 设计的 l d a p 服务器不是独立的目录服务器,主要扮演l d a p 客户机与 x 5 0 0 服务器问网关的角色( 见图1 一1 ) ,它既是l d a p 的服务器 又是x 5 0 0 的客户机。1 9 95 年,r f cl7 7 7 ( l d a pv 2 ) 设计的l d a p 服务器完全取代了x 5 0 0 服务器而独立提供目录服务( 见图卜 2 )。 图卜1l d a p b 务器作为网关 目录 咂丑侣 图卜2l d a pj 报务器作为独立服务器 1 9 9 7 年,r f c 2 2 5 1 ( l d a pv 3 ) 是对l d a pv 2 的升级,主要增 加了与安全服务相关的认证机制( s a s l ) 和参考指针 ( r e f e r r a l ) 。 l d a pv 3 是i n te l - r e t 的标准,它增加了一些新的特性: 1 ) 增强的s a s l 认证。 2 ) 通过s s l ( s 0 c k e ts e c u r i t yl a y e r ) 进行一致性检查和增 加了机密保护( c 0 n f i d e n t i a lp r o t e c t i0r l s ) 。 3 ) 国际化,使用了u n i c o d e 和语言标签。 4 ) 使用了参考指针( r e f e r r a l ) 。 5 )在p d u ( 协议数据单元) 中增加了c o n t r o ls 域,l d a p 服 务器通过该域为用户提供扩展操作。 6 ) 模式发现( s c h e m ad is c o v e r y ) 。 潮麟 4 l d a p 把k 议与院与埘尸朋哥捌【威,设由鲁- 饕观 1 3l d a p 的应用 据统计,目前己由4 0家公司采用l d a p 如 n e t s e a p e n a v i g a t o r c o m m u n i c a t or ,m i c r os o f ta c t i v ed ir c t o r ytn o v e l | n e t w a r e d ir e c t or ys e r v i c e s 和i b ms e c ur e w a yl d a p 目录等等。f 面简要介绍一 fl d a p 在国际国内的应用。 1 3 1 l d a p 在w i n d o w s 上的应用 微软是在n t 4 0 开始引入目录服务的,n t ”域( d o m a in ) ”的 概念就是目录服务的一个基本单元,当时它没有起什么作用。到 了w in d o w s2 0 0 0 ,目录服务发展成了活动目录( a c t iv e d if c t o f y ) ,成了w i l q d o w s2 0 0 0 的一个亮点一一它充当管理用户 身份、网络资源控制和访问验证的中央授权机构,提供了对 w in d o ws 的用户账号、客户、服务器和应用程序的管理功能。 活动目录是第一个企业级的目录服务,是标准的目录服务的极 大延伸,除了支持l d a pv 3 以外,还集成了d n s 和站点,它完全 与操作系统集成在一起。除了向w in d o w s 应用程序提供全面的目 录服务外,活动目录被设计为隔离、移植、集中的管理集合点。 这使得活动目录成为信息共享和公用网络资源管理的基础,包括 应用程序、网络操作系统和支持目录的设备。 另外,活动目录缺省支持完全集成的公开密钥基础设施 ( p k i ) 和安全套接字盼议层( s s l ) ,这就允许组织机构安全地 将选定目录信息扩展到防火墙之外,以便将其提供给外部网络用 户和电子商务用户。 1 3 2国内的l d a p 应用 2 0 0 0 年 d ir e c t o f y 7 月,香港中文大学启用了“中大目录”( c u h k s e rv ic e )1 0 版 (网址 为 ;舞潞磁i 麓i l o a p 够议车雕宅与r 上删尸雁务器蒯,设曲k 与:穿韶 5 b ! ! 卫;z 曼! 受堂:! ! b ! :g i ! :b ! i ! i ! z 女i ! ! ! ! ! ! y ) ,它用于管理该校 的学生和教职工资料( 包括姓名、系或部门、e m a i l 地址和邮件 地址等) ,支持使用浏览器操作目录,具有将个人信息隐藏,可 以不让互联网用户看到。 台湾“易迅”网站开放了l d a p 服务器( 网址 h t t p :1 1 1d a p d e t o f i e t ) ,它支持l d a p 协议,已经解决了中文化 问题。特殊之处在于它把l d a p 引入了搜索引擎,支持多条件查 询,最多可同时达到九项条件。 1 4 目录是一种特殊的数据库 目录是一种数据库,但数据库不是目录。知道目录的人一般都 会问同样一个问题,目录是数据库还是一种协议? 第一版的l d a p 目录不是数据库,它真正是一个协议( 把t c p i p 协议转换为i s 0 的协议,如图卜1 所示) ,它不涉及对数据的处理,数据的处理 交给了x 5 0 0 服务器,它不过是一个充当协议转换的角色。l d a p 发展到第二版,抛弃了x 5 0 0 服务器而独立运行,于是数据库就 挂在l d a p 服务器上,这时的l d a p 服务器不仅仅实现了l d a p 协 议,而且自己保存了数据以供客户机查询,从客户机的角度来 看,l d a p 服务器的主要功能是保存数据以供客户机查询,这与数 据库的数据存取功能是相似的,因此我们可以把l d a p 服务器看作 一种数据库。 目录是一种很特殊的数据库。数据库有完善的数据存取和数据 管理功能,但l d a p 服务器在这两方面都很弱,不过在数据安全方 面,比一般的数据库做得好得多。 1 。5 分布式目录 目录既可以是本地的,也可以是全局的。全局目录通常是指分 布式的,这就意味者数据是分布在不同的计算机上,而l d a p 客户 6l 巩p 协议研究与l m p 服务器的设计与实现 机都使用的是同一个名空间,所以,不管数据在哪个地方,用户 查询到的结果都有相同的形式,即用户视图都相同。l d a p 服务器 实现分布式有两种方法,一种是使用复制( r e p l ic a ) 。另一种是 使用参考指针( r e f e r r a l ) 。 复制可以是主从复制,也可以是主主复制,复制带来的好处 是增加了数据的可靠胜和缩短了用户的响应时间。 参考指针是一种网络指针,是指在本地l d a p 服务器无法完成 客户机的请求时,本地l d a p 服务器给客户机返回参考指针,让客 户机通过参考指针再向别的l d a p 服务器提出请求。使用参考指针 带来的好处是,具有同一个名空间的目录放在了不同的地方,使 目录数据库数据的增加不受限制,当然对客户机的响应时间增加 了,并且也增加了客户机程序的难度,因为它还有可能访问多台 其它l d a p 服务器。 1 。6 l d a p 目录的特性 l d a p 目录具有以下特性:开放性、分布性、可伸缩性和跨平 台 易于定制 易实现。 快速搜索 快。 可以方便地提供不同的l d a p 目录服务,其策略很容 l d a p 目录有很强的过滤器功能,并且搜索速度很 安全特性管理员可以对目录强制使用安全特性,以便保护目 录信息不被非法获取和篡改。 开放性l d a p 是遵循i n te r n e tr f c 标准的。 跨平台l d a p 目录可以在大多数硬件平台上运行。 分布特性目录可以跨越机器边界,也即目录信息可以放在网 络上的不同机器上。 复制特性提高目录的健壮性,目录信息应尽量让更广阔范围 的用户所利用。 溱麟 l d a p 协议研究与l 径直p 辗务器的设计与蜜现7 1 7 l d a p 目录的优点 目录服务有许多优点,下面介绍活动目录作为种目录的优 点: 简化管理任务例如活动目录可以方便地管理系统资源一一 用户账号、客户、服务器和应用程序。 加强网络安全性提供各种安全级别的认证服务。 互操作性通过互操作使用现存网络,使用己有的1 。c p l p 协 议进行通信。 以层次化组织用户和网络资源,活动目录使管理员对用户账 号、客户、服务器和应用程序进行一致的管理,也就是说只是 通过活动目录就可以对它们进行管理。这就减少了冗余的管理 任务,同时,通过让管理员管理对象组或容器丽非每个独立的 对象来增加管理的准确性。 管理日户验证和访问控制的工作往往单调乏味且容易出错。 活动目录集中进行管理并加强了与组织机构的商、世过程一致、 且基于角色的安全i 生。例如,对多身份验证协议( 如 k e r b e f os ,x 5 0 9 认证以及由灵活的访问控制模型组成的智能 卡) 的支持,实现了对于内部桌面系统用户、远程拨号用户和 外部电子商务客户强大且一致的安全服务。 1 8 本文内容 关rl d a p 方面的文章已经有很多了,大多数都是在谈论 l d a p 协议本身,而在如何实现方面涉及不多,本文内容不仅仅 是l d a p 协议的描述,而在实现细节方面也作了深入地探讨,例 如s c h e m a 、d n s 、对“根”条目的处理、存取控制和数据库等 等,它们分散在以下各个章节,是在i 。d a p 服务器实现过程中必 须处理的部分。 鬟细心i :蓥 8 厶剐尸倒议嘲! 宠与厶硝尸腰务毒# 的萄誊由t 鲁售朗宅 本文引用一些与l d a p 有关的r f c 文档,有些资料来自于 使用l d a p 的经验。本人实现了l d a p 中的连接池部分和关系数 据厍部分。第二章介绍了l d a p 协议。以o p e n ld a p 的配置文件 作为引子,着重介绍了l d a p 的存取控制,数据库和复制技术。 第三章从使用l d a p 服务器出发,介绍了l 1 ) a p 服务器的各种部 署方案。第四章是连接池的设计与实现。第五章是介绍l d a p 服 务器要选择什么样的数据库最合适,并且实现了把关系数据库 挂在l d a p 服务器上的d i t 子树上。第六章介绍了o p e n d _ a p 是 如何建立数据库的,并进行了对比测试。 厶硝,协议捌皖,铲删j d 席务器的议。爿蹿靶9 第二章l d a p 协议综述 2 1l d a p 协议模型 l d a p 协议采用的模型是客户机服务器模型。客户机构造 一个l d a p 协议请求,通过t c p i p 传递给l d a p 服务器,在 l d a p 服务器执行完必要的操作后,把包含结果或者错误的响 应通过t c p i p 回传给客户机( 见图2 1 ) 。l d a p 协议请求的 p d u 是一个l d a p m ess a g e 结构,l d a p 协议响应的p d u 是一个 l d a p r es u l t 结构。l d a p m ess a g e 和l d a p r es u l t 的p d u 直接映 射到t c p 的字节流在网上传输,l d a p 服务器必须分配一个侦 听端口( 缺省为3 8 9 ) ,l d a p 客户机通过t c p 同服务器连 接。 l 1 请求( l d a p m e s s a g e ) l d a p b i 务器l d a p 客户机 一2 响应( l d a p r e s u l t ) 图2 一ll d a p 客户机服务器模型 l d a p 服务器回传的响应既可以是同步的,也可以是异步 的。l d a p m ess a g e 结构中有一个m e ss a g e i d 整形变量,对于每 个请求它的值都不同,通过m ess a g e i dl d a p 客户机知道自己 发出的请求是那一个,服务器通过m ess a g e i d 可以识别客户 机发出的请求并正确返回该请求的响应,所以请求和响应可 以不同步。在l d a pv 3 版,响应可以是指向另一台l d a p 服务 器的参考指针,以减轻本l d a p 服务器的负担。但客户端编程 时就麻烦多了,它必须处理三种正常的响应情况: 上凸4 尸协烈 院与厶叫尸假务毒# 的蠲:由l 鲁饕 挹 l d a p r e s s e a r c h e n t r y表示找到了一个条目 , l d a p r e s s e a r c h r e f e r e n c e 表示找到了一个参考指针, l d a p r e s s e a r c h r e s u l t 表示这是最后一个结果。每一种情 况都要有相应的处理,增加了客户端软件的负担。 l d a p 使用了编码传输。为了简化在网络上数据的传输,使 用a s n 1b e r 编码的很少一部分,即:编码的数据类型都是 字符串,不编码其它的数据类型。 2 2 l d a p 数据模型 2 2 1 条目的构成 目录中存放数据的基本单位是条目。条目代表了真实世界 中的对象,例如人、服务器、组织等等。每个条目由一个d n 名和多个属性构成,每个属性有一个类型和多个值构成。条 目的逻辑结构如图2 2 所示。 条目 l 。n属性l属性2属性n 。属性2 展开 类型值l值m 图2 - 2 条目的逻辑结构 为了更清楚地说明l d a p 条目的概念,下面我采用了对比的 方法( 不一定很恰当) ,使用l d a p 的一个条目同关系数据库 的表进行对比说明。第一个例子:让我们描述一下“电子科 上蜊尸赫戗研咒可厶刚_ p 胆旁器扇,堙订j 亨实司e 大八系的彭老师”这条记录( l d a p 中的一个条目) ,将该记 录按层次描述:彭老师一 八系一 电子科大。 首先我们应该建立一张表p e r s o n s ,指定列名、类型以及 约束,给各列命名为dn 、c n 、o u 和d c ,指定dn 为关键字。 c r e a t et a bl ep e r s o n s , 、 d nc h a r ( 2 5 6 )n o tn u l l , c nc h a r ( 8 0 )n o tn u l l 0 uc h a r ( 8 0 )n o tn u l l , d cc h a r ( 25 6 )n o tn u l l ) 彭老师是一个实体,实体的0b j e c tc l ass ( 对象类型属性) 是 p e rs o n ( 人) ,0 b je c tc la ss 在关系数据库的一张表中无法表 示出来。表中各个字段( d n 、c n 、0 u 和dc ) 对应的是l d a p 中条目的属性类型。p e r s o n s 表中“插入”记录对应的就是 l d a p 中给各属性类型“赋值”( 其值叫属性值) ,例如c n : p e n g ( 公共名 c 0 m m o n n a m e ),0u:de p 8 ( 组织单元 o r g a n iz a t i0 n u in t ) ,d c :u es tc e d u c n 。在l d a p 中把属性 类型( 例如cn ) 和属性值( 例如p e n g ) 合起来称为属性( 表 示为c n :p e n g ) ,把所有的属性串联起来就得到了d n 属性值 ( 注意,这是绝大多数的d 1 1 名的构成方法,目的是为了通过 d n 名就可以了解实体的主要属性,但是在l d a p 中这不是必须 的,dn 名和属性可以完全没有关系,它只要遵照sc h e m a 定义 就行了,这是指d n 名中的属性类型必须符合sc h e m e i 定 义) ,即dn :cn = p e l l g ,0u = de p 8 ,d c = u es tc ,dc = e d u ,d c = c n ( 把dc 拆成了三部分) ,d n 相当于p e r s o n s 表的关键字。在 条目中,有的属性是可选的,有的属性是必须的。我们要深 入描述一下这个实体( 人) ,加入我们感兴趣的属性,第二 个例子:“电子科大八系的彭老师有两部电话,号码为 832 0 3 5 8 0 和 832 0 35 8 x ”。显然电话属性为p e rs o n i d a p 协议研舞与l 0 4 ,) 腰务器的教计与饕韶 ( 0 b j ec tc l ass ) 的口j 选属性( 有可能一部电话也没有) 。 ld a p 描述条目时使用了特殊的文件格式l d if ( l d apd a t a ir l terch a n g e f o r m a t , l d a p 数据交换格式,参见 r f c 2 8 4 9 ) ,我们用l d if 文件描述一下第二个例子: d n : c n = p e n g ,o u = d e p 8 ,d c = u es tc ,d c = ed u ,d c = cn cr l :p e n g o u :d e p 8 d c :u es tc d c :e dl i d c :c n te le p h o n e n u m b er :8 32 035 8 0 te le p h o n e n u 【i be r :8 32 0358x 通过该文件可以使用工具方便地插入到l d a p 服务器中去了。 该例子条目的逻辑结构如图2 3 所示。 d n :c n = p e n g ,。u = d e p 8 , c n :p e n go u :d e p 8 d c :u e s t c f a c :e d u d c 2 u e s t c ,d c 2 e d u ,d c 3 c n l o b je c t c t a s s :t e l e p h o n e n u m b e r : t e1e p h o n e n u m b e r : 1 d c :c n l p e r s o n 8 3 2 0 3 5 8 08 3 2 0 3 5 8 x 图2 3 例子条目的逻辑结构 在这里先介绍一下s ch e m a 的概念,关系数据库的s c hema 在创建表或者视图时就建立好了,即各表或者视图的逻辑关 系。为了获得极高的可伸缩性,l d a p 的sc h e m a 是由配置文件 来确定的,它确定了各种属性之间的关联关系( 参见 r f c 225 6 ) ,下面是p e rs0 i l 的s c h e m a : 漤暖碰蹩鬟 删尸协议研冀与l 删尸腰旁器的设计与饕韶 ob je c tc l ass ( 2 5 6 6n a m e pe r s o n s o p t o p s t r u c t u r a l m u s t ( cf 1 ) m a y ( userp ass w o r d $ te le p h o n e n u m b e r $ se e a ls o $ d es c r ip t io n ) ) 说明:p e rs 0 1 3 是o b j ec tc l ass 的名字,必须包含c n 属性,而 us er p ass w o r d 、te le p h o ne n u m be r 、se e a ls o并口d esc r ip t io n 属性是可选的。s t r u c t u r a l 是指一种对象类别,对象类别包 括三种:s t r u c t u r a l 、a b s t r a c t 和a u x il i a r y 。用关键字s u p 指明p e rs o n 是由t o p 派生来的。表2 一l 描述了三个对象类及 其属性。 表2 1对象类、强制属性、对象类别和可选属性 对象类对象类强制属性可选属性 ( o bj e c t c l a s s )类别 ( r e q u i r e d f o p t l 0 n a l a t t r i b u t e s la t t r l b u t e s 、 pc rsons t r uc t ur a l o b je c t c ia s s , d e s cr i p t i on , ( 描述自然人)s ec a ls 0 te i 。p h o n e n u mber user p ass w or d 0r g a n iz a t i ona 1 persons t r uc t ur a l o b je c t c iass , d escr ip t i on ( 描述组织成员)see a is o t e ie p h o ne n u mber u s cr pa s s w or d p 0s t o f f icc b o x , p o s ta i a d dr ess s t t i t le s tr 0 1 1 9 au t h ef t t icd t i o n us e oa u x i i ia r yo b jec t c l a ss ( 描述证书) us er c er t i f i ca t e 无 2 2 2 d i t 树的构成 l d a p 协议条目( 相当于数据库表中的记录) 的物理结构是 :粼粼黪 l d a p 协议嘲! 究争删尸腰劳嚣威,烈由u 辨韶 如何描述的呢? 关系数据库使用表的形式,而ld a p 使用的是 树的形式。l d a p 中的d n 名是各种属性的串联,如dn:cn = p e n g ,o u = dep 8 ,dc=ues tc ,d c = ed u ,dc = cn ,在ld a p 协议中,把 d 1 3 名分开来,每一部分叫做rd n ( 相对d n 名,如cn = pe ng 就是一个rd 1 1 ) ,r d n 很容易组织成一棵树,把所有的属性都 加到这棵树上( 如0b jec tc lass 和te lep h 0 1 1e nu m be r 等 等) ,这棵树被称为d i t 树( d ire c to r yin f or m a t i0 1 3t ree 目录信息树) 。图2 4 示出了一棵d i t 树,包含了第二个例 子的条目。 i 鬻髑碰漤; 厶m 尸倒点宅嘲i 究与z m 尸腰务器的地订亨饕现 2 2 3 鸡和蛋的问题 l d a p 不允许“悬挂条目”( 即没有父节点的条目) 插入到 d i t 树中,故父节点对子节点具有信任关系。若无父节点,则 该节点不允许插入到该d it 树中。由于根节点没有父节点, 所以处理根节点的问题就成了先有鸡还是先有蛋的问题。 名字上下文( n a m ingc o n t e x t ) 的定义:由l d a p 协议构造 的信息是基于分布式的,把所有信息集中起来就是一棵d i t 树,每一台l d a p 服务器就是一棵d i t 子树,把整棵树的条目 构成的空间叫做名字上下文。 每一台l d a p 服务器除了提供d i t 树信息以外,还要提供自 身信息和别的服务器信息,这些信息都不属于名字上下文。 l d a p 服务器自身的信息就是本地d i t 树的“根”( d s e ) ,别 的l d a p 服务器信息就是“参考指针”( re f e r r a l ) 。 l d a p 服务器的“根”有一个名字一一d s e ( d s a s p e c if ic er l tr y 目录服务代理条目) ,l d a pv 2 不支持d s e 。d s e 不属 于名字上下文,表2 2 列举l d a pv 3 中所有的d s e 属性( 这 些属性都是可选的) 。 表2 2d s e 条目的可选属性类型 属性名描述例子 n a m in g c o n tex ts 本机名字上下文 ues t c e d u c n a l t se rvef 对别的服务器的引 ld a p :r o o t 用o p en ld a l 3 ,o r g s u p p o r te d ex t e ns io n本机支持l d a pv3 的扩展操作的0 id s u p p o r te d c o n t r o l本机支持l d a pv3 控制的0 i d s u p p o r te d s a s l m ech a n is ms本机支持的s a s l 机 制的名称 s u p p o r te d l d a p ve rs io n l d a p 服务器的版本3 号 对n a m ir l g c o n te x ts 的说明:如果该l d a p 服务器没有管理 任何信息( 例如它只是充当网关的角色) ,那么该属性可以 g 熬瞪艨慧 、p i = * 荆! ! * ! l b a 尸协议研霓与删尸腰苷器的设计与饕鄙 省略;如果该l d ap 服务器可以确信它拥有了所有的条目( 例 如只有一台l d a p 服务器) ,那么可将该属性赋值为n u ll ( 当 查询该d se 是,以d n 名为空去查嘲) 。 在图2 4 中的d s e 条目为dn :dc=ues tc ,dc = e du ,d c 2c l q , d s e 条目的属性如表2 2 所列的属性。 在0 pe n id a p 中,本机名字上下文( i l i u m in g c 0 n t ex ts ) 和参 考指针( a lt se rve r ) 是放在s 1a p d c0n f 文件中( 见后文, 表2 3 ) ,例如: d a ta b a se 1d b m su f f ix “dc=ues tc ,dc = e d u ,dc = c n ” r e f er r a lld a p :r 0 0 t 0 p e l 3 ld a p o r g 一个d a t a b a se 配置项对应一个数据库名字,用s u f f ix 来 标识数据库主机 (idb m对应的是域名为 “dc=ues tc dc = e d u ,dc = c n 的d i t 子树) ,r e f e r r a l 语句放 在全局中( 是指位置处在全局的位置) 。0 s e 条目的d n 名就 是“d c = u es tc ,d c = e d u ,d c = cn ”。 条目是按照层次来组织的中间不能出现断层,如果上一层没有 数据那么这一层就不能插进去。需要特殊处理的地方是l d a p 服 务器中如何插入第一个条日o p en i d a p 在通过程序插入数据之前, 必须手: 加入第一个“根”条目从而解决了鸡和蛋的问题。 2 3l d a p 的查询操作 l d a p 的查询主要是在d iy 树中寻找条目子节点( 有可能搜 索到参考指针) ,l d a p 的查询速度快,查询功能强,支持过 滤器查询。 查询有三种方式,第一种是在指定的条目中查询所需要的 信息,使用l d a p s c o p e b a s e 标签表明搜索的范围:第二种 是在指定条目的同层中查询所需要的信息,是指查询兄弟节 点,使用的标签是l d a p s c o p e o n e l e g e l :第三种是在指定条 爨黼l l d a 尸协烈研完与p a p 服旁器的设计与实韶1 7 目的子树中查询所需要的信息,该条目指出了查询的d i t 子 树入口,使用l d a p s c o p e s u b t r e e 标签。 2 4l d a p 与d n s l d a p 服务器是基于分布式的,那么如何在in te rn e t 上定 位l d a p 服务器呢? l d a p 使用域名服务d ns 作为它的定位服 务器。在in ter ne t 上对一台主机的唯一标识信息是它的 f q d n ( f u l lq u a l i f ie d d 0 m a inn a m e ) 格式的域名( 如 1d a p ues tc e d u cn ) ,in te r n e t 是利用d n s 标准来实现将域 名解析为相应ip 地址,所以d ns 服务器作为l d h p 目录的定 位服务器,是必须的。l d a p 是in t e r n e t 标准的目录访问协 议,用于访问、检索in terne t 上目录中的资源。 在d ns 的帮助下,l d h p 客户机就可以在in te r n e t 上找到 l d a p 服务器,例如:ld a p :ld a p u es tc e du c n ,l d a p 客 户机通过该u r l 找到电子科大的l d h p 服务器,使用默认的端 口号3 8 9 。 l d a p 的d s e 条目为dc = ld a p ,dc = u es tc ,d c = ed u ,dc = c n 就是 为了和d n s 的条目保持一致,它标识这台l d h p 服务器主机的 域名为u es tc e du c n 。d n s 服务器在没有l d a p 服务器的情况 下正常工作,而l d a p 服务器在没有d n s 服务器的情况下却不 能工作,因为在in ter n e t 上无法定位l d h p 服务器。l d h pv3 的参考指针( re fe rr a l ) 就是使用了u r l 。通过该u r l 就可以 到i n t e r ne t 上寻找别的l d a p 服务器。 2 5s c h e m a l d a p 中的s c h e m a 是属性类型、对象类类型和其它一些信 息的集合( r f c 2252 有详细的论述) ,服务器用这些信息来决 定如何让过滤器f i1 te r 或者属性值断言a s se r ti0 n ( 一种比 灏鍪缫蘩; 厶删p 协议研舅:与r 厶州p 朋矛:捌 威,地由t 句:实目吧 较操作) 去匹配( m a tch ) 条目的属性,服务器用这些信息来 允许增加和修改条目操作。 匹配规则是服务器在执行搜索和比较操作时进行比较属性 类型与属性值断言。在修改条目时被用来确认增加和删除条 目的属性值,同时匹配规则也被用来比较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八课颐和园课件
- 2025年高校产学研合作中智能交通数据分析系统技术转移与成果转化报告
- 储备主管培训课件
- 贵州省环保机构专业人员聘用及环境保护合同
- 专业美容仪器试用师保密协议及销售业绩提成合同
- 国际工程招投标与合同履约管理服务合同
- 跨境电商业务连带责任保证担保合同模板
- 进口高科技产品售后服务及技术支持合同模板
- 集体产权房屋买卖合同纠纷调解与执行合同
- 民航经济合同履行监督与违约责任追究办法
- 班干部聘任仪式
- 2025教科版三年级科学上册教学计划、教学设计(附目录)
- 技术研发项目进度报告及问题反馈表
- 2025年心内科重症病房CCU临床带教资选拔理论试题(附答案)
- 秦兵马俑的课件教学
- 边境电子围栏2025年行业应用前景报告中小企业安全市场拓展
- 2025-2026学年苏教版(2024)初中生物八年级上册教学计划及进度表
- 【英语】江苏省苏锡常镇2025届高三下学期二模试题(解析版)
- DBJT15-110-2015 广东省建筑防火及消防设施检测技术规程
- 2024年河北机场管理集团有限公司招聘考试真题
- 低血糖知识培训课件
评论
0/150
提交评论