基于门户单点登录系统的设计与实现

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

286二

○一二年第十五期

华章

M a g n i f i c e n t W r i t i n g

王炳举,武

静,郑州大学西亚斯国际学院。

作者简介:基于门户单点登录系统的设计与实现

王炳举,武静

(郑州大学西亚斯国际学院,河南新郑451150)

[摘要]本文根据单点登录的特点,实现了一种简单的单点登录方案,阐述了单点登录方案设计、登录流程、数据

库设计等技术细节,并对方案进行了评估分析。

[关键词]单点登录;凭证加密1、单点登录简介单点登录(Single Sign On ),简称为SSO ,是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要进行一次登录就可以访问所有建立了相互信任关系的应用系统。它的目标是方便用户,简化管理,提供统一的一站式服务。

使用单点登录主要有以下几个方面的好处:1.1统一管理、维护用户公共信息、提供多种接口标准,保证其他应用系统通过直接访问或同步复制的方式,从统一用户中心获取一致的用户信息。

1.2方便管理,减少管理员管理多个应用系统用户的压力,管理员只需要维护好统一用户中心的用户信息即可,其他应用系统可按一定的规则从统一用户中心同步用户信息。

1.3为终端用户提供便捷的一站式服务,用户只需要记住一个用户名及密码即可访问其有权限的所有应用系统,也可以减少因用户忘记密码而为管理员增加的工作量。

1.4具有良好的兼容性、可扩展性,一方面能兼容新开发的业务系统也能支撑现有的应用系统的访问;另一方面,系统中用户信息的属性可以扩充,以适应未来业务的变化。

1.5提高开发人员的效率。SSO 为开发人员提供了一个通用的身份验证框架。实际上,如果SSO 机制是独立的,那么开发人员就完全不需要为身份验证操心。他们可以假设,只要对应用程序的请求附带一个用户名,身份验证就已经完成了。

2、单点登录系统设计

本文作者负责一所高校信息门户开发及维护,由于目前所用的门户系统没有单点登录服务,但又经常需要跟其他应用系统之间进行单点登录,因此设计此方案,大致的思路如下:

2.1设计思路。我校的信息门户使用活动目录进行用户管理,通过LDAP 协议进行统一身份验证,因此本方案也使用AD 作为统一用户中心,在门户上建立单点登录服务用于跟其他应用系统之间的单点登录。

用户首先登录门户,SSO 服务获取到用户信息后将用户有权访问的资源列表展现给用户,用户点击到某个应用的链接后自动登录到相应的应用程序;用户点击的链接不包含任何敏感信息,只有应用服务器ID ;SSO 服务会根据应用服务器ID 自动根据凭证生效时间、过期时间、用户ID 、Key (SSO 服务器与应用服务器之间约定的加密字符串)等信息自动生成凭证并将凭证提供给应用服务器验证,当应用服务器收到登录请求后会首先验证用户的合法性,然后到SSO 服务器验证凭证的合法性,验证成功后允许用户登录,且该过程必须要在既定的时间内完成。

该过程中每个应用与SSO 服务器之间约定共同的Key (密匙),根据密匙、用户ID 、用户IP 、凭证生成时间及失效时间根据一定的规则使用Hash 算法生成凭证,因此相同用户在不同时间登录某个应用时生成的凭证是不相同的。

服务器之间通过SSL 协议加密信息传输,用户通过使用https 的方式访问。

SSO 服务器根据单点登录类型判断应用系统中的用户信息与统一用户中心的用户信息是一致的还是需要进行用户映射,如果需要进行用户映射且用户是第一次登录,则将用户重定向到用户映射页面要求用户填写相关信息后进行登录。

SSO 服务器应具有的功能:(1)可以添加多个应用,添加应用时可添加应用服务器名称、

通信密匙、应用服务器单点登录地址等信息。

(2)可将所有应用以合适的方式展现给用户,并能获取用户登录ID ,并根据应用服务器ID 、通信密匙按照一定的加密算法生成凭证信息及凭证信息的Hash 值。

(3)提供用于验证应用服务期凭证的WebService ,该Web-Service 应检查凭证的时效性(是否为过期凭证)及正确性,防止凭证被篡改,同时将校验的结果反馈给应用服务器。

应用服务器功能:

(4)应用服务期只需要校验SSO 服务器提供的用户ID 及凭证的有效性即可。

2.2单点登录流程。

2.2.1用户首先登录门户,并打开单点登录(SSO )应用列表,点击相应的应用系统链接。

2.2.2SSO 服务器根据APPID 找到对应的应用、与应用服务器约定的key ,在SSO 服务器上生成一条包含APPID 、用户ID 、用户IP 、凭证生效时间、凭证失效时间、凭证信息的Hash 值等的记录。凭证信息根据APPID 、用户ID 、用户IP 、凭证生效时间、凭证失效时间及与应用服务期之间约定的key 按照一定的规则生成。

2.2.3SSO 服务器根据步骤2中的信息采用Hash 加密算法生成的凭证信息,并将用户ID 及凭证传递到应用服务器。

2.2.4应用服务器根据SSO 服务器传递过来的用户ID ,校验该用户的有效性,同时调用SSO 服务器提供的WebService 校验凭证的有效性及时效性,如果校验成功,则允许用户登录。

2.2.5如果用户登录的应用系统与统一用户中心使用不同的用户信息,则用户第一次登录时需要首先进行用户映射,第二次登录时执行步骤1到步骤4。

2.2.6用户登录其他应用系统时重新执行以上过程。

从以上流程可以看出,本文设计的单点登录方案跟其他单点登录方案有所不同,用户无论登录那个应用系统均需由SSO 服务器代替用户自动登录。

2.3具体数据表设计。首先我们需要一张表用于存放各种应用服务器的相关信息,包含应用服务器名称、应用服务器单点登录地址等信息,数据表字段及设计说明如下:

除了上面数据表之外我们还需要一张表用于存放用户登录时自动生成的信息,同时这张表中的数据也作为应用服务器向SSO 服务器验证时用。

如果统一用户中心与应用系统使用两套不(下转第288页)

相关文档
最新文档