统一认证系统(一)

摘要:
需要重新登录验证。1.用户首先与统一登录系统交互,统一登录系统向用户呈现可信应用子系统列表;因此,子系统将用户重定向到统一登录系统;6.用户将等待页面中的认证信息(自动)提交给子系统,并使用Web服务实现子系统与统一认证系统之间的交互认证。认证信息包括统一登录系统中用户的SessionID和数据库中的随机ID两部分。

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

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

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

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

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

统一认证系统(一)第1张

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张

图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、子系统与用户建立认证关系

统一认证系统(一)第3张

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

免责声明:文章转载自《统一认证系统(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Tools】Ubuntu20.04安装VMware Tools详解Python中的pprint和pformat简介下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux权限问题学习总结

寒假里看的权限问题,现在来总结一下。 文件权限除了r、w、x外还有s、t、i、a权限: 1、s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行。在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(chmod命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -...

SSTI(以Twig模板引擎为例)

一、模板注入与常见Web注入就注入类型的漏洞来说,常见 Web 注入有:SQL 注入,XSS 注入,XPATH 注入,XML 注入,代码注入,命令注入等等。注入漏洞的实质是服务端接受了用户的输入,未过滤或过滤不严谨执行了拼接了用户输入的代码,因此造成了各类注入。下面这段代码足以说明这一点: // SQL 注入 $query = "select * from...

XSS漏洞攻击原理与解决办法

转自:http://www.frostsky.com/2011/10/xss-hack/ 对于的用户输入中出现XSS漏洞的问题,主要是由于开发人员对XSS了解不足,安全的意识不够造成的。现在让我们来普及一下XSS的一些常识,以后在开发的时候,每当有用户输入的内容时,都要加倍小心。请记住两条原则:过滤输入和转义输出。 一、什么是XSS XSS又叫CSS (C...

开源堡垒机_jumpserver

前介 1、jumperver介绍 ​ Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。 ​ 特点: ​ 完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证、授权、审计 集成了Ansible,批量命令等 支持WebTerminal...

EleemntUI中el-table的formatter格式化字典显示的使用

场景 某些类似于用字典(键值对)存储的属性,比如操作员这种 1代表用户id 数组库存储的也是用户id,但是在页面上展示的是用户姓名 数据库中存储czy是数字即用户的id 而要在页面上展示的是用户姓名 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推...

SSO单点登录和CAS

一、单点登录流程 =====客户端====== 1.拦截客户端的请求判断是否有局部的session 2.1如果有局部的session,放行请求. 2.2如果没有局部session 2.2.1请求中有携带token参数 2.2.1.1如果有,使用HttpURLConnection发送请求校验token是否有效. 2.2.1.1.1如果token有效,建立局部...