单点登录平台管理软件系统设计文档.docx
《单点登录平台管理软件系统设计文档.docx》由会员分享,可在线阅读,更多相关《单点登录平台管理软件系统设计文档.docx(16页珍藏版)》请在冰豆网上搜索。
![单点登录平台管理软件系统设计文档.docx](https://file1.bdocx.com/fileroot1/2023-7/21/f7d8aff6-082c-4d97-a33e-ae48893f6741/f7d8aff6-082c-4d97-a33e-ae48893f67411.gif)
单点登录平台管理软件系统设计文档
单点登录平台管理软件
设计方案
一、项目概述
单点登录(SingleSignOn),简称为SSO,它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。
IBM对SSO有一个形象的解释“单点登录、全网漫游”它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。
IBM对SSO有一个形象的解释“单点登录、全网漫游”。
SSO将一个企业部所有域中的用户登录和用户管理集中到一起,SSO的好处显而易见。
对于部有多种应用系统的企业来说,单点登录的效果是十分明显的。
很多国际上的企业已经将单点登录作为系统设计的基本功能之一。
二、项目目标
通过建设与实现SSO,可以达到以下目标:
减少用户在不同系统中登录耗费的时间,减少用户登录出错的可能性。
实现安全的同时避免了处理和保存多套系统用户的认证信息。
减少了系统管理员增加、删除用户和修改用户权限的时间。
增加了安全性:
系统管理员有了更好的方法管理用户,包括可以通过直接禁止和删除用户来取消该用户对所有系统资源的访问权限。
三、必要性分析
鉴于单位运营的多个独立(称为成员站点),每个都具有自己的身份验证机制,这样势必造成:
生活中的一位用户,如果要以会员的身份访问,需要在每个上注册,并且通过身份验证后,才能以会员的身份访问;即使用户以同样的用户名与密码在每个上注册时,虽然可以在避免用户名与密码的忘记和混淆方面有一定的作用,但是用户在某一段时间访问多个成员站点或在成员站点间跳转时,还是需要用户登录后,才能以会员的身份访问。
这样不仅给用户带来了不便,而且成员为登录付出了性能的代价;
如果所有的成员,能够实现单点登录,不仅在用户体验方面有所提高,而且真正体现了平台的一体性。
通过这种有机结合,能更好地体现公司大平台,大渠道的理念。
同时,这样做也利于成员的相互促进与相互宣传。
正是出于上面的两点,单点登录系统的开发是必须的,是迫在眉睫的。
四、定义
单点登录系统提供所有成员的“单一登录”入口。
本系统的实质是含有身份验证状态的变量,
在各个成员间共用。
单点登录系统,包括认证服务器(称Passport服务器),成员服务器。
会员:
用户通过Passport服务器注册成功后,就具有了会员身份。
单一登录:
会员第一次访问某个成员时,需要提供用户名与密码,一旦通过Passport服务器的身份验证,该会员在一定的时间,访问任何成员都不需要再次登录。
Cookie验证票:
含有身份验证状态的变量。
由Passport服务器生成,票含有用户名,签发日期时间,过期日期时间和用户其它数据。
五、项目需求
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图表中相应的模块描述。
2.功能需求分析
SSO系统包括注册、登录、登出、密码修改、密码找回、成员间跳转与用户管理模块。
系统机构和模块部处理功能,它主要包括层次结构图和IPO图两个部分。
层次结构图描述了整个系统的结构以及各个模块之间的关系;IPO图则描述了在某个特定模块部的输入(I)、处理过程(P)、输出(O)思想。
2.1.系统实现结构图
2.2.系统实现层次结构
2.3.功能需求
2.3.1.模块名称:
会员注册
(1)输入部分
A.重定向到Passport服务器,带有返回URL和成员ID
B.输入信息:
、密码、区域(暂时没有使用验证码)。
C.提交注册信息,发出注册请求。
D.注册用户从中获得验证码,利用验证号激活用户,此时用户将成为合法会员。
E.会员个性信息(在成员填写)
(2)处理描述
是否可用的实时检查,及时提示是否可用(这里的可用仅仅是表示符合的规,并且该没有被注册,不表示真正的可用)。
密码安全级别实时提示。
根据字符长度、含有字符的种类,计算安全级别,并实时提示用户。
安全级别分为:
太短,差,良,优四个等级。
根据区域数据库,获得区域信息下拉框,结合会员区域IP,实现区域自动筛选,在允许的误差围不需手动选择区域。
建立新会员:
(a)验证会员提交的注册信息,若合法,把用于激活的验证码发送到会员测试使用的中。
(b)会员使用验证码激活,若激活成功,保存会员信息和会员验证票到数据库(Passport服务器数据库),并且验证票也保存到cookie中。
同时调用成员的WebService接口,把刚才产生的Passid保存到成员数据库中(建立映射关系)。
(c)重定向到成员。
(d)成员接收数据,提示会员填写个性信息,并提交到成员服务器。
(e)保存个性信息与接收的会员验证信息到成员数据库与cookie中,同时在Session中保存会员已验证的状态信息。
(f)导航会员到某个页面。
(3)输出部分
A.Passort服务器保存新会员信息和会员验证票到数据库中。
B.成员WebService,在成员数据库中添加会员信息,利用Passid建立与Passport服务器上会员的映射关系,并返回操作成功或失败状态信息。
C.修改成员数据库中会员的个性信息。
D.保存会员验证票到cookie中,同时保存会员通过验证的状态到Session中。
2.3.2.模块名称:
会员登录
(1)输入部分
A.会员第一次登录时输入Email和密码。
B.提交会员信息到Passport服务器。
说明:
加载登录框之前,成员会首先与Passport服务器通信,获得会员是否已经登录过,根据状态加载登录框。
(2)处理描述
1)在成员A含有登录框页面的
区,利用
在页头嵌入.aspx文件(成员上的文件)。a.页面首先查看Session中的状态变量,如果状态变量为NULL,则查看cookie中的状态变量。
b.根据Session与Cookie中状态变量的情况,实现与Passport服务器上的WebService通信,确定会员是否已经登录。
2)根据会员登录与否,加载登录框。
3)如果没有登录,显示会员输入Email和密码的登录框。
4)会员提交信息到Passport服务器上的WebService,通过验证后生成cookie票,并返回登录状态值和cookie票到成员。
成员保存登录状态变量与cookie票。
说明:
会员通过任何一个成员登录成功后,表示已经登录了所有的成员。
(3)输出部分
根据登录状态加载登录框
1)在Passport服务器上创建会员验证票,保存到数据库与cookie中。
2)PassportWebService返回登录状态值与cookie验证票到成员。
3)保存会员验证票到cookie中,同时保存会员通过验证的状态到Session中。
2.3.3. 模块名称:
会员登出
(1)输入部分
1)成员重定向到Passport服务器的登出页面,并带有返回URL,成员ID和验证票。
(2)处理描述
1)在成员A重定向到Passport服务器,Passport接收cookie验证票,并验证是否合法。
2)Passport修改数据库中验证票使之失效,清除cookie中的验证票。
3)重定向到成员,清除cookie中的验证票和Session中登录状态变量。
4)导航会员到某个页面。
(3)输出部分
1).修改数据库中的验证票使之失效,并清除cookie。
2)2.重定向到成员。
2.3.4. 模块名称:
修改密码
(1)输入部分
1)成员重定向到Passport服务器找回密码页面,并带有验证cookie票。
2)会员输入Email地址
3)提交数据
4)激活新密码(将收到一个激活密码的URL)
(2)处理技术
1)在成员A重定向到Passport服务器,Passport接收cookie验证票,并验证是否合法。
2)Passport为会员生成新密码,并向会员中发送一个激活密码的URL。
3)激活新密码
4)使用新的密码登录
(3)输出部分
1)为会员生成新密码,但未激活。
2)2.提示会员收激活新密码,激活后方可使用。
2.4.流程逻辑
(1)会员登录流程图
(2)会员登出流程图
(3)会员修改密码流程图
(4)会员找回密码流程图
3.数据库设计
3.1.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)
预留字段
预留扩展
3.1.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.1.3.Member_Ticket(会员票据表)
字段名称
数据类型
说明
备注
mTicketID
Nvarchar(240)
验证票编码
PK(主键)
mPassID
Bigint
会员ID号
FK(关联Pass_Member表mPassID)
issueDT
Datetime
票签发日期时间
availDT
datetime
票有效日期时间
digitalSign
Nvarchar(32)
票的数字签名
用于保证票的安全
mBack
Nvarchar(64)
预留字段
预留扩展
3.1.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)
预留字段
预留扩展
4. 服务器与成员接口规
a.注册入口
成员入口参数:
AppID、成员ID号
RedirectPassport重定向地址;
Passport回传参数:
Ticket、cookie验证票加密串PassID、会员ID号、UserName、会员名称(Email)
WebService通信规:
若用户从成员A重定向到Passport服务器注册会员时,Passport调用成员WebService接口,建立Passport数据库与A数据库中会员的关联,关联字段为Pass_Member表中的mPassID。
WebService名称:
pass_user_related
所有者:
成员
调用者:
Passport服务器
输入参数:
PassID:
字符串,表示会员ID号
输出参数:
Flag:
布尔型,表示是否成功建立关联
b.登录接口
验证cookie票WebService规:
成员本地域存在cookie验证票时,使用的接口。
WebService名称:
web_ticket_auth
所有者:
Passport服务器
调用者:
成员
输入参数:
TicketCode字符串验证票字符串
AppID字符串成员ID
输出参数:
Flag:
布尔型,表示验证票是否合法
验证逻辑:
只要数据库中存在该验证票,且在有效期,即合法。
HTTP[本接口改为了重定向的方式,请参考下面的部分]请求通信接口规:
成员域不存在cookie验证票,查看Passport域是否存在。
输入参数:
无
输出参数:
XML格式的文本(符合RSS2.0标准),XML包含节点
Flag:
表示是否存在合法的验证票
Ticket:
表示验证票字符串
PassID:
表示会员ID号
UserName:
表示Email地址
备注:
Http请求,从成员域,向Passport域发送请求时,并不能访问到在Passport域中向客户端写的cookie值。
现改成重定向的方式
c.登出接口
重定向规:
成员入口参数:
AppID字符串,成员ID号
Ticket字符串,cookie验证票
Redirect字符串,Passport重定向地址
Passport回传参数:
Flag字符串,1-表示成功从Passport登出;0-票不合法;-1-失败(数据库错误)
d.修改密码接口
重定向规:
成员入口参数:
AppID字符串,成员ID号
Ticket字符串,cookie验证票
Redirect字符串,Passport重定向地址
Passport回传参数:
Flag字符串,1-成功;0-验证票不合法;-1-数据库错误
e.找回密码接口
重定向规:
成员入口参数:
AppID字符串,成员ID号
Ticket字符串,cookie验证票
Passport回传参数:
Passport服务器发送密码激活地址(其中有验证票字符串)到会员,供激活密码。