毕业设计(论文)-基于LDAP的单点登录方案的设计与实现.pdf_第1页
毕业设计(论文)-基于LDAP的单点登录方案的设计与实现.pdf_第2页
毕业设计(论文)-基于LDAP的单点登录方案的设计与实现.pdf_第3页
毕业设计(论文)-基于LDAP的单点登录方案的设计与实现.pdf_第4页
毕业设计(论文)-基于LDAP的单点登录方案的设计与实现.pdf_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大大 连连 理理 工工 大大 学学 本本 科科 毕毕 业业 设设 计(论计(论 文)文) 基于基于 ldapldapldap ldap 的单点登录的单点登录方案方案的的设计与设计与实现实现 thethethe the designdesigndesign design andandand and implementationimplementationimplementation implementation ofofof of ssossosso sso schemeschemescheme scheme basedbasedbased based ononon on ldapldapldap ldap 学 院(系): 专业: 学 生 姓 名: 学号: 指 导 教 师: 评 阅 教 师: 完 成 日 期: 大连理工大学 dalian university of technology 基于ldap的单点登录方案的设计与实现 - i - 摘要 随着信息化建设的不断深入,学校或企业等公共场所的内部有很多信息管理系统, 用户使用这些系统时需要进行身份认证。传统的认证机制是基于用户名和密码的,每一 个系统都建立有自己的用户信息数据库,用来验证用户的身份。对于一个要访问不同系 统的用户,每进入一个系统就要登录一次,这无疑会耗费大量的时间,同时用户也需要 记忆大量的账号信息。 单点登录系统就是为了解决这样问题而产生的,它统一管理各个应用系统用户的身 份验证,并能够将验证信息安全、高效地传递给各个系统。这样,用户只需要参与一次 身份认证过程,获得身份验证系统授权的身份标识。以后用户登录别的应用系统时,可 以用这个身份标识去通过单点身份验证系统的认证,从而使用户可以高效地访问各个系 统中的资源,提高工作效率。由于所有的用户的认证都归身份管理系统管理,所以它的 用户信息的存储控制就显得极为重要。 基于 ldap 的目录服务, 能够为网络身份管理系统提供高可靠的数据存储和高性能 的数据查询能力,同时它是跨平台的标准协议,应用程序不用为 ldap 目录放在什么样 的服务器上操心。所以目前,有大量的应用系统都开始采用 ldap 目录服务器作为用户 身份信息认证管理的服务器。 本文给出了 j2ee 平台下,基于 ldap 目录服务的单点登录在校园身份管理系统中 的实现方案。 关键词:关键词:关键词: 关键词: ldapldapldap ldap ;轻量级目录访问协议;轻量级目录访问协议;轻量级目录访问协议; ;轻量级目录访问协议; webwebweb web ssossosso sso ;单点登录;单点登录;单点登录 ;单点登录 ; ; 身份认证系统身份认证系统身份认证系统 身份认证系统 基于ldap的单点登录方案的设计与实现 - ii - thethethe the designdesigndesign design andandand and implementationimplementationimplementation implementation ofofof of ssossosso sso schemeschemescheme scheme basedbasedbased based ononon on ldapldapldap ldap abstract with the develpment ofinformation,many schools and corporations have developed kinds ofinformation management systems. users need to authenticate identity when they use these systems. the traditional authentication mechanism is based on the user name and password, and every system has established auser information database, to authenticate the identity of the user.when an user wants to access differentsystems,he must input different account information to enter corresponding systems.thismechanismwastes users time and make user remember a large number ofaccount information. single sign on is introduced to resolve this problem. it unifiedly manages everyusers identity authentication of various applications, and authentication information can be safely and efficiently transfered to the various systems. in this way, users only need to participate in one authentication process, and get the identifier of authentication system. after users log in other applications, they can use this identifier to adopt the authentication of identity management system, so that users can efficiently access the various systems and enhance efficiency. because identity management system manages all the users identity authentication, its control on the storage of user information is extremely important. ldap-based directory service, is able to provide highly reliable data storage and high- performance data search for identity management system on network. at the same time, it is a standard cross-platform protocols, applications do not have to know what kind ofserver is ldap directory deployed. therefore, at present, a large number of applications are beginning to use ldap directory server as a user identity authentication management server. in my paper, i explain the implementation of the sso scheme in the campus identity management system based on ldap directory services, under the j2ee platform. keykeykey key wordswordswords words :ldapldapldap ldap ;lightweightlightweightlightweight lightweight directorydirectorydirectory directory accessaccessaccess access protocolprotocolprotocol protocol ; ; singlesinglesingle single signsignsign sign ononon on ; ; webwebweb web ssssss ss o o o o ; ; ; ; identityidentityidentity identity authenticationauthenticationauthentication authentication systemsystemsystem system 基于ldap的单点登录方案的设计与实现 - iii - 目录 摘要. i abstract ii 1 绪论1 1.1 项目背景1 1.2 单点登录系统介绍1 1.3 本文的组织与结构2 2 单点登录模型研究4 2.1 身份管理的内容和发展.4 2.2 传统的用户登录模式5 2.3 单点登录模式6 3 ldap 目录访问协议8 3.1 目录访问协议8 3.1.1 目录服务概述.8 3.1.2 x.500 目录访问协议.8 3.1.3 ldap 目录访问协议9 3.1.4 x.500 和 ldap 两种协议的比较 9 3.2 ldap 工作原理.10 3.3 ldap 模型.11 3.3.1 信息模型.11 3.3.2 命名模型.12 3.3.3 功能模型.12 3.3.4 安全模型.13 3.4 ldap 目录与关系型数据库的对比.14 3.5 ldap 在用户身份管理中作用.15 4 系统设计16 4.1 系统环境16 4.1.1 前台系统.16 4.1.2 后台系统.16 4.2 系统基本功能要求17 4.3 系统架构17 4.4 功能模块设计18 基于ldap的单点登录方案的设计与实现 - iv - 4.5 ldap 目录树设计.19 5 系统实现21 5.1 身份认证系统的实现.21 5.1.1 身份认证系统处理用户登录过程21 5.1.2 代码实现.21 5.2 web 应用的实现25 5.2.1 实现方案分析.25 5.2.2 代码实现.26 5.3 ldap 目录服务的实现.27 6 校园身份管理系统中的单点登录测试29 结论.32 参考文献.33 致谢.34 基于ldap的单点登录方案的设计与实现 1 1 绪论 1.1 项目背景 随着信息技术和网络技术的广泛普及,政府、公司、学校等公共场所的内部出现了 各种各样的应用管理系统。这些管理系统中最重要的一类就是基于 b/s 结构的 web 应 用系统,如电子邮件服务等。这些应用一般通过浏览器访问 web 服务器,服务器以页 面表单的方式要求用户输入登录参数,用户输入并提交后,由 web 服务器的脚本程序 进行身份验证。 近年来,web 应用的使用进入成熟阶段,提供的信息和服务也越来越多。成功地管 理和保护 web 应用的信息和资源已经成为一个越来越复杂的挑战。身份认证管理是保 护 web 信息和资源的核心部分。一般的身份认证方法是在每个应用系统中保存各自的 用户信息并建立独立的身份验证模块,使用独立的认证机制在各自的身份认证模块中认 证。这种传统的身份认证方法将用户的“网络身份”分割成许多独立的碎片,这些碎片 构成了繁多的一对一的客户服务关系,导致了更多的安全风险。同时如果用户要频繁访 问不同系统,每进入一个系统就要登录一次,这无疑会耗费大量的时间,并且用户需要 记忆大量的账号信息。 以学校为例,一个学校的内部有很多的信息系统,如学生信息管理系统、文件共享 服务器、成绩管理系统、图书馆信息系统等,每个用户在这些系统上都有账号,以前他 们需要在每个系统上配置为各个账号分配的权限,由于系统过多,很容易出现遗忘,出 现过用户被分配过高权限后没有及时修改的现象,发生了信息泄露的问题,影响了系统 的安全。同时每个用户都需要记住自己在各个系统上的用户名和密码,众多用户同时面 对多个系统要重复输入账号、口令等信息,不仅烦琐,更重要的是容易出现口令丢失, 给系统和用户造成损失。 因此,基于安全和效率的考虑,信息系统急需有一个统一的、具有较高安全控制的 身份验证和授权系统,以保证数据安全和用户操作方便。在本文中,我设计并实现了一 个基于 ldap 的单点登录系统,它能够很好地解决用户身份验证和授权的问题。 1.2 单点登录系统介绍 单点登录系统(single sign-on,sso),是指当用户访问多个需要认证的系统应用时, 只需要初始进行一次登录和身份认证,就可以访问具有权限的任何系统,而不需要再次 登录,后续系统会自动获取用户信息,从而识别出用户的身份。这样,无论用户要访问 多少个应用,他只需要进行一次登录,而不需要用户重复输入认证信息。单点登录技术 基于ldap的单点登录方案的设计与实现 2 可以简化用户访问多种系统应用,避免用户由于需要记忆众多账号信息而出现的遗忘, 而且可以减少口令等重要信息在网络传播时被截获的危险。 单点登录系统首先从根本上不再使用简单的基于用户名和密码的身份认证机制, 而 是采用了结合用户电子身份标识的新的身份认证机制,这种新的身份认证机制可大大提 高系统的安全性。其次,单点登录系统把原来分散的用户管理集中了起来,各个系统之 间依靠相互授权的关系来进行用户身份的自动认证。用户的账号信息是集中保存和管理 的,管理员只需在统一的用户信息数据库中管理用户账号,不必在多个系统中分别设置 用户信息数据库,降低了信息的冗余度。总体来说,单点登录系统的优点主要有:提高 用户工作效率和带来好的用户体验;更理想的网络安全性;更有效的用户管理。 在单点登录系统中身份验证模块的用户信息是整个系统中用户信息保存的唯一地 方,如果身份验证模块的用户数据泄露或者丢失,将带来很大的安全隐患,所以用户信 息的存储就显得非常重要。 本系统中采用 ldap 目录来保存用户信息。ldap(lightweight directory access protocol)即为轻量级目录访问协议,它基于 x.500 标准,但是简单了很多,而且可以根 据需要定制。ldap 目录中可以存储各种类型的数据,包括电子邮件地址、邮件路由信 息、联系人列表等。通过把 ldap 目录作为系统集成中的一个重要环节,可以简化员工 在企业内部查询信息的步骤,甚至是主要的数据源都可以放在任何地方。 ldap 协议是跨 平台和标准的协议,因此应用程序就不用为 ldap 目录放在什么样的服务器上操心了 本文设计了一个 j2ee1平台下, 基于 ldap 目录服务的校园身份管理系统,它使用 openldap2作为目录服务器,采用单点登录(single sign-on,sso)的策略。 该系统有很好的用户权限控制粒度3,可以整合学校的各种系统,如学生信息管理 系统、校园投票系统、成绩管理系统、图书馆信息系统和文件共享服务器等。这些系统 的各种认证信息统一存放于单一的身份认证服务器中,实现单点认证,全局应用。用户 在一点认证就可以根据权限访问整个学校的所有资源。比如用户在登录学生信息管理服 务器时进行了认证,身份验证系统就给该用户一个网络身份标识,整个系统就知道了该 用户的身份,该用户在使用系统服务时就不需要再认证了。 1.3 本文的组织与结构 本文分几个部分介绍了单点登录(sso)在基于 ldap 目录服务的校园身份管理系统 中的实现。 第一章 绪论:介绍了项目背景和系统所解决的问题; 第二章 单点登录模型研究:介绍了身份管理技术和几种验证模型,并着重对单点 基于ldap的单点登录方案的设计与实现 3 登录模型进行了分析研究; 第三章 ldap 目录访问协议:分析介绍了目录协议技术和 ldap 在身份管理中的 作用; 第四章 系统设计:展示了本系统的结构设计、模块设计和目录树的设计; 第五章 系统实现:以上一章为基础,给出了基于 ldap 的单点登录系统的具体实 现; 第六章 管理系统中的单点登录的测试:给出系统的功能测试,证明基本达到系统 功能要求。 基于ldap的单点登录方案的设计与实现 4 2 单点登录模型研究 2.1 身份管理的内容和发展 身份管理4(identity management,idm)是 2001 年以后,为实现大规模异构网络管 理而提出的一种网络安全新技术,其目标是通过标识一个系统中的个体并将用户权限和 相关约束条件与身份标识相关联,进而控制成员对于系统资源的访问。身份管理的目标 是在提高效率和安全性的同时,降低原有的管理用户及用户的身份、属性和信任证书产 生的相关成本,保护用户的隐私,方便信息共享,提高组织运营的灵活性。 身份户管理涉及用户身份的整个生命周期,主要包括用户账号的创建、维护和撤销 三个部分:账号创建包括给用户建立账号并分配适当的级别权限以访问完成工作所需的 资源;帐户维护包括保持用户身份的更新,以及依据工作完成的需要适当调整用户可访 问资源的级别权限,以及用户在更改自身身份信息时在不同系统之间进行修改的同步; 帐户撤销包括在用户离开组织或公司之后,使用户帐户及时失效以实现对用户既得资源 访问权限的回收。 身份管理系统近些年发展很快,现在呈迅速扩大的趋势。身份认证技术已经逐渐由 传统的多点登录向集中式单点登录方向发展,同时身份也不只局限在一个公司内部,公 司之间联合身份认证已很热门。联合身份认证解决如何在公司之间实现单点认证,涉及 到多个身份管理服务器互相交互,建立信任管理的问题。 身份管理的发展趋势如图 2.1 所示。 图 2.1 身份管理的发展 图 2.1 说明了身份管理,从传统的多点登录模式到集中单点登录模式再到联合身份 认证模式的发展历史。 基于ldap的单点登录方案的设计与实现 5 本文只探讨到集中式的单点登录方式,联合身份认证方式不做研究。 2.2 传统的用户登录模式 传统的认证机制5是基于用户名和密码的,每一个系统都建立有自己的用户信息数 据库,用以验证用户的身份。用户要访问 n 个系统就需要在 n 个系统中建立 n 个帐号。 当其要访问一个系统中的资源时,用户首先要登录进入该系统,如果他同时要访问处于 多个系统中的资源,用户就不得不按照各个系统的要求分别登录进入相应的系统。 近年来,为了实现企业的信息化、电子商务和其他需求,出现了越来越多的网络应 用系统,在这种传统的用户登录模式下,这些企业的网络用户和系统管理员不得不面对 这些现实: (1)用户需要使用其中的任何一个应用的时候都需要做一次身份认证,而且每一次认 证使用的认证信息(用户名和密码)不能保证一致; (2)系统管理员需要对每一个系统设置一种单独的安全策略,而且需要为每个系统中 的用户单独授权以保证他们不能访问没有被授权访问的网络资源。 传统的用户登录过程的概念结构如图 2.2 所示。 图 2.2 传统的用户登录过程 图 2.2 说明了传统的用户登录模式的登录过程的原理:网络用户登录不同的应用系 统时,需要输入不同的用户信息,不同的应用系统用不同的认证策略对用户进行认证。 基于ldap的单点登录方案的设计与实现 6 2.3 单点登录模式 单点登录14,就是用户只需要在网络中主动地进行一次身份认证,然后就可以访问 其被授权使用的所有处在网络上的资源而不需要再参与其它应用的身份认证过程。这些 服务资源可能处在不同的计算机环境中,用户以后的身份认证是系统自动完成的。 首先,单点登录系统从根本上不再使用基于用户名和密码的身份认证机制,而是采 用了结合用户电子身份标识的新的身份认证机制,这种新的身份认证机制可大大提高系 统的安全性。 其次,单点登录系统把原来分散的用户管理,集中起来了。各个系统之间依靠相互 授权的方式来进行用户身份的自动认证。用户的账号信息是集中保存和管理的,管理员 只需要在统一的用户信息库中添加、删除用户账号,不必在多个系统中分别设置用户信 息数据库。由此可见单点登录系统的优点有: (1)提高用户的工作效率和带来良好的用户体验。 用户不再需要每访问一个 y 应用资 源就进行一次身份认证过程,从而使用户有更多的时间从事有益的工作,同时也可以把 用户从繁杂的帐户信息记忆中解脱出来。 (2)更好的网络安全性。系统中使用的身份认证机制使用了加密等多种方法,可以防 止大部分的网络攻击。同时由于新的身份认证机制使用户的账号信息记忆量减少,使系 统由于用户机密信息的泄露而导致安全事故出现的机会大大减少。 (3)更有效的用户管理。用户的账号数据统一保存,网络管理员只需要在一个用户信 息库中对用户的账号信息进行操作,减少了管理员的工作量。 单点登录过程的概念结构如图 2.3 所示。 图 2.3 单点登录过程 基于ldap的单点登录方案的设计与实现 7 图 2.3 说明了单点登录系统模式下用户登录过程的原理:网络用户访问不同的应用 系统时,只需在统一认证入口(即单点登录中的单点)登录,取得身份认证系统的身份标 识,从而达到了单点登录,多点应用的目的。 目前 sso 的模型6主要有三种:基于经纪人(broker)的 sso 方案,基于代理(agent)的 sso 方案,基于网关(gateway)的 sso 方案。 (1)基于经纪人的单点登录方案(broker-based sso) 在 broker-based sso 方案中,有一个完成集中认证、用户账号管理的服务器和一个 公共、统一的用户数据库。broker 为用户提供一个能够被用户进一步访问请求的电子身 份凭证。broker-basedsso 方案的主要优点是有一个中央用户数据库,易于对用户数据 进行管理。主要缺点是需要修改原有应用。 (2)基于代理的单点登录方案(agent-based sso) 在 agent-based sso 方案中,有一个代理程序,自动为不同的应用程序认证用户。 代理程序可以用不同的方式实现。若 agent 部署在客户端,它能装载获得用户名口令列 表,自动替用户完成登录过程,减轻客户端程序的认证负担。agent部署在服务器端, 它就是服务器的认证系统和客户端认证方法之间的“翻译”。当软件供应商提供了大量 的与原有应用程序通信的 agent 时,agent-based sso 方案可使应用迁移变得十分容易。 (3)基于网关的单点登录方案(gateway-based sso) 在基于 gateway-based sso 方案中,用户对受限网络服务的访问都必须通过网关。 网关可以是防火墙,或者是专门用于通信加密的服务器。所有需要保护的网络服务器都 放在被网关隔离的受信网段里。客户通过网关认证后获得访问服务的授权。如果在网关 后的服务能够通过 ip 地址进行识别,就可以在网关上建立一个基于 ip 的规则表。将规 则表与网关上的用户数据库相结合,网关就可以被用于单点登录。由于网关可以监视并 改变传给应用服务的数据流,所以它能够改变认证信息以适应适当的访问控制,而不用 修改应用服务器。网关作为一个分离的部件,安装和设置方便;但是如果存在多个安全 网关,那么用户数据库并不能自动地被同步。gateway-based sso 方案不适用于用户端 使用代理的情况。 本文设计并实现的基于 ldap 目录服务的校园身份管理系统,采用的是较为简单的 broker-based sso 方案。 基于ldap的单点登录方案的设计与实现 8 3 ldap 目录访问协议 3.1 目录访问协议 3.1.1 目录服务概述 目录是一种专门被优化用于执行读、浏览、搜索等操作的数据库,可以包含网络以 及在网络上运行的应用程序所需的信息。 它倾向于包含具有描述性的、 基于属性的信息 , 并且支持高度复杂的过滤搜索功能。目录通常不支持复杂的关系操作和事务机制,而关 系型数据库管理系统则常用于处理复杂的更新操作。目录被优化成以对大量的查找和搜 索操作做出快速响应,并且目录可以复制信息以增加可用性和可靠性,这样也减少了响 应时间。 目录服务7提供对目录信息访问。有多种不同的方式实现目录服务,不同的方式允 许目录存储不同种类的信息,对目录信息的引用、查询、更新也有不同的要求。其中全 局目录通常是分布式的,目录信息存储在网络上的多台主机上,多台主机联合提供目录 服务。 3.1.2 x.500 目录访问协议 x.500 协议系列是世界通用的分布式目录服务标准,由 itu-t 与 iso/iec 于 1988 年合作制定,并成为 iso 标准 9454。x.500 在一个层次式命名空间中组织目录对象,并 支持大量的信息存储。x.500 定义了强大的搜索功能,使存取目录信息变得更加容易。 x.500 具有可伸缩性,可以借助于附加的模块实现与其它目录的互操作性。x.500 定义 了综合目录服务,包括信息模型、名字空间、功能模型、访问控制、目录复制以及目录 协议。 x.500 标准是建立在 iso 协议基础上的一个应用协议。它以目录树的形式存放和管 理信息, 每棵目录树对应一个单位或组织, 由一个目录系统代理 dsa(directory system agent)管理。各个独立的 dsa 之间通过目录系统协议 dsp(directory system protocol) 相互传递信息,形成分布式系统和区域自治,实现信息的共享。用户通过目录用户代理 dua(directory user agent)通过 dap(directory access protocol)访问 dsa,查询和 维护信息。 由于 x.500 是一个分布式目录服务,因此具有巨大的潜在命名空间、本地数据的本 地管理能力、高级的搜索功能、一直并且可以局部扩展的命名空间、提供简单认证和强 认证安全性、访问控制列表和复制支持。但是,x.500 虽然是一个完整的目录服务协议, 基于ldap的单点登录方案的设计与实现 9 但在实际应用的过程中,却也存在着不少障碍,主要表现在: (1)严格遵照 iso 七层协议模型,对相关层协议环境要求过多; (2)主要是在 unix 上运行,很多小系统上无法使用。 因而随着 tcp/ip 协议的普及,这一系列协议越来越不适应实际的需要了。 3.1.3 ldap 目录访问协议 ldap(lightweight directory access protocol)即为轻量级目录访问协议,它基于 x.500标准, 但是简单了很多, 而且可以根据需要定制。 与x.500不同,ldap 支持 tcp/ip, 这对访问 internet 是必须的。ldap 的核心规范在 rfc 中都有定义。在企业范围内实现 ldap,可以让运行在几乎所有计算机平台上的所有应用程序从 ldap 目录中获取信息。 ldap 目录中可以存储各种类型的数据,包括电子邮件地址、邮件路由信息、联系人列表 等。通过把 ldap 目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询 信息的步骤,甚至是主要的数据源都可以放在任何地方。 ldap 协议是跨平台和标准的协议,因此应用程序就不用为 ldap 目录放在什么样的 服务器上操心了。实际上,ldap 得到了业界的广泛认可,就是因为它是 internet 的标 准。生产商都很愿意在产品中加入对 ldap 的支持,因为他们根本不用考虑另一端(客户 端或服务端)是怎么样的。ldap 服务器可以是任何一个开发源代码或商用的 ldap 目录服 务器(或者还可能是具有 ldap 界面的关系型数据库),因为可以用同样的协议、客户端 连接软件包和查询命令与 ldap 服务器进行交互。 3.1.4 x.500 和 ldap 两种协议的比较 从目录服务技术的发展来看, ldap 标准实际上是在 x.500 标准基础上产生的一个简 化版本8,两者之间的关系与那种为解决同一个问题而出现的两个独立发展的技术有很 大的不同之处。 (1)作为 ietf(internet engineering task force)一个正式的标准,ldap 是 x.500 标 准中的目录访问协议 ldap 的一个子集,可用于建立 x.500 目录。因此这两个目录服务 技术标准有着许多的共同之处,即在平台上,都实现了一个通用的平台结构,提供了一 个操作系统和应用程序需要的信息服务类型,可以被许多平台和应用程序接收和实现; 在信息模型上,都使用了条目、对象类、属性等概念和模式来描述信息;在命名空间方 面,都使用了目录信息树结构和层次命名模型:在功能模型上,都使用了相似的操作命 令来管理目录信息;在认证框架方面,都可以实现用户名称和密码,或者基于安全加密 方式的认证机制;在灵活性上,它们的目录规模都可大可小,大到全球目录树,小到只 有一台目录服务器;在分布性方面,目录信息都可以分布在多个目录服务器中,这些服 基于ldap的单点登录方案的设计与实现 10 务器可以由各组织管理, 既保证了目录信息总体结构一致性, 又满足了分级管理的需要。 (2)ldap 与 x.500 的 dap 相同之处是 ldap 也是被设计用来从分层目录中提取信息。 但与之不同的是,为保持网络的带宽,ldap 对来自 x.500 目录询问的应答次数加以限 制。最初 ldap 只是一种访问 x.500 目录的简单方法,是 x.500 的功能子集,但随着它 的成熟和独立发展,已经增加了许多在 x.500 中没有的新特性。现在的 ldap 既可以为 x.500 目录服务提供一个轻型前端,也可以实现一个独立的目录服务。 (3)ldap 的独特之处 在 ldap 中 ap(access protocol)既是一个 x.500 的访问协议,又是一个灵活的,可 以独立实现的目录系统。 在 ldap 中,dap 基于 internet 协议,x.500 基于 osi(开放式系统互联)协议:建立在 应用层上的x.500目录访问协议dap,需要在osi会话层和表示层上进行许多的建立连接 和包处理的任务,需要特殊的网络软件实现对网络的访问;ldap 则直接运行在更简单和 更通用的 tcp/ip 或其它可靠的传输协议层上,避免了在 osi 会话和表示层的开销,使 连接的建立和包的处理更简单、更快,对于互联网和企业网应用更理想。 ldap 协议更为简单:ldap 继承了 x.500 最好的特性,同时去掉了它的复杂性,ldap 通过使用查找操作实现列表操作和读操作;另一方面省去了 x.500 中深奥的和很少使用 的服务控制和安全特性,只保留了常用的特性,简化了 ldap 的实现。 ldap通过引用机制实现分布式访问:x.500中dsa通过服务器之间的链操作实现分布 式访问,这样就使查询的压力集中在了服务器端;而 ldap 通过客户端 api 实现分布式操 作,平衡了负载。 ldap 具有低费用、易配置和易管理的特点:经过性能测试,ldap 比 x.500 具有更少 的响应时间;ldap 提供了满足应用程序对目录服务所需求的特性。 3.2 ldap 工作原理 ldap 是以服务器客户端方式工作的,目录服务将数据库软件的逻辑结构分为前端 (客户端)和后端(服务端和仓库)9。 ldap 的逻辑结构如图 3.1 所示。 图 3.1 ldap 的逻辑结构 基于ldap的单点登录方案的设计与实现 11 图 3.1 说明了 ldap 的三层逻辑结构:客户端负责和用户进行交流,服务器端负责 接受和解释客户的请求,仓库则是真正存储信息的地方。 客户端是直接面对一般开发者和用户的;服务端是用于接收和解释客户请求,然后 以客户的身份完成请求,并将完成结果返回给用户;仓库则是真正存储信息的地方。在 ldap 中,服务端和仓库之间的连接采用了 odbc 机制,所以可以使用任何支持和具有 odbc 驱动程序的数据库软件,简单的可以是 linux 系统中自带的 gdbm 或 alpha 中 的 ndbm 等数据库管理系统;也可以选用在功 能和性能上更优越的 oracle 和 sybase 等 系统,这样,可以提高系统的可移植性。 现在己经有了许多基于 ldap 协议开发出的资源管理系统和工具,如 openldap, nds(novell directory service)和 ads(active directory service),oracleoid 等。它们已 经逐渐的被使用在了各个需要目录服务的领域,并且应用的趋势在增强。 3.3 ldap 模型 ldap 有四种模型10-11:信息模型、 命名模型、 功能模型、 安全模型, 用以描述 ldap 的工作机制,描述什么样的数据可以存于 ldap 目录中,以及如何操作这些数据。 3.3.1 信息模型 ldap 信息模型描述 ldap 的信息表示方式,定义了能够在目录中存储的数据。它 以模式(schema)12为基础,以条目(entry)为核心。模式由若干条目组成,条目即为关于 对象的属性13信息集合。每个属性储存有属性值,说明对象的一个特征,每个属性有一 个类型, 不同的类型有不同的取值范围, 每个类型可以对应一个值,也可以对应多个值。 ldap 中的信息模型,类似于面向对象的概念,在ldap 中每个条目必须属于某个 后多个对象类型(objectclass),每个 objectclass 由多个属性类型构成,每个属性类型有 所对应的语法规则和匹配规则;对象类和属性类型的定义均可以使用继承的概念。每个 条目创建时,必须定义所属的对象类,必须提供对象类中必选类型的属性值,在 ldap 中把对这些对象类、属性类型、语法和匹配规则统称为 schema。 schema 元素分系统定义和用户定义两类。一般用户只能定义属性类型和对象类型。 (1)属性类型(attribute types) 属性类型控制属性格式,包括属性的语法、匹配规则、是否可以多值、修改权限和 用法等。 属性类型可以直接由 0 或多个属性类型继承而来, 形成属性类型的层次关系树 。 (2)对象类(object class) 对象类是“共享某些特性的对象的识别家族”,即对象的模板。通过定义条目中所 含的属性来定义目录中的条目类型。 基于ldap的单点登录方案的设计与实现 12 3.3.2 命名模型 ldap 中的命名模型,也即 ldap 中的条目定位方式。在 ldap 中每个条目均有自 己的 dn 和 rdn。dn 是该条目在整个树中的唯一名称标识,rdn 是条目在父节点下 的唯一名称标识。如同文件系统中,带路径的文件名就是 dn,文件名就是 rdn。 命名模型以倒树的形式排列,目录树命名模型如图 3.2 所示。 图 3.3 目录树命名模型 图 3.3 说明了目录树命名模型的结构,该图表述了组织 ou=student,o=ssdut, st=liaoning,c=china 下的一个用户 cn=guoshuyang。 可以看到,ldap 的模型与 unix 系统中目录结构类似,其不同之处在于: (1)在 ldap 目录中,dn 中各元素的排序是从叶到根;而在 unix 文件系统中,文 件绝对路径名中各元素的排序是从根到叶; (2)在 ldap 目录中,dn 中各元素之间的分隔符是“,”;而在 unix 文件系统中, 文件绝对路径名中各元素之间的分隔符是 “/”; (3)在 ldap 目录中,允许超越树形结构的别名项目(alias entry),它指向其它项目。 3.3.3 功能模型 在 ldap 中功能模型共有三类: (1)询问(interrogation) ldap 在信息询问方面主要定义了查找(search)和比较(compare)两个操作。在查找 基于ldap的单点登录方案的设计与实现 13 操作中,根据选取标准在指定范围内选择项目,这个选取标准通常称作查找过滤器 (searchfilter),并且可以规定一组需要返回的属性。另外,还可以规定查找结果的大小 和客户端等待结果的时间。比较操作主要是判断指定项目是否包含指定属性(包括类型 和值)。 (2)更新 (update) ldap 在信息更新方面定义了新增(add),删除(delete)、修改(modify)和修改 rdn(modify rdn)等四个操作。新增操作主要是在 ldap 目录中插入一个新的项目;删 除操作主要是从 ldap 目录中删除已有项目;修改操作主要是修改已有项目的属性,具 体地说,可以增加、删除、修改属性或属性值;修改 rdn 操作主要是修改项目的名字。 (3)身份验证(authentication) ldap 在身份验证方面定义了连接(bind)、断接(unbind)和作废(abandon)等三个操 作。连接操作主要是客户端向服务器提供身份信息,包括 dn 和口令,以便于服务器验 证客户端的身份,身份验证成功即建立客户端与服务器之间的会话(session)。断接操作 主要是结束客户端与服务器的会话。作废操作主要是中止正在执行的操作。 3.3.4 安全模型 ldap 中的安全模型主要通过身份认证、通讯安全和访问控制来实现。 身份认证:在 ldap 中提供三种认证机制,即匿名、基本认证和 sasl(simple authenticationand secure layer)认证。匿名认证即不对用户进行认证, 该方法仅对完全公 开的方式适用;基本认证均是通过用户名和密码进行身份识别, 又分为简单密码和摘要密 码认证;sasl 认证即 ldap 提供的在 ssl 和 tls 安全通道基础上进行的身份认证, 包括数字证书的认证。 通讯安全:在 ldap 中提供了基于 ssl/tls 的通讯安全保障。 ssl/tls 是基于 pki 信息安全技术,是目前 internet 上广泛采用的安全服务。ldap 通过 starttls 方式启动 tls 服务, 可以提供通讯中的数据保密性、 完整性保护;通过强制客户端证书认证的 tls 服务,同时可以实现对客户端身份和服务器端身的双向验证。 访问控制:虽然 ldap 目前并无访问控制的标准,但从一些 ldap 产品的访问控制 情况,我们不难看出:ldap 的访问控制异常灵活和丰富,在ldap 中是基于访问控制 策略语句来实现访问控制的,这不同于现有的关系型数据库系统和应用系统,它是通过 基于访问控制列表来实现的,无论是基于组模式或角色模式,都摆脱不了这种限制。 在使用关系型数据库系统开发应用时,往往是通过几个固定的数据库用户名访问数 据库。对于应用系统本身的访问控制,通常是需要建立专门的用户表,在应用系统内开 基于ldap的单点登录方案的设计与实现 14 发针对不同用户的访问控制授权代码,这样一旦访问控制策略变更时,往往需要代码进 行变更。 总而言之, 关系型数据库的应用中,用户数据管理和数据库访问标识是分离的 , 复杂的数据访问控制需要通过应用来实现。 而对于 ldap,用户数据管理和访问标识是一体的,应用不需要关心访问控制的实 现。这是由于在 ldap 中的访问控制语句是基于策略语句来实现的,无论是访问控制的 数据对象,还是访问控制的主体对象,均是与这些对象在树中的位置和对象本身的数据 特征相关。 在 ldap 中,可以把整个目录、目录的子树、制定条目、特定条目属性集或符合某 过滤条件的条目作为控制对象进行授权;可以把特定用户、属于特定组或所有目录用户 作为授权主体进行授权;最后,还可以定义对特定位置(例如 ip 地址或 dns 名称)的访 问权。 3.4 ldap 目录与关系型数据库的对比 ldap 作为存储介质,同关系型数据库一样,都可以存储各种类型的数据,包括邮 件地址,联系人列表等。作为一门新兴的正在迅猛发展的技术,与关系型数据库不同之 处在于: (1)存储内容:目录服务器的重要功能是提供快速的查询。其中的数据更新很少,存 储的多是更新频率很低的数据,更新的过程往往是成批的增加或删除,并且各数据项之 间的关联不是很密切。而关系型数据库存储的多是一些需要随时更新的数据,各个数据 的关系比较复杂,往往一个数据的更新带来一系列数据的更新操作。用户的口令等信息 数据静态的数据,更新的频率不高,并且往往是成批的增加和删除用户,所以更适合用 目录服务器存储。 (2)存储模式:目录服务独特的对象存储模式和树状结构使其具有良好的扩展性。在 ldap 中,信息是以条目为单位存储,每个条目包括一个或多个属性,每个属性由一个 或多个值,这种结构很适合于用户基本信息的存储。 (3)存储方式:目录服务支持数据的分块和冗余存储, 不同的服务器之间以指针相连 , 这一点使得目录服务能更好的适应分布式环境。 (4)访问方式:目录服务不像关系型数据库那样支持复杂的 sql 查询和更新,但是, ldap 中提供了很多访问目录服务的 api 函数, 可以利用它们开发各种基于 ldap 的应 用。 无论对信息提供者、管理者或是访问者,以 ldap 为代表的目录服务因其简单、高 效、低成本,都是一个很好的解决方案。随着网格热潮的兴起,目录服务渐渐成为研究 基于ldap的单点登录方案的设计与实现 15 热点,其重要性正逐渐为大家所认同,因而目录服务也被视为网络应用发展的下一个核 心技术闭。 3.5 ldap 在用户身份管理中作用 每个机构都需要使用一种机制来记录其实体(如员工、员工所在的部门)和资产(如建 筑物、会议室和设备等)。这种机制通常以目录的形式出现,提供机构内所有成员的联 系信息。在商业社会普及计算机之前,这些目录通常只是一些私人电话薄,并且通常是 按照字母瞬息排列的员工名单和他们的联系信息,但这也反映了机构的组织结构的一个 侧面。如果组织组都大,那么其目录可能包括部门列表、大楼以及会议室的电话号码部 分。通常,这种目录的发布由某个人或某个小组负责,组织越大,这项任务就越艰巨。 随着传呼机、移动电话和电子邮件等电子商务工具的普及,要维护这样的目录越来 越困难。现在员工拥有不止一个电话号码,即他们有多条联系信息。这种状况就要求使 用电子目录,以便存储各种联系信息,其结构要相当灵活。 在 ldap 目录服务中,有两个重要的特点: (1)目录是对象的层次结构,对象可以代表员工、资产或其他任何实体。 (2)目录的树状层次结构中, 机构的各个部门只负责维护目录结构中属于自己的那部 分,即可确保每个对象都有父对象负责创建和维护该对象。这一特征于身份认证非常重 要,因为公钥可能是与员工有关的信息之一。 在非对称加密算法中,要核实公钥的真实性和验证持有者的身份,其中一种方法是 以数字证书的方式提供公钥,即有可信的第三方验证公钥持有者的身份,并将公钥和数 字证书进行绑定。这是通过对包含持有者的身份和公钥的文档进行数字签名而实现的, 但还需要解决的问题是如何发布证书,即让公众获得证书。 ldap 的灵活性使其不仅可以存储数字证书及员工的其他信息,还可以用于发布组 织中全部成员的数字证书链。 基于ldap的单点登录方案

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论