1、引言数据库
1.1编写目的浏览器
为了单点登陆系统(SSO系统)的可行性,完整性,并能按照预期的设想实现该系统,特编写需求说明书。安全
同时,说明书也发挥与策划和设计人员更好地沟通的做用。 服务器
1.2背景cookie
a.鉴于集团运营的多个独立网站(称为成员站点),每一个网站都具备本身的身份验证机制,这样势必形成:生活中的性能
一位用户,若是要以会员的身份访问网站,须要在每一个网站上注册,而且经过身份验证后,才能以会员的身份访问网学习
站;即便用户以一样的用户名与密码在每一个网站上注册时,虽然能够在避免用户名与密码的忘记和混淆方面有必定的测试
做用,可是用户在某一段时间访问多个成员站点或在成员站点间跳转时,仍是须要用户登陆后,才能以会员的身份访 网站
问网站。这样不只给用户带来了不便,并且成员网站为登陆付出了性能的代价; 加密
b.若是全部的成员网站,可以实现单点登陆,不只在用户体验方面有所提升,并且真正体现了集团多个网站的兄弟
性。经过这种有机结合,能更好地体现公司大平台,大渠道的理念。同时,这样作也利于成员网站的相互促进与相互
宣传。
正是出于上面的两点,单点登陆系统的开发是必须的,是迫在眉睫的。
1.3定义
单点登陆系统提供全部成员网站的“单一登陆”入口。本系统的实质是含有身份验证状态的变量,
在各个成员网站间共用。单点登陆系统,包括认证服务器(称Passport服务器),成员网站服务器。
会员:用户经过Passport服务器注册成功后,就具备了会员身份。
单一登陆:会员第一次访问某个成员网站时,须要提供用户名与密码,一旦经过Passport服务器的身份验证,
该会员在必定的时间内,访问任何成员网站都不须要再次登陆。
Cookie验证票:含有身份验证状态的变量。由Passport服务器生成,票含有用户名,签发日期时间,
过时日期时间和用户其它数据。
2、任务概述
2.1目标
SSO系统,是集团统一的Passport,SSO系统分两个阶段实施。第一阶段对于新注册的用户提供单点登陆的功能。
第二阶段,整合各个成员网站已有会员到单点登陆系统中。
Passport服务器做为各个成员网站的唯一身份验证入口,须要考虑其性能,扩展性,稳定性,安全性和维护成本。尤为
要注意第二阶段的开发,作到统筹考虑。
2.2最终用户的特色
最终用户是数以万计网民。这就肯定了用户使用电脑的水平是良莠不齐的,在开发单点登陆系统时,力争作到界面友
好,措词简单明了。用户不用学习,就能使用该系统。
3、需求规定
3.1 需求概述
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的机密性,完整性和不可抵赖性。
g、 若果Passport服务器Down掉后,仍能够直接登陆成员网站。
说明:上面高亮显示的表示二期开发功能。
3)登出、修改密码、找回密码和成员网站间的跳转,请查看IPO图表中相应的模块描述。
-
3.2对功能的规定
SSO系统包括注册、登陆、登出、密码修改、密码找回、成员网站间跳转与用户管理模块。本说明书使用HIPO图描述
系统机构和模块内部处理功能,它主要包括层次结构图和IPO图两个部分。层次结构图描述了整个系统的结构以及各个
模块之间的关系;IPO图则描述了在某个特定模块内部的输入(I)、处理过程(P)、输出(O)思想。
A、系统结构图
图1 SSO系统结构图
B、层次结构图
图2系统层次结构图
C、IPO图表
备注:红色高亮部分,表示修改的逻辑
模块名称:会员注册 |
使用者:Passport服务器与各成员网站 |
||
输入部分 I |
处理描述 P |
输出部分 O |
|
1. 重定向到Passport服务器,带 有返回URL和成员网站ID 2. 输入信息:邮箱、密码、区域(暂时没有使用验证码)。 3 3.提交注册信息,发出注册请求。 4.注册用户从邮件中得到验证码,利用验证号激活用户,此时用户将成为合法会员。 5.会员个性信息(在成员网站填写) |
1.邮箱是否可用的实时检查,及时提示邮箱是否可用(这里的可用仅仅是表示符合邮箱的规范,而且该邮箱没有被注册,不表示真正的可用)。 2.密码安全级别实时提示。根据字符长度、含有字符的种类,计算安全级别,并实时提示用户。安全级别分为:过短,差,良,优四个等级。 3.根据区域数据库,得到区域信息下拉框,结合会员区域IP,实现区域自动筛选,在容许的偏差范围内不需手动选择区域。 4. 创建新会员 (1)验证会员提交的注册信息,若合法,把用于激活账号的验证码发送到会员测试使用的邮箱中。 (2)会员使用验证码激活账号,若激活成功,保存会员信息和会员验证票到数据库(Passport服务器数据库),而且验证票也保存到cookie中。同时调用成员网站的Web Service接口,把刚才产生的Passid保存到成员网站数据库中(创建映射关系)。 (3)重定向到成员网站。 (4)成员网站接收数据,提示会员填写个性信息,并提交到成员网站服务器。 (5)保存个性信息与接收的会员验证信息到成员网站数据库与cookie中,同时在Session中保存会员已验证的状态信息。 (5)导航会员到某个页面。 |
1. Passort服务器保存新会员信息和会员验证票到数据库中。 2. 成员网站Web Service,在成员网站数据库中添加会员信息,利用Passid创建与Passport服务器上会员的映射关系,并返回操做成功或失败状态信息。 3. 修改为员网站数据库中会员的个性信息。 4.保存会员验证票到cookie中,同时保存会员经过验证的状态到Session中。 |