当前位置:文档之家› 基于门户单点登录系统的设计与实现

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

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页)288二○一二年第十五期华章M a g n i f i c e n t W r i t i n g式的服务方式,向社区延伸读者服务网络,采用在社区建立分馆的形式,主动参与基层图书馆建设,成为传播文献知识信息的节点,提高在社区中的地位。

高校图书馆可以凭借自己的优势,加强与周边社区的沟通,与其协商,共同建设高校图书馆社区分馆。

由社区提供一定的场所,安排必要的人员和保证一定的购书经费,高校图书馆则提供一些设备、图书。

可根据馆藏特色,通过对社区分馆的服务对象需求情况、服务内容、服务手段等分析,有针对性地支持社区图书馆建设,定期为他们更换一部分图书,高校馆以优质实用的文献信息资源充实社区分馆,并且抽出少量的专业人员对他们的业务工作加以培训与指导,及时解决在实践工作中出现的种种问题,在资源上、技术上、人员上为社区分馆的建设,提供帮助和指导。

另外,建立社区图书馆计算机网络也尤为必要。

通过宽带网,能克服社区馆藏量小、读者需求大的矛盾,将丰富的文化信息传输到社区图书馆甚至居民家里,供社区群众检索、阅读,有效地实现资源共享。

[5]3.4直接向社区居民开放条件比较好的地方高校图书馆可以考虑直接面向社区居民开展公共服务,即在不影响学校教学和科研的前提下,在可控的范围内向社区公众开放,包括图书馆的各种设施、各类型的文献信息资源以及图书馆的开展的各项信息服务和信息增值服务。

高校图书馆向社区开放,不应将为社区居民服务视为额外的负担。

同时要注意开放的范围,由于各高校除了正常的教学任务外,还承担一些科研项目,其图书馆也相应收藏一些与本校专业教学科研方向相应的图书文献资料。

而社区读者基本上是有自己的喜好。

因此,在对社区开放的范围上,不一定完全开放。

其次,在开放的时间上要合理安排,尤其是避免和学生阅览、教师阅览发生冲突。

总之,高校图书馆对社区开放应从实际出发,在不影响正常的教学工作和科研的前提下,尽最大能力兼顾社区居民的文化需求。

4.应注意的问题4.1处理好馆藏结构与用户需求的矛盾。

各个高校图书馆的条件各不相同,馆藏资源也各有其优势和不足之处。

如果社区需要与高校图书馆资源的优势存在差别时,高校图书馆就必须对资源作相应的补充和调整。

因此,高校图书馆在为社区服务之初,就必须对本馆为社区服务具有的优势和存在的不足进行认真的分析,包括文献信息资源、人力资源、现代化环境和设备、设施等方面的分析,以便扬长避短,及时调整服务策略,更好地为社区服务。

4.2处理好为学校服务和为社区服务的关系。

为学校教学和科研服务是高校图书馆的基本宗旨,是工作的重点,这是任何时候都不能忘记和偏废的。

在完成基本任务的同时,充分利用图书馆的资源和人才优势为社区服务,也是它的重要任务。

在具体操作时,一定要分清主次和轻重缓急。

4.3处理好广泛服务与知识产权保护的问题。

在向社区提供服务的同时,一方面加大网络资源服务工作的力度,另一方面更要关注工作环节中的知识产权保护问题。

因为知识产权在推动高校图书馆事业发展的同时,也对高校图书馆电子信息资源管理利用工作形成制约。

【参考文献】[1]王军.高校图书馆服务社区的思考[J ].图书馆,2009.5.[2]姜勇.高校图书馆为社区服务的可行性探讨——以黑龙江科技学院图书馆为例[J ].图书馆建设2008.5.[3]王欣.高校图书馆应该积极面向社区服务[J ].陕西广播电视大学学报,2010.5.(上接第286页)同的用户信息,则还需要设计统一用户中心与应用系统中用户信息对应表。

3、方案评估3.1通用性。

该设计方案可以使用各种编程语言实现,因此具有跨平台、跨应用的特点。

用户在登录其他应用系统时由于不需要输入任何密码,因此用户可自由修改其在其他应用系统中的密码,只要用户名或登录ID 不变,用户即可通过单点登录服务登录到相应的应用,应用系统原有登录方式不受影响。

由于各应用系统之间保持独立,因此一台应用服务器受攻击后其他服务器不受影响。

通常情况下各业务系统都会有自己的业务操作账户,而这些账户是不需要进行单点登录的,且各应用服务器可以有自己独有的用户信息。

比如,财务系统及人力资源系统可以单独为领导设置帐号专门用于报表的查看。

3.2安全性。

本方案从以下几个方面加强系统的安全:3.2.1SSO 服务器与应用服务器之间约定的密匙不同。

3.2.2生成的凭证具有时效性和随机性,会自动过期,过期后不能再次使用。

3.2.3凭证的加密采用Hash 算法加密保证凭证传递过程中不被截取或篡改,并防止两个应用系统相互截取或伪造对方的凭证。

3.2.4SSO 服务器与应用服务器使用SSL 传输协议,可确保数据在网络传输过程中不会被截取及窃听。

3.2.5每个系统都有自己的应用系统ID 及密匙。

3.2.6进行单点登录的用户都需要首先通过LADP 协议到AD 服务器进行验证,这就保证了单点登录服务地址只有门户系统中的用户可以访问而其他非门户用户必须首先通过门户的验证后才能访问相应资源。

相关主题