[原创]统一认证系统 设计一_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2983 | 回复: 0   主题: [原创]统一认证系统 设计一        上一篇   下一篇 
panpan.nie
注册用户
等级:大校
经验:4754
发帖:217
精华:2
注册:1970-1-1
状态:离线
发送短消息息给panpan.nie 加好友    发送短消息息给panpan.nie 发消息
发表于: IP:您无权察看 2016-6-29 16:39:19 | [全部帖] [楼主帖] 楼主

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

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

 

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

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

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

 

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





赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论