教育门户网站之单点登录需求设计说明.docx
- 文档编号:10280370
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:18
- 大小:170.68KB
教育门户网站之单点登录需求设计说明.docx
《教育门户网站之单点登录需求设计说明.docx》由会员分享,可在线阅读,更多相关《教育门户网站之单点登录需求设计说明.docx(18页珍藏版)》请在冰点文库上搜索。
教育门户网站之单点登录需求设计说明
教育门户网站之单点登录需求设计说明
1,引言
1.1编写目的
为了实现单点登录系统的可行性,完整性,并能按照预期设计实现该功能,特编写需求说明书,需求设计说明书发挥与策划和设计人员更好的沟通的作用。
1.2需求背景
公司需要开发一个教育门户网站,该网站提供访问其他应用系统的接口,各个系统可能处于不同公司,不同域名。
如果其他系统都具有自己的身份验证机制,这样势必造成:
一位用户,如果要以会员的身份访问系统,需要在每个系统上注册,并且通过身份验证后,才能以会员的身份访问网站;即使用户以同样的用户名与密码在每个系统上注册时,虽然可以在避免用户名与密码的忘记和混淆方面有一定的作用,但是用户在某一段时间访问多个成员站点或在成员站点间跳转时,还是需要用户登录后,才能以会员的身份访问网站。
这样不仅给用户带来了不便,而且成员网站为登录付出了性能的代价。
如果所有的成员系统,能够实现单点登录,即用户登录门户网站后,无需再次登录即可进入具有访问权限的系统。
这样不仅在用户体验方面有所提高,而且真正体现公司所开发的教育门户网站对教育资源的整合作用。
通过这种有机整合,能更好地体现公司大平台,大渠道的理念。
同时,这样做也利于成员网站的相互促进与相互宣传。
1.3相关定义
单点登录系统提供所有成员网站的“单一登录”入口,该系统统,包括认证服务器(称CAS服务器),成员网站服务器。
会员:
用户通过CAS服务器注册成功后,就具有了会员身份。
单一登录:
会员第一次访问某个成员网站时,需要提供用户名与密码,一旦通过CAS服务器的身份验证,该会员在一定的时间内,访问任何成员网站都不需要再次登录。
2,任务描述
2.1任务目标
单点登录系统分两个阶段实施。
第一阶段对于新注册的用户提供单点登录的功能。
第二阶段,整合各个成员网站已有会员到单点登录系统中。
(能实现么?
?
我觉得有必要)
CAS服务器作为各个成员网站的惟一身份验证入口,需要考虑其性能,扩展性,稳定性,安全性和维护成本。
2.2用户特点
最终用户是教育系统工作者,学校老师,学生,学生家长,这些用户电脑水平参差不齐,在开发单点登录时候,要做到界面友好,逻辑简单,用户不需要学习,就能使用该系统。
3,需求实现
3.1需求概述
1)注册
a.成员网站重定向到CAS服务器的注册页面,并且带有返回URL和成员网站ID。
b.通过CAS服务器注册页面创建会员后,保存会员验证票到数据库和CAS服务器所在域cookie中。
同时,在成员网站的数据库上创建与CAS服务器数据库中会员的映射关系。
c.重定向到成员网站,填写会员个性信息。
d.保存会员个性信息,并把重定向传入的验证票保存到本地cookie和创建Session状态变量。
2)登录:
(CAS实现了部分功能)
a、单点登录系统要实现各个成员网站的无缝结合,只要会员经过了认证服务器的登录验证(CAS服务器),该会员访问其它任何的网站时,都不需要再次登录。
b、会员在第一次登录时,CAS服务器验证身份之后,生成的cookie验证票,只需保存到CAS服务器所cookie中,同时,把下发给会员的cookie票保存到CAS服务器的数据库中,方便验证方式和会员行为统计的扩展。
c、会员一经通过身份验证,成功登录了某个成员网站(假设为网站A),需要利用Session和cookie两种方式保存会员已经登录的状态。
d、同一个浏览器进程中,会员在网站A的页面间跳转时,只需要根据Session中的状态变量加载登录框。
不需要再与CAS服务器通信验证会员的身份。
e、会员通过验证登录了网站A,若会员从网站A跳转或重新打开浏览器登录其它成员网站(假设网站B),都需要与CAS服务器通信验证会员的票。
但是,这次验证不要CAS服务器与数据库中保存的验证票进行比较验证,只需要验证CAS服务器域中的cookie验证票据有效即可。
f、对于验证cookie票,能够实现加密和数字签名保证cookie的机密性,完整性和不可抵赖性。
g、若果CAS服务器Down掉后,用户仍可以直接登录成员网站。
(实现?
)
3)授权
客户端采用CAS客户端+springsecurity技术实现,通过配置达到授权功能。
Web应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。
用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。
用户授权指的是验证某个用户是否有权限执行某个操作。
SpringSecurity整合CAS单点登录,使用CAS进行认证和获取授权信息,使用SpringSecurity验证权限,则可以很好的把公共的认证和授权与具体应用剥离开来
1.使用http协议进行传输,
2.通过jdbc进行用户验证,需要通过CAS服务器提供除登录用户名以外的附加信息(用于SpringSecurity进行验证权限)
4)登出、修改密码、找回密码和成员网站间的跳转,请查看下面功能图表中相应的模块描述。
3.2功能图例
SSO系统包括注册、登录、登出、密码修改、密码找回、成员网站间跳转与用户管理模块。
图1SSO系统结构图
图2系统层次结构图
模块名称:
会员注册
使用者:
CAS服务器与各成员网站
输入部分I
处理描述P
输出部分O
1.重定向到CAS服务器,带
有返回URL和成员网站ID
2.输入信息:
邮箱、密码、区域(暂时没有使用验证码)。
33.提交注册信息,发出注册请求。
4.注册用户从邮件中获得验证码,利用验证号激活用户,此时用户将成为合法会员。
5.会员个性信息(在成员网站填写)
1.邮箱是否可用的实时检查,及时提示邮箱是否可用(这里的可用仅仅是表示符合邮箱的规范,并且该邮箱没有被注册,不表示真正的可用)。
2.密码安全级别实时提示。
根据字符长度、含有字符的种类,计算安全级别,并实时提示用户。
安全级别分为:
太短,差,良,优四个等级。
3.根据区域数据库,获得区域信息下拉框,结合会员区域IP,实现区域自动筛选,在允许的误差范围内不需手动选择区域。
4.建立新会员
(1)验证会员提交的注册信息,若合法,把用于激活帐号的验证码发送到会员测试使用的邮箱中。
(2)会员使用验证码激活帐号,若激活成功,保存会员信息和会员验证票到数据库(CAS服务器数据库),并且验证票也保存到cookie中。
同时调用成员网站的WebService接口,把刚才产生的Passid保存到成员网站数据库中(建立映射关系)。
(3)重定向到成员网站。
(4)成员网站接收数据,提示会员填写个性信息,并提交到成员网站服务器。
(5)保存个性信息与接收的会员验证信息到成员网站数据库与cookie中,同时在Session中保存会员已验证的状态信息。
(5)导航会员到某个页面。
1.CAS服务器保存新会员信息和会员验证票到数据库中。
2.成员网站WebService,在成员网站数据库中添加会员信息,利用Passid建立与CAS服务器上会员的映射关系,并返回操作成功或失败状态信息。
3.修改成员网站数据库中会员的个性信息。
4.保存会员验证票到cookie中,同时保存会员通过验证的状态到Session中。
表1:
会员注册模块
模块名称:
会员登录
使用者:
CAS服务器与各成员网站
输入部分I
处理描述P
输出部分O
1.会员第一次登录时输入Email
和密码。
2.提交会员信息到CAS服务
器。
说明:
加载登录框之前,成员网
站会首先与CAS服务器通信,
获得会员是否已经登录过,根据
状态加载登录框。
1.在成员网站A含有登录框页面的
区,利用a.页面首先查看Session中的状态变量,如果状态变量为NULL,则查看cookie中的状态变量。
b.根据Session与Cookie中状态变量的情况,实现与CAS服务器上的WebService通信,确定会员是否已经登录。
2.根据会员登录与否,加载登录框。
3.如果没有登录,显示会员输入Email和密码的登录框。
4.会员提交信息到CAS服务器上的WebService,通过验证后生成cookie票,并返回登录状态值和cookie票到成员网站。
成员网站保存登录状态变量与cookie票。
说明:
会员通过任何一个成员网站登录成功后,表示已经登录了所有的成员网站。
1.根据登录状态加载登录框
2.在CAS服务器上创建会员
验证票,保存到数据库与cookie中
3.CASWebService返回登录
状态值与cookie验证票到成员网站。
4.保存会员验证票到cookie中,同时保存会员通过验证的状态到Session中。
表2:
会员登录模块
模块名称:
会员登出
使用者:
CAS服务器与各成员网站
输入部分I
处理描述P
输出部分O
1.成员网站重定向到CAS服务器的登出页面,并带有返回URL,成员网站ID和验证票。
1.在成员网站A重定向到CAS服务器,CAS接收cookie验证票,并验证是否合法。
2.CAS修改数据库中验证票使之失效,清除cookie中的验证票。
3.重定向到成员网站,清除cookie中的验证票和Session中登录状态变量。
4.导航会员到某个页面。
1.修改数据库中的验证票使之失效,并清除cookie。
2.重定向到成员网站。
表3:
会员登出模块
模块名称:
修改密码
使用者:
CAS服务器与各成员网站
输入部分I
处理描述P
输出部分O
1.成员网站重定向到CAS服务器修改密码页面,并带有返回URL,验证cookie票。
2.会员输入原密码和新密码。
3.提交数据。
1.在成员网站A重定向到CAS服务器,CAS接收cookie验证票,并验证是否合法。
2.CAS修改会员密码。
3.重定向到成员网站,并带有修改成功与否的状态变量。
4.导航会员到某个页面。
1.修改数据库中会员的密码。
2.重定向到成员网站。
表4:
修改密码模块
模块名称:
找回密码
使用者:
CAS服务器与各成员网站
输入部分I
处理描述P
输出部分O
1.成员网站重定向到CAS服务器找回密码页面,并带有验证cookie票。
2.会员输入Email地址
3.提交数据
4.激活新密码(邮箱将收到一个激活密码的URL)
1.在成员网站A重定向到CAS服务器,CAS接收cookie验证票,并验证是否合法。
2.CAS为会员生成新密码,并向会员邮箱中发送一个激活密码的URL。
3.激活新密码
4.使用新的密码登录
1.为会员生成新密码,但未激活。
2.提示会员收邮件激活新密码,激活后方可使用。
表5:
找回密码
模块名称:
成员网站间跳转
使用者:
CAS服务器与各成员网站
输入部分I
处理描述P
输出部分O
成员网站A链接到其它成员网站B,之后处理同会员登录模块。
表6:
成员网站跳转
模块名称:
票据加解密及验证
使用者:
CAS服务器
输入部分I
处理描述P
输出部分O
1.会员Passid、票据发布时间、票据有效时间、会员其它信息数据。
2.调用WebService方法验证
a.传入Email和密码
b.传入cookie验证票
1.接收成员网站请求数据(Email与密码)。
2.由会员Passid、票据发布时间、票据有效时间、会员其它信息数据生成加密的cookie验证票,并且保存到数据库和cookie中。
3.接收cookie验证票,解密并验证,返回给成员网站登录状态值。
1.生成加密的cookie票。
2.返回会员登录状态值。
表7:
票据加解密及验证模块
3.3对性能的规定
设计时需要充分考虑功能的扩展,使功能模块具有很强的灵活性。
灵活性因素:
a.操作方式上的变化;
b.运行环境的变化;
c.同其他软件的接口或其他软件对该模块的集成;
d.精度和有效时限的变化;
e.计划的变化或改进。
3.4数据库设计(CAS服务器)
1).Pass_Member(会员表)
字段名称
数据类型
说明
备注
mPassID
Bigint
会员ID号
自增型,PK(主键)
mName
Nvarchar(64)
会员名
Email作为会员名(创建索引)
mPwd
Nvarchar(32)
会员密码
数据库中保存MD5运算的结果
mGBPwd
Nvarchar(32)
会员找回密码
会员找回密码时,生成的密码,会员激活后覆盖会员密码
mWake
Tinyint
会员唤醒
当和成员网站建立映射关系后,唤醒该会员
mMapWebsite
Nvarchar(128)
会员映射的成员站点
建立会员映射关系的成员网站串
mRegDT
Datetime
会员注册时间
mAreaCode
Nvarchar(8)
区域代号
mBack
Nvarchar(64)
预留字段
预留扩展
注意:
成员网站的会员表,需要通过mPassID字段建立与Pass_Member表中会员的映射关系。
2).Member_WebSite(成员网站表)
字段名称
数据类型
说明
备注
mWebID
int
成员网站ID编号
PK(主键)
mWebName
Nvarchar(32)
成员网站名称
mWebURL
Nvarchar(32)
成员网站URL
mWebIP
Nvarchar(16)
成员网站IP
mWebManager
Nvarchar(16)
成员网站管理员
成员网站故障时,便于维护
mWMTel
Nvarchar(16)
成员管理员电话
mBack
Nvarchar(64)
预留字段
预留扩展
3).Member_Ticket(会员票据表)
字段名称
数据类型
说明
备注
mTicketID
Nvarchar(240)
验证票编码
PK(主键)
mPassID
Bigint
会员ID号
FK(关联Pass_Member表mPassID)
issueDT
Datetime
票签发日期时间
availDT
datetime
票有效日期时间
digitalSign
Nvarchar(32)
票的数字签名
用于保证票的安全
mBack
Nvarchar(64)
预留字段
预留扩展
4).Member_SignRecord(会员登录记录表)
字段名称
数据类型
说明
备注
ID
Bigint
记录ID号
PK(主键)
mPassID
Bigint
会员ID号
FK(关联Pass_Member表mPassID)
signinDT
Datetime
登录日期时间
signinWebID
int
登录网站ID编号
FK(关联Member_WebSite表)
signoutDT
Datetime
登出日期时间
signoutWebID
int
登出网站ID编号
FK(关联Member_WebSite表)
mBack
Nvarchar(64)
预留字段
预留扩展
3.5数据处理
创建作业:
1、定时把验证票的记录导入的备份表中,供统计分析使用。
2、定时把一天以上没有激活的会员删除
3.6CAS服务器与成员网站接口规范
3.6.1CAS服务器入口及调用接口
a.注册入口
重定向规范:
成员网站注册重定向地址:
http:
//CAS
成员网站入口参数:
AppID成员网站ID号
RedirectCAS重定向地址
CAS回传参数:
Ticketcookie验证票加密串
PassID会员ID号
UserName会员名称(Email)
举例说明:
假设AppID=1;Redirect=
Ticket=53D2FD484DC6FAD75E82;UserName=david@
PassID=1234
则成员网站重定向地址为:
http:
//CAS
CAS重定向地址为:
WebService通信规范:
若用户从成员网站A重定向到CAS服务器注册会员时,CAS调用成员网站WebService接口,建立CAS数据库与网站A数据库中会员的关联,关联字段为Pass_Member表中的mPassID。
WebService名称:
pass_user_related
所有者:
成员网站
用者:
CAS服务器
输入参数:
PassID:
字符串,表示会员ID号
输出参数:
Flag:
布尔型,表示是否成功建立关联
b.登录接口
验证cookie票WebService规范:
成员网站本地域存在cookie验证票时,使用的接口。
WebService名称:
web_ticket_auth
所有者:
CAS服务器
调用者:
成员网站
输入参数:
TicketCode字符串验证票字符串
AppID字符串成员网站ID
输出参数:
Flag:
布尔型,表示验证票是否合法
验证逻辑:
只要数据库中存在该验证票,且在有效期内,即合法。
HTTP[本接口改为了重定向的方式,请参考下面的部分]
请求通信接口规范:
成员网站域不存在cookie验证票,查看CAS域是否存在。
Passpport提供的URL:
http:
//CAS
输入参数:
无
输出参数:
XML格式的文本(符合RSS2.0标准),XML包含节点
Flag:
表示是否存在合法的验证票
Ticket:
表示验证票字符串
PassID:
表示会员ID号
UserName:
表示Email地址
备注:
Http请求,从成员网站域,向CAS域发送请求时,并不能访问到在CAS域中向客户端写的cookie值。
现改成重定向的方式
重定向接口规范:
CAS提供的重定向地址:
http:
//CAS
输入参数:
Redirect字符串CAS重定向到成员网站的地址
AppID字符串成员网站ID号
回传参数:
Ticket字符串验证票编号
PassID字符串会员ID号
UserName字符串会员名称
举例说明:
假设:
Redirect=
AppID=1Ticket=53D2FD484DC6FAD75E82
PassID=1234UserName=david@
则成员网站重定向地址为:
http:
//CAS
CAS重定向地址为:
登录框提交接口规范:
成员网站输入Email和密码提交到CAS的地址。
提交到CAS的地址:
http:
//CAS
成员网站入口参数:
Email会员名
Pwd会员密码
AppID成员网站ID
RedirectCAS重定向地址
CAS回传参数:
Ticket字符串cookie验证票加密串
PassID字符串会员ID号
UserName字符串会员名称(Email)
Flag登录成功与否标识2-成功(会员存在)3-失败(会员名不存在)4-密码不正确,5-数据库错误
举例说明:
假设:
CAS重定向地址为
则CAS服务器重定向到成员网站的地址是
c.登出接口
重定向规范:
成员网站登出重定向地址:
http:
//CAS
成员网站入口参数:
AppID字符串成员网站ID号
Ticket字符串cookie验证票
Redirect字符串CAS重定向地址
CAS回传参数:
Flag字符串1-表示成功从CAS登出;0-票不合法;-1-失败(数据库错误)
举例说明:
假设AppID=1;Redirect=
Ticket=53D2FD484D
Flag=1
则成员网站重定向到CAS的地址是
http:
//CAS
CAS服务器重定向到成员网站的地址为:
d.修改密码接口
重定向规范:
成员网站修改密码重定向地址:
http:
//CAS
成员网站入口参数:
AppID字符串成员网站ID号
Ticket字符串cookie验证票
Redirect字符串CAS重定向地址
CAS回传参数:
Flag字符串1-成功;0-验证票不合法;-1-数据库错误
举例说明:
假设AppID=1;Redirect=
Ticket=53D2FD484D
Flag=1
则成员网站重定向到CAS的地址为
http:
//CAS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教育 门户 网站 单点 登录 需求 设计 说明
![提示](https://static.bingdoc.com/images/bang_tan.gif)