1.2开发的背景
随着信息技术的不断发展,企业为了适应业务需要而在信息化建设方面建立了不同的应用系统,企业拥有人力资源管理系统、财务系统等许多企业内部管理系统,系统之间各自独立存在,数据分散,当用户工作时需要登录不同的系统查询[3],而对于不同部门的员工来说他们所需要的信息资源存放在不同的系统中,他们则要在不同的系统之间来回转换。而系统之间缺乏统一的验证,这给系统间的集成带来了很多不便。
单点登录(Single Sign On,简称SSO)是一种认证和授权机制,主要是为了方便用户访问多个系统。其实质是安全上下文或凭证在多个系统之间信息的传递和共享[4]。当用户登录系统时客户端会根据用户获取的凭证为用户建立一个包含用户信息的安全上下文,系统根据这个判断用户访问权限[5]。
企业门户系统不仅集合了企业内部的业务系统,还集合了系统外部的业务系统,主要是合作伙伴的业务系统,基于企业信息门户的单点登录系统不仅完成了不同业务系统间的自由转换,还保证了用户的信息安全[6]。如果单点登录没有完成用户信息的安全保证则可能适得其反。
1.3开发意义
随着信息技术和网络技术在生活中的广泛应用,各式各样的应用系统都得到大规模的普及[7]。单点登录是信息技术的不断深化及网络应用的不断推广的必然结果。各种基于信息技术的应用系统都有自己独立的用户验证,需要为用户配置相应的账号进行登录,而且成功登录了某个系统,并不代表用户也同时登录了其它系统。这给信息网络统一管理和用户使用带来不便, 也就提出了用户对信息网络统一身份认证的要求[8]。我们假设一个大型的系统通过3个独立的应用子系统即人力资源管理系统、财务管理系统、网上办公系统,和一个统一的认证服务中心去统一的验证各个子系统的身份,不论用户访问系统的哪一个页面,系统都会跳转到登录页面,用户登录后,系统则会自动转回到用户上次访问请求的页面。假如用户之后想在访问其他的应用系统则不需要重新登录一次[9]。这就提出了单点登录SSO。
使用单点登录的意义在于:
(1) 方便用户:用户不需要记住多个密码,不需要再陷入多次登录的麻烦。
(2) 安全性高:验证用户的基本身份。
(3) 有效的管理:数据统一的保存,减少了出错率也减轻了管理员的工作量。
(4) 自动完成登录:用户只需要登录一次便可访问已授权的应用和系统,提高了用户的工作效率。
2. 系统实现的关键技术
2.1实现机制的选择
SSO的实现机制并非完全相同,主要有Cookie机制和Session机制两大类。Session是一种服务器端的机制,服务器为用户创建一个唯一的SessionID,使在整个交互过程中保持状态,应用可自行选择交互信息,如果在多个浏览器中用Session的方法去实现单点登录是行不通的[10]。
Cookie则是一种客户端机制,用户在浏览网页时服务器发给浏览器的纯文本信息,然后保存在客户机的内存中。保存的内容主要有名字、域和路径,域和路径合在一起则构成了Cookie的作用范围[11]。 在使用Cookie方式实现SSO时,域名必须得相同。
2.2凭证
凭证是检查用户当前状态信息和身份认证的数据单元,在单点登录中使用此类技术最简单的方法就是提交用户名和密码,服务器会根据提交的信息对用户进行认证[12],如果认证成功服务器会将认证的凭证发送给用户,并将用户的授权保存到本地,如果用户想访问其他的应用系统时只需提交该认证凭证即可,无需重新输入用户名,密码。 ASP.net单点登录系统的设计与实现(2):http://www.youerw.com/jisuanji/lunwen_3070.html