`

单点登录(SSO)某一实施说明文档

    博客分类:
  • Java
 
阅读更多

1、定义

单点登录系统提供所有成员网站的“单一登录”入口。

本系统的实质是含有身份验证状态的变量,在各个成员网站间共用

单点登录系统,包括认证服务器 ( Passport 服务器 ) ,成员网站服务器。  
会员: 用户通过 Passport 服务器注册成功后,就具有了会员身份。
单一登录: 会员第一次访问某个成员网站时,需要提供用户名与密码,一旦通过 Passport 服务器的身份验证,该会员在一定的时间内,访问任何成员网站都不需要再次登录。
 Cookie验证票: 含有身份验证状态的变量。由Passport服务器生成,票含有用户名,签发日期时间,过期日期时间和用户其它数据。 


2、目标

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

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics