基于LDAP的单点登录方案的设计与实现

  • 格式:docx
  • 大小:142.64 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于LDAP的单点登录方案的设计与实现

1项目背景

随着信息技术和网络技术的广泛普及,政府、公司、学校等公共系统的内部出现了各种各样的应用管理系统。这些管理系统中最重要的一类就是基于B/S结构的Web应用系统,如电子邮件服务等。这些应用一般通过浏览器访问Web服务器,服务器以页面表单的方式要求用户输入登录参数,用户输入并提交后,由Web服务器的脚本程序进行身份验证。

近年来,Web应用的使用进入成熟阶段,提供的信息和服务也越来越多。成功地管理和保护Web应用的信息和资源已经成为一个越来越复杂的挑战。身份认证管理是保护Web 信息和资源的核心部分。一般的身份认证方法是在每个应用系统中保存各自的用户信息并建立独立的身份验证模块,使用独立的认证机制在各自的身份认证模块中认证。这种传统的身份认证方法将用户的“网络身份”分割成许多独立的碎片,这些碎片构成了繁多的一对一的客户服务关系,导致了更多的安全风险。同时如果用户要频繁访问不同系统,每进入一个系统就要登录一次,这无疑会耗费大量的时间,并且用户需要记忆大量的账号信息。

因此,基于安全和效率的考虑,信息系统急需有一个统一的、具有较高安全控制的身份验证和授权系统,以保证数据安全和用户操作方便。在本文中,我设计并实现了一个基于LDAP的单点登录系统,它能够很好地解决用户身份验证和授权的问题。

2单点登录系统介绍

单点登录系统(Single Sign-On,SSO),是指当用户访问多个需要认证的系统应用时,只需要初始进行一次登录和身份认证,就可以访问具有权限的任何系统,而不需要再次登录,后续系统会自动获取用户信息,从而识别出用户的身份。这样,无论用户要访问多少个不同系统间的关联应用,他只需要进行一次登录,而不需要用户重复输入认证信息。单点登录技术可以简化用户访问多种系统应用,避免用户由于需要记忆众多账号信息而出现的遗忘,而且可以减少口令等重要信息在网络传播时被截获的危险。

本系统中采用LDAP目录来保存用户信息。LDAP(LightweightDirectoryAccessProtocol)即为轻量级目录访问协议,它基于X.500标准,但是简单了很多,而且可以根据需要定制。LDAP 目录中可以存储各种类型的数据,包括电子邮件地址、邮件路由信息、联系人列表等。通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至是主要的数据源都可以放在任何地方。LDAP协议是跨平台和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。

3传统的用户登录模式

传统的认证机制是基于用户名和密码的,每一个系统都建立有自己的用户信息数据库,用以验证用户的身份。用户要访问不同的系统就需要在各个系统中建立相应的帐号。

当其要访问一个系统中的资源时,用户首先要登录进入该系统,如果他同时要访问处于多个系统中的资源,用户就不得不按照各个系统的要求分别登录进入相应的系统。

近年来,为了实现企业的信息化、电子商务和其他需求,出现了越来越多的网络应用系统,在这种传统的用户登录模式下,这些企业的网络用户和系统管理员不得不面对这些现实:

(1)用户需要使用其中的任何一个应用的时候都需要做一次身份认证;

(2)系统管理员需要对每一个系统设置一种单独的安全策略,而且需要为每个系统中的用户单独授权以保证他们不能访问没有被授权访问的网络资源。

传统的用户登录过程的概念结构如图3.1所示:

图3.1传统的用户登录过程

图2.2说明了传统的用户登录模式的登录过程的原理:网络用户登录不同的应用系统时,需要输入相应的用户信息,不同的应用系统用不同的认证策略对用户进行认证。

4单点登录模式

单点登录,就是用户只需要在网络中主动地进行一次身份认证,然后就可以访问其被授权使用的所有处在网络上的资源而不需要再参与其它应用的身份认证过程。这些服务资源可能处在不同的计算机环境中,用户以后的身份认证是系统自动完成的。

首先,单点登录系统是采用了结合用户电子身份标识的新的身份认证机制,这种新的身份认证机制可大大提高系统的安全性。

其次,单点登录系统把原来分散的用户管理,集中起来了。各个系统之间依靠相互授权的方式来进行用户身份的自动认证。用户的账号信息通过统一的电子认证进行管理管理的,管理员只需要修改统一的用户认证信息就可以关联各个系统中的用户。由此可见单点登录系统的优点有:

(1)提高用户的工作效率和带来良好的用户体验。用户不再需要每访问一个应用资源就进行一次身份认证过程,从而使用户有更多的时间从事有益的工作,同时也可以把用户从繁杂的帐户信息记忆中解脱出来。

(2)更好的网络安全性。系统中使用的身份认证机制提供了加密等多种方法,可以防止大部分的网络攻击。同时由于新的身份认证机制使用户的账号信息记忆量减少,使系统由于用户机密信息的泄露而导致安全事故出现的机会大大减少。

单点登录过程的概念结构如图2.3所示。

图2.3单点登录过程

图2.3说明了单点登录系统模式下用户登录过程的原理:网络用户访问不同的应用系统时,只需在统一认证入口(即单点登录中的单点)登录,取得身份认证系统的身份标识,从而达到了单点登录,多点应用的目的。

目前SSO的模型主要有三种:基于经纪人(Broker)的SSO方案;基于代理(Agent)的SSO方案;基于网关(Gateway)的SSO方案。

(1)基于经纪人的单点登录方案(Broker-BasedSSO)

在Broker-BasedSSO方案中,有一个完成集中认证、用户账号管理的服务器和一个公共、统一的用户数据库。Broker为用户提供一个能够被用户进一步访问请求的电子身份凭证。Broker-basedSSO方案的主要优点是有一个中央用户数据库,易于对用户数据进行管理。主要缺点是需要修改原有应用。

(2)基于代理的单点登录方案(Agent-BasedSSO)

在Agent-BasedSSO方案中,有一个代理程序,自动为不同的应用程序认证用户。代理程序可以用不同的方式实现。若Agent部署在客户端,它能装载获得用户名口令列表,自动替用户完成登录过程,减轻客户端程序的认证负担。Agent部署在服务器端,它就是服务器的认证系统和客户端认证方法之间的“翻译”。当软件供应商提供了大量的与原有应用程序通信的Agent时,Agent-BasedSSO方案可使应用迁移变得十分容易。

(3)基于网关的单点登录方案(Gateway-BasedSSO)

在基于Gateway-BasedSSO方案中,用户对受限网络服务的访问都必须通过网关。网关可以是防火墙,或者是专门用于通信加密的服务器。所有需要保护的网络服务器都放在被网关隔离的受信网段里。客户通过网关认证后获得访问服务的授权。如果在网关后的服务能够通过IP地址进行识别,就可以在网关上建立一个基于IP的规则表。将规则表与网关上的用户数据库相结合,网关就可以被用于单点登录。由于网关可以监视并改变传给应用服务的数据流,所以它能够改变认证信息以适应适当的访问控制,而不用修改应用服务器。网关作为一个分离的部件,安装和设置方便;但是如果存在多个安全网关,那么用户数据库并不能自动地被同步。Gateway-BasedSSO方案不适用于用户端使用代理的情况。

本文设计并实现的基于LDAP目录服务的校园身份管理系统,采用的是较为简单的