[转]单点登录系统(SSO)详细设计说明书(上篇)

转载自:http://www.cnblogs.com/David-weihw/archive/2007/01/25/630621.html

1、引言
1.1编写目的
              为了单点登录系统(SSO系统)的可行性,完整性,并能按照预期的设想实现该系统,特编写需求说明书。
        同时,说明书也发挥与策划和设计人员更好地沟通的作用。 
1.2背景
          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图表中相应的模块描述。

<script type=text/javascript> cpro_client='ttbaojian_cpr'; cpro_cbd='#A2BE43'; cpro_cbg='#F4FAE1'; cpro_ctitle='#178102'; cpro_cdesc='#444444'; cpro_curl='#2D4383'; cpro_clink='#FFFFFF'; cpro_flush=4; cpro_w=728; cpro_h=90; cpro_template='text_default_728_90'; </script>

baidu


    

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 中。

                                                                  1 :会员注册模块

进广告:
 
 

模块名称:会员登录
使用者: Passport 服务器与各成员网站
输入部分    I
处理描述    P
输出部分    O
1. 会员第一次登录时输入 Email
和密码。
2. 提交会员信息到 Passport 服务
  器。
 
说明:加载登录框之前,成员网
站会首先与 Passport 服务器通信,
获得会员是否已经登录过,根据
状态加载登录框。
1. 在成员网站 A 含有登录框页面的
<head> 区,利用
<script src=meber_auth.aspx> 在页头嵌入 .aspx 文件(成员网站上的文件)。
a. 页面首先查看 Session 中的状态变量,如果状态变量为 NULL, 则查看 cookie 中的状态变量。
b. 根据 Session Cookie 中状态变量的情况,实现与 Passport 服务器上的 Web Service 通信,确定会员是否已经登录。
2. 根据会员登录与否,加载登录框。
3. 如果没有登录,显示会员输入 Email 和密码的登录框。
4. 会员提交信息到 Passport 服务器上的 Web Service , 通过验证后生成 cookie 票,并返回登录状态值和 cookie 票到成员网站。 成员网站保存登录状态变量与 cookie 票。
 
说明:会员通过任何一个成员网站登录成功后,表示已经登录了所有的成员网站。
1. 根据登录状态加载登录框
2. Passport 服务器上创建会员
验证票,保存到数据库与 cookie
3.Passport Web Service 返回登录
状态值与 cookie 验证票到成员网站。
4. 保存会员验证票到 cookie 中,同时保存会员通过验证的状态到 Session 中。

                                                                              2 :会员登录模块

 

模块名称:会员登出
使用者: Passport 服务器与各成员网站
输入部分    I
处理描述    P
输出部分    O
1. 成员网站重定向到 Passport 服务器的登出页面,并带有返回 URL, 成员网站 ID 和验证票。
 
1. 在成员网站 A 重定向到 Passport 服务器, Passport 接收 cookie 验证票 , 并验证是否合法。
2.Passport 修改数据库中验证票使之失效,清除 cookie 中的验证票。
3. 重定向到成员网站,清除 cookie 中的验证票和 Session 中登录状态变量。
4. 导航会员到某个页面。
1. 修改数据库中的验证票使之失效,并清除 cookie
2. 重定向到成员网站。

                                                                                    3 :会员登出
 

模块名称:修改密码
使用者: Passport 服务器与各成员网站
输入部分    I
处理描述    P
输出部分    O
1. 成员网站重定向到 Passport 服务器修改密码页面,并带有返回 URL, 验证 cookie 票。
2. 会员输入原密码和新密码。
3. 提交数据。
1. 在成员网站 A 重定向到 Passport 服务器, Passport 接收 cookie 验证票 , 并验证是否合法。
2.Passport 修改会员密码。
3. 重定向到成员网站,并带有修改成功与否的状态变量。
4. 导航会员到某个页面。
1. 修改数据库中会员的密码。
2. 重定向到成员网站。

                                                                                    4 :会员登出
 

模块名称:找回密码
使用者: Passport 服务器与各成员网站
输入部分    I
处理描述    P
输出部分    O
1. 成员网站重定向到 Passport 服务器找回密码页面,并带有验证 cookie 票。
2. 会员输入 Email 地址
3. 提交数据
4. 激活新密码 ( 邮箱将收到一个激活密码的 URL)
1. 在成员网站 A 重定向到 Passport 服务器, Passport 接收 cookie 验证票 , 并验证是否合法。
2.Passport 为会员生成新密码,并向会员邮箱中发送一个激活密码的 URL
3. 激活新密码
4. 使用新的密码登录
1. 为会员生成新密码,但未激活。
2. 提示会员收邮件激活新密码,激活后方可使用。

                                                                                    5 :找回密码

 

模块名称:成员网站间跳转
使用者: Passport 服务器与各成员网站
输入部分    I
处理描述    P
输出部分    O
成员网站 A 链接到其它成员网站 B ,之后处理同会员登录模块。

                                                                              6 :成员网站跳转
 

模块名称:票据加解密及验证
使用者: Passport 服务器
输入部分    I
处理描述    P
输出部分    O
1. 会员 Passid 、票据发布时间、票据有效时间、会员其它信息数据。
2. 调用 Web Service 方法验证
a. 传入 Email 和密码
b. 传入 cookie 验证票
 
1. 接收成员网站请求数据 (Email 与密码 )
2. 由会员 Passid 、票据发布时间、票据有效时间、会员其它信息数据生成加密的 cookie 验证票,并且保存到数据库和 cookie 中。
3. 接收 cookie 验证票,解密并验证,返回给成员网站登录状态值。
 
1. 生成加密的 cookie 票。
2. 返回会员登录状态值。

                                                                        7 票据加解密及验证

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值