zoukankan      html  css  js  c++  java
  • 统一认证系统(一)

      每个系统都需要识别操作者的身份,并根据其不同的身份,分配一定的权限,做一些操作上的限制。随着系统的增多,若是单独给每个系统都设计了一套用户资料和权限管理的机制,并提供了用户登录证认,虽可以解决问题,但是将会带来和用户账号管理不方便,用户资料不统一等等问题。所以,将用户资料整合起来,进行统一管理很多必要。

      本文的目的,将有一定联系,拥有统一用户群的系统进行关联,统一用户的登录资料,并提供统一的登录认证入口,这里称为 统一认证系统。

      根据我们的需求,用户的体验一般有两种:

      一、需要访问某个子系统,则需要在 认证系统上,登陆用户,在跳转到需要访问的页面;

      二、如果在某个子系统登录超时了,在直接进入特定子系统之前,需要重新 登录验证

    1、用户先与统一登录系统进行交互,使用唯一的帐号密码进行登录,此时不涉及任何子系统;

    2、用户登录成功后,统一登录系统将信任的应用子系统列表呈现给用户;

    3、用户根据需要,选择子系统连接访问子系统,用户与子系统的交互开始;

    4、由于用户与子系统此时还没有建立认证关系,所以子系统将用户重定向到统一登录系统;

    5、统一登录系统验证用户的登录信息,发现用户已经登录,便将登录信息插入到数据库,再将验证信息发给用户,即返回一个等待页面;

    6、用户将等待页面中的验证信息提交(自动)到子系统,子系统获取认证信息;

    7、子系统通过一定的办法和等待页面中的验证信息进行验证,并与用户建立了信任关系;

    分两种方式进行实现,详细情况如下:

    第一种方式:通过MD5加密随机字符串,使用了Web服务实现了子系统和统一认证系统之间的交互验证。验证信息包含两部分用户在统一登录系统的Session ID和数据库中的随机ID。当子系统将用户重定向到统一登录系统的时候,验证的交互过程开始,详细步骤如下:

    1、统一登录系统获取用户的Session ID和登录名

    2、统一登录系统将Session ID和登录名插入到数据库,产生一个随机的数据库ID

    3、将Session ID和数据库ID结合起来,进行MD5加密

    4、使用MD5密文和数据库ID构建一个登录等待页面,返回给用户

    5、用户将登录等待页面中的信息自动提交给子系统

    6、子系统通过Web服务将MD5密文和数据库ID提交回统一登录系统

    7、统一登录系统查询数据库,并进行验证

    8、统一登录系统返回用户登录名,并删除数据库中的登录记录。

    9、子系统与用户建立认证关系

    图2. MD5随机加密,Web服务实现验证

    第二种方式:通过对认证信息(登录令牌)进行非对称加密,一次交互实现验证。验证信息为一个包含了产生时间的Token类。验证的交互过程同样是在重定向到统一登录系统的时候开始,详细步骤如下:

    1、构建一个包含生成时间的Token类,将Token类序列化

    2、使用SHA-1,对序列化Token编码进行散列,产生验证码H

    3、将序列化Token编码和验证码H结合,使用公钥加密

    4、使用密文构建一个登录等待页面,返回给用户

    5、用户将登录等待页面中的信息自动提交给子系统

    6、子系统使用私钥进行解密

    7、子系统分离出散列验证码H和序列化Token编码,并进行SHA-1验证

    8、检查Token中的生成时间,判断是否超时

    9、子系统与用户建立认证关系

    参考链接:http://blog.csdn.net/llftc/article/details/6995496

  • 相关阅读:
    【算法学习笔记】76.DFS 回溯检测 SJTU OJ 1229 mine
    【算法学习笔记】75. 动态规划 棋盘型 期望计算 1390 畅畅的牙签盒(改)
    【算法学习笔记】74. 枚举 状态压缩 填充方案 SJTU OJ 1391 畅畅的牙签袋(改)
    【算法学习笔记】73.数学规律题 SJTU OJ 1058 小M的机器人
    【算法学习笔记】72.LCS 最大公公子序列 动态规划 SJTU OJ 1065 小M的生物实验1
    【算法学习笔记】71.动态规划 双重条件 SJTU OJ 1124 我把助教团的平均智商拉低了
    【算法学习笔记】70.回文序列 动态规划 SJTU OJ 1066 小M家的牛们
    【算法学习笔记】69. 枚举法 字典序处理 SJTU OJ 1047 The Clocks
    【算法学习笔记】68.枚举 SJTU OJ 1272 写数游戏
    【算法学习笔记】67.状态压缩 DP SJTU OJ 1383 畅畅的牙签袋
  • 原文地址:https://www.cnblogs.com/panie2015/p/5627096.html
Copyright © 2011-2022 走看看