2.3安全机制
单点登录中用户信息的安全保障。主要保证了用户信息在交换的过程中的保密性和完整性。图1为信息安全处理图。
图1 信息安全处理图
2.4单点登录原理
单点登录(Single Sign On,简称SSO)是一种认证和授权机制,主要是为了方便用户访问多个系统。用户只需在登录时进行一次注册就可以在多个应用系统间自由的转换,不用重复的输入用户名和密码。单点登录的实质是安全上下文或凭证在多个系统之间信息的传递和共享[13]。当用户登录系统时客户端会根据用户获取的凭证为用户建立一个包含用户信息的安全上下文,系统根据这个判断用户访问权限。
单点登录减少了用户在不同系统中登录时所耗费的时间,减少了管理员的工作量,增加了管理的便利性。通过一次登录即可访问各个不同系统的信息,而且可以自由的切换。单点登录从根本上抛弃了传统的登录方式,而采用了集合密码学技术的新的认证机制,从而大大提高了系统的安全性。单点登录原理如图2所示。
图2 单点登录原理
3. 系统分析
3.1 需求描述
我们假设一个大型的系统通过3个独立的应用子系统即人力资源管理系统、财务管理系统、网上办公系统和一个统一的认证服务中心来统一的验证各应用系统的身份,不论用户访问系统的哪一个页面,系统都会跳转到登陆页面,在用户登录后,系统则会自动跳转到上次访问的页面。并且用户此后可以在系统中的各应用系统中无缝切换。不需要重复登录。
3.2需求分析
(1) 注册
a. 成员网站重定向到服务器的登陆页面,并带有返回URL和成员网站ID。
b. 通过服务器注册成功后,会把获得验证票据保存到数据库和服务器所在的域cookie中,同时,在成员网站的数据库上创建服务器数据库用户的映射关系。
c. 重定向到成员网站,填写用户信息。
d. 保存用户个性信息,并把重定向传入的验证票据保存到本地的cookie和创建Session状态变量。
(2) 登录
a. SSO系统要实现各个成员网站的无缝结合,只要用户通过了认证服务器的验证,访问其他任何的网站时,不需要再次登录。
b. 用户在第一次登录时,服务器验证身份后会生成一个cookie验证票据,只需要把票据保存到服务器所在的域cookie中,不能采用向每个成员网站所在的域中写cookie,防止响应时间太长,给用户带来不好的浏览体验。同时,把下发给用户的cookie票保存到服务器的数据库中,方便验证方式和用户行为统计的扩展。
c. 用户通过身份验证就等于成功登录了某个成员网站(假设为网站A), 系统会利用Session和cookie两种方式保存用户已经登录的状态。
d. 同一个浏览器进程中,用户在网站A的页面间跳转时,只需要根据Session中的状态变量加载登录框,不需要再与服务器通信验证会员的身份。
e. 用户通过验证登录了网站A,若用户从网站A跳转或重新打开浏览器登录其它成员网站(假设网站B),都需要与服务器通信验证会员的票。但是,这次验证不要服务器与数据库中保存的验证票进行比较验证,只需要验证服务器域中的cookie验证票据是否有效。
f. 对于验证cookie票据,能够实现加密和数字签名保证cookie的机密性、完整性和不可抵赖性。
3.3可行性分析
系统的可行性分析主要包括经济上的可行性,技术上的可行性和操作上的可行性,下面将分别介绍三种技术上的可行性:
(1) 技术可行性
单点登录系统是采用C#语言编写的,具有功能强大,编写一次,到处运行等特点,所以此系统在不同的操作系统上都可以运行,具有很强的移植性、灵活性和安全性。并且单点登录系统要求应具备功能完备、易于使用、易于文护等特点。基于以上的要求,本系统采用Visual Studio 2008作为开发工具,使得代码编写的过程大大的简化。此系统在技术上是可行的。 ASP.net单点登录系统的设计与实现(3):http://www.youerw.com/jisuanji/lunwen_3070.html