基于Web Services的登录代理服务方案,在不改变原有的Web套用架构的基础上,通过构建一个标準的XML Web服务,实现了异构Web套用系统之间用户身份信息的共享。该代理服务不但能够消除用户信息管理中存在的“各行其是”现象,而且也极大地方便了用户的操作。
基本介绍
- 中文名:登录代理
- 外文名:Login Delegate
- 服务目的:实现不同系统间用户身份信息共享
- 设计目标:一次登录,到处通行
- 功能及过程:注册、账户关联、登录代理、认证
- 套用学科:法学、物理学、计算机科学
简介
定义
基于Web Services的登录代理服务方案,在不改变原有的Web套用架构的基础上,通过构建一个标準的XML Web服务,实现了异构Web套用系统之间用户身份信息的共享。该代理服务不但能够消除用户信息管理中存在的“各行其是”现象,而且也极大地方便了用户的操作。
该方案还可以根据具体的项目需要进行适当的扩充。例如,可以为系统管理员开发一个综合管理界面,用于维护用户资料、控制用户访问许可权、监视代理服务的使用情况,等等。或者,可以增强登录助手外挂程式的功能,使之不仅能够侦听浏览器视窗的导航动作,还可以让用户对浏览器加锁,以保证只有在登录状态下才能访问某些站点。
研究背景
随着基于Web的信息系统日益广泛的套用,许多企业、机关和教学科研单位都陆续开发或使用了针对不同部门、不同用途的Web信息管理系统和信息发布系统。
在提高工作效率的同时,多个系统各自为政也带来了一系列的麻烦,其中之一就是每个系统都有自己的用户身份数据存储方式和登录信息验证过程。如果一个用户要访问不同的系统,则必须分别在每个系统中注册自己的登录信息。这使得用户常常为记住一连串的帐户名和口令而感到头疼。
事实上,产生这种现象的根源在于:每一个套用系统的决策者和设计者,在规划、设计、开发和部署该套用系统的时候,都只是将某一局部的信息资源加以归纳整理,却没有从全局的高度来考虑系统的设计和实现,当然也就不可能真正实现信息的共享和系统的互通。于是就造成了众多的信息孤岛,信息需要重複多次的输入,数据冗余严重,数据一致性得不到保证,部门之间无法共享信息,管理者也难以统筹全局。
显然,为了摆脱这种困境,一个简单的方案就是连线企业内部异构的信息系统,使彼此之间可以互相通信。这也就是我们通常所说的企业套用整合(Enterprise Application Integration,简称EAI)。然而,传统的EAI方案很难从根本上解决我们当前面临的问题。例如:使用流行的分散式技术CORBA、DCOM等,虽然可以实现较为複杂的系统整合,但是这些技术都是基于各自定义的标準,它们在传输机制、数据定义以及访问模型上都大相逕庭,相互之间难以沟通。另外,传统EAI技术在简单性、灵活性、可扩展性、适用範围以及整合效率等许多方面大都差强人意,高昂的工程成本更是让许多中小型企业望而却步。
Web Services(即Web服务)体系结构的出现,为解决上述矛盾开闢了道路。Web服务建立在对开放标準XML广泛接受的基础上,最重要的优点之一就是允许在不同平台上使用不同程式语言以一种标準的技术开发程式,来与其它应用程式通讯。Web服务使用XML序列化其客户端收发的数据,即使客户端和Web服务主机使用不同的作业系统,或者应用程式使用不同的程式语言开发,只要客户端程式可以解析XML,那幺它就可以使用Web服务返回的数据。依靠Web服务,通过鬆散的套用整合,用户能够实时地访问不同部门、不同套用、不同平台和不同系统的信息。
研究意义
基于Web Services的登录代理服务,其首要设计目标可以概括为:“一次登录,到处通行”。所谓“一次登录,到处通行”,是指基于Web Services的登录代理服务的设计与实现用户只需要经过一次统一身份认证,就可以访问各个系统;也就是说,用户只要持有一份注册信息,就可以在各个Web套用之间通行。
构建这样一个登录代理服务的意义在于:一方面,对于用户信息的管理,既是大多数Web套用共有的关键环节,往往又是最容易产生数据冗余和数据不一致等现象的环节;另一方面,Web套用的服务对象是用户,用户本人的身份信息是其数据访问的基础,决定了用户会从Web套用中获得何种服务。
目标
根据套用背景的要求,基于WebServices的登录代理服务需要达到以下目标:
方便使用
能够儘可能地利用现有系统的身份认证模组以及现有的用户设定和许可权设定,儘量保护现有的投资,减少重新进行用户设定和许可权设定的费用,同时避免对现有系统进行大规模的修改。
扩展性和可集成性
不仅能够支持现有的Web套用系统及其现有的用户管理系统,而且当有新的Web套用被部署或开发的时候,这个登录代理服务可以作为它的身份认证模组的形式工作。也就是说,新的Web套用不必建立自己的用户系统,可以通过利用该服务作为身份认证模组的形式来实现等价的功能。
功能及过程描述
登录代理服务需具备四项主要功能,如图所示。
服务用例图

下面分别描述一下用户注册、帐户关联、登录代理和认证组件的大致流程。
用户注册
用户在登录代理服务中注册一个帐户,以后这个帐户可以在所有使用登录代理服务的套用系统中使用,它作为用户的唯一身份标誌,可以关联到多个远程Web套用的帐户记录。
用户注册主要由两个过程组成:新用户注册和更新用户注册信息。新用户注册包括以下三个步骤:
1、用户向登录代理服务发出新用户注册请求。
2、服务查询用户信息资料库,如果该用户可以注册(没有同名ID等违背约束条件的情况发生),那幺将该用户的信息保存到用户信息资料库中。
3、当保存完毕后,登录代理服务回响用户,注册完成。更新用户注册信息的过程与之类似。
帐户关联
如果用户之前已经在相关的套用系统中拥有帐户,而且也已经设定了相应的许可权,那幺用户能够将这些套用系统的帐户与登录代理服务的帐户进行关联,以便用户在登录到代理服务之后,就能够自动使用相关的帐户名/口令信息来访问远程Web套用系统。
帐户关联操作比较複杂。这是因为,不同的Web套用,其身份认证方式也不尽相同。比如,最常见的是採用HTTP POST方式,即利用HTML页面上的Form对象,将用户输入的一组帐户名/口令信息提交到由Form的ACTION属性指定的处理页面。这也是最简单的登录方式。许多Web套用系统的登录模组需要用户输入更多的信息,如选择登录角色、个人喜好设定,等等。然而,不论登录页面要求用户输入多少信息,后端Web伺服器接收到的都是一系列的名/值对。伺服器再将这些名/值对进行处理,据此验证用户的身份。
登录代理
用户首先登录到代理服务,并获取许可权令牌,以后可以使用这个许可权令牌访问其他的Web套用系统。
如果用户已经注册,并且有帐户关联记录,那幺就可以通过登录代理服务访问远程Web服务,主要流程如图所示:
一次登录代理流程

1.用户登录到登录代理服务。‘
2.用户发出请求,访问某个远程Web套用系统,如RmWebAppi。
3.服务在资料库中查找此用户的帐户关联记录;如找到,则生成一个“伪”登录页面,并且填写登录数据,回馈给用户。
4.使用“伪”登录页面上的脚本,将用户登录数据提交到RmWebAppl。
5.如果登录成功,用户即可访问RmWebAppI。
认证组件
某些Web套用自身没有用户系统,但是可以将登录代理服务作为自己的身份认证组件。也就是说,用户可以把登录代理服务中的帐户名/口令,作为在这些Web套用中的帐户名/口令。
代理服务向其它Web套用提供身份认证接口,允许这些Web套用使用代理服务作为它们的身份认证组件。
1.用户使用在登录代理服务上注册的帐户名/口令,登录到某个Web套用系统,例如RmWebhppl。
2.PanWebAppl将用户输入的登录数据,以及自己在登录代理服务中注册的标识令牌(Token_Appi)转发给登录代理服务,请求登录代理服务完成身份认证。
3.登录代理服务根据令牌Token_Appl,判定RmWebAppl是否已经在登录代理服务中注册。若是,则核对RmWebAppl转发过来的用户名和密码。
4.登录代理服务将验证结果返回给RmWebAppl,这样就完成了一次身份认证。
基于登录代理的统一身份认证服务平台
定义及研究背景
随着信息化程度的提高, 企业内部的各种套用也随之增加。传统上这些套用系统各自拥有一套独立的用户系统, 使用独立的认证机制。结果造成用户信息、资源冗余, 用户身份组织零乱, 管理複杂, 用户多密码记忆及多点登录。这不但影响了用户的使用效率, 而且信息、资源的分散存储和管理,给企业内部的网路管理带来困难, 使整个网路系统存在安全隐患, 受到非法截获和破坏的可能性增大, 从而在一定程度上制约网路的发展。所以, 构建一个统一身份认证服务平台是解决企业内部套用系统集成的有效途径。
统一身份认证服务的中心思想就是为企业内部的网路套用建立唯一的认证服务平台, 用户的信息资源被统一存储在中央用户资料资料库中, 为企业内部的所有套用共享。对用户而言, 只需一次身份认证, 就可以对所有被授权的套用系统或资源进行无缝的访问, 对网路管理员而言, 可以在可视化图形界面下, 便捷地实现对各套用系统的用户集中管理和统一身份认证, 并进行系统级的授权。从而改变了传统分散的用户管理和认证模式, 大大地提高了认证的可信度和可靠性。在规範用户操作行为, 提高工作效率,降低操作成本, 提高系统的整体安全性方面得到很大的改善。集中式的认证平台, 可以提供功能更强的认证手段和效率更高的认证方法。
工作流程
在基于登录代理的统一身份认证服务模式下,用户对支持统一身份认证服务平台的套用系统的访问请求由登录代理拦截并根据该平台中的认证机制和策略决定该请求是否能满足或拒绝。基于登录代理服务模式的工作流程如图所示。工作流程如下:
登录代理服务模式的工作流程

1)用户通过浏览器发出套用系统资源访问请求, 在套用伺服器端的登录代理负责拦截用户对套用系统资源的请求;
2)登录代理检查访问请求中是否包含访问认证令牌, 如果包含访问认证令牌, 则进行步骤7),如无访问认证令牌(对于第一次登录统一身份认证服务平台或逾时退出系统后的情况), 则登录代理向身份认证伺服器发出用户认证申请;
3)身份认证伺服器的认证模组将根据用户提供的个人身份信息和中央用户资料库中的相关用户信息进行匹配, 如果匹配成功, 则通过认证, 该用户创建一个全局会话, 并产生一个与该会话关联的全局访问认证令牌(cookie , 包含该用户的帐号、密码等信息), 同时授权模组将根据中央用户资料资料库的策略, 查询该用户在统一身份认证服务平台中被授权的全部套用系统的资源(URL)列表;
4)身份认证伺服器将该用户的全局访问认证令牌和全部授权资源列表返回登录代理, 登录代理返回该全局访问认证令牌及用户全部授权资源列表的WEB 页面到客户端;
5)客户端的浏览器收到后将其存入本地快取, 在以后该用户访问其他支持统一身份认证服务的套用系统时, 只需单击相应的套用系统列表, 该用户的全局访问认证令牌的讯息将自动在请求中传递;
6)如果无法通过认证, 则登录代理将拒绝用户的访问请求, 并返回一个无权访问的WEB 页面;
7)登录代理在用户访问请求讯息中识别出全局访问认证令牌后, 向身份认证伺服器发出识别全局访问认证令牌有效性的请求;
8)身份认证伺服器确认令牌的有效性, 如果全局访问令牌无效, 登录代理向用户传送一个含有出错信息的WEB 回响;
9)如果全局访问令牌有效, 则身份认证伺服器的认证模组将查询中央用户资料资料库中的帐号关联信息, 以确认该用户与所申请访问的套用系统之间是否存在帐号关联;
10)如果存在帐号关联信息, 登录代理将包含关联信息(套用系统中的用户名、密码等)的访问请求定向到相应的套用系统, 套用系统自动根据关联信息中套用系统内部的用户账户回响用户请求;
11)如果不存在帐号关联信息(对于新部署的套用系统), 登录代理直接将访问请求定向到相应的套用系统;
12)套用系统将回响结果返回登录代理, 最后登录代理将回响结果返回给用户, 完成调用。