单点登录(SSO)某一实施说明文档
1、定义
单点登录系统提供所有成员网站的“单一登录”入口。
本系统的实质是含有身份验证状态的变量,在各个成员网站间共用。
单点登录系统,包括认证服务器(称Passport服务器),成员网站服务器。?
会员:用户通过Passport服务器注册成功后,就具有了会员身份。
单一登录:会员第一次访问某个成员网站时,需要提供用户名与密码,一旦通过Passport服务器的身份验证,该会员在一定的时间内,访问任何成员网站都不需要再次登录。
?Cookie验证票:含有身份验证状态的变量。由Passport服务器生成,票含有用户名,签发日期时间,过期日期时间和用户其它数据。?
SSO系统,是集团统一的Passport,SSO系统分两个阶段实施。
第一阶段对于新注册的用户提供单点登录的功能。
第二阶段,整合各个成员网站已有会员到单点登录系统中。Passport服务器作为各个成员网站的惟一身份验证入口,需要考虑其性能,扩展性,稳定性,安全性和维护成本。尤其要注意第二阶段的开发,做到统筹考虑。
3、规则
1)?? 注册:
???? a.成员网站重定向到Passport服务器的注册页面,并且带有返回URL和成员网站ID。???
?????b.通过Passport注册页面创建会员后,保存会员验证票到数据库和passport服务器所在域cookie中。同时,在成员网站?的数据库上创建与Passport服务器数据库中会员的映射关系。
?????c.重定向到成员网站,填写会员个性信息。
?????d.保存会员个性信息,并把重定向传入的验证票保存到本地cookie和创建Session状态变量。
?2)登录:
???????a、?SSO系统要实现各个成员网站的无缝结合,只要会员经过了认证服务器的登录验证(Passport服务器),该会员访问其它任何的网站时,都不需要再次登录。
???????b、?会员在第一次登录时,Passport服务器验证身份之后,生成的cookie验证票,只需保存到Passport服务器所在域的cookie中,不能采用向每个成员网站所在的域中写cookie,防止响应时间太长,给会员带来不友好的浏览体验。
????? 同时,把下发给会员的cookie票保存到Passport服务器的数据库中,方便验证方式和会员行为统计的扩展。
???????c、?会员一经通过身份验证,成功登录了某个成员网站(假设为网站A),需要利用Session和cookie两种方式保存会员已经登录的状态。
???????d、?同一个浏览器进程中,会员在网站A的页面间跳转时,只需要根据Session中的状态变量加载登录框。不需要再与Passport服务器通信验证会员的身份。
???????e、会员通过验证登录了网站A,若会员从网站A跳转或重新打开浏览器登录其它成员网站(假设网站B),都需要与Passport服务器通信验证会员的票。但是,这次验证不要Passport服务器与数据库中保存的验证票进行比较验证,只需要验证Passport服务器域中的cookie验证票据有效即可。
?????? f、对于验证cookie票,能够实现加密和数字签名保证cookie的机密性,完整性和不可抵赖性。
4、框架
系统结构图
?????????
层次结构图
?????????????????????
IPO图表????
备注:红色高亮部分,表示修改的逻辑
模块名称:会员注册
使用者:Passport服务器与各成员网站
输入部分??I
处理描述??P
输出部分??O
5.会员个性信息(在成员网站填写)
1.邮箱是否可用的实时检查,及时提示邮箱是否可用(这里的可用仅仅是表示符合邮箱的规范,并且该邮箱没有被注册,不表示真正的可用)。
2.密码安全级别实时提示。根据字符长度、含有字符的种类,计算安全级别,并实时提示用户。安全级别分为:太短,差,良,优四个等级。
3.根据区域数据库,获得区域信息下拉框,结合会员区域IP,实现区域自动筛选,在允许的误差范围内不需手动选择区域。
(1)验证会员提交的注册信息,若合法,把用于激活帐号的验证码发送到会员测试使用的邮箱中。
(2)会员使用验证码激活帐号,若激活成功,保存会员信息和会员验证票到数据库(Passport服务器数据库),并且验证票也保存到cookie中。同时调用成员网站的Web Service接口,把刚才产生的Passid保存到成员网站数据库中(建立映射关系)。
(3)重定向到成员网站。
(4)成员网站接收数据,提示会员填写个性信息,并提交到成员网站服务器。
(5)保存个性信息与接收的会员验证信息到成员网站数据库与cookie中,同时在Session中保存会员已验证的状态信息。
(5)导航会员到某个页面。
4.保存会员验证票到cookie中,同时保存会员通过验证的状态到Session中。