继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前两篇介绍了session与cookie 和 HTTP重定向 ,有了他们,浏览器就可以在多个系统间自动交互,实现自动登录。

本篇介绍下单点登录,所谓单点登录,就是说用户只需在一个地方登录,访问其他相关系统时,不需要重复登录,隐式地自动登录,这样体验会比较好。

主要从以下几个方面介绍:

一个常见的交互流程

常见单点登录协议

关键问题总结

一个常见的交互流程

我们项目中,使用CAS协议实现单点登录,下面就以项目中的实现为例,先来看下其交互流程,对其实现有个基本的了解。

有2个系统,系统A是「客服工作台」,主要给客服使用,可实时与来访用户及时聊天,解答用户的问题。系统B是「工单系统」,对于不能解答的问题,客服会创建一个工单,更高级别或相关度高的人会看到工单进行处理。

客服希望在登录系统A后,不需要手动登录系统B,需要一个「单点登录服务」,提供一个统一的登录验证,协调系统A、系统B的自动登录,定义该服务为服务S,其CAS协议的场景的流程如下:

花了不少时间画上面的图,看着比较复杂,其实还好,希望大家花时间看下,如果前两篇文章真正理解了,这块就相对简单了。

重点总结下该流程:

黑圆圈红字,标识cookie的生成和使用,ABCDE表示5个cookie,1表示生成,2表示使用;

无论是系统A,还是系统B,如果没有jessionid cookie,都会跳转到服务S,如果携带了cookie1(登录成功后生成的cookie),不需要登录,会自动登录,如果没有携带cookie1,会跳转到登录页面,登录成功后会设置cookie1。

cookie1是保持浏览器和服务S的,表示用户已经登录过了;

cookie2、cookie4都是临时cookie,主要是将服务码带到系统A或系统B,拿到服务码后,通过后端请求服务S进行验证,验证过后,临时cookie就失效了,主要是为了安全考虑。

cookie3、cookie5和我们正常登录产生的jessionid一样,是各个子系统独有的cookie;

如果还有疑问,可在下面留言,我会第一时间回复。

常见单点登录协议

上面介绍的是CAS协议的一种,还有其他协议可实现单点登录,比如CAS官网列举的协议:

这些协议有不同的适用场景,比如好多网站都支持使用QQ、微信、微博直接登录,只要你的QQ、微信、微博登录者,就不用重复登录,使用OAuth协议可比较好的实现这种场景。

后面会单独介绍这些协议。

关键问题总结

无论是哪一种协议,都需要一个中间系统,对验证和授权进行统一管理。另外,cookie的管理和安全问题需要重点考虑。

后面一篇会介绍下可能存在哪些安全问题,而对于安全问题如何解决,cookie和session具体如何管理,会在介绍每个具体协议的时候重点说明。

4a安全管控 java cas_单点登录与权限管理本质:单点登录介绍相关推荐

  1. 单点登录与权限管理本质:权限管理介绍

    前面几篇文章介绍了单点登录的本质,包括cookie.session.重定向的基本概念,单点登录的基本交互流程,cookie的重要性和安全问题.单点登录能够确保:必须通过身份验证后,才能访问网站,且访问 ...

  2. 单点登录与权限管理本质:session和cookie介绍

    本篇开始写「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,这部分主要介绍相关的知识概念.抽象的处理过程.常见的实现框架.通过这部分的介绍,能够对单点登录与权限管理有整体上的了解,对其相关 ...

  3. 单点登录与权限管理本质:cookie安全问题

    继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前一篇文章介绍了单点登录概念,以CAS协议的基本流程为例讲解了系统间的交互过程,过程中,cookie的设置和传输涉及的比较多,如何 ...

  4. 单点登录与权限管理本质:单点登录介绍

    继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前两篇介绍了session与cookie 和 HTTP重定向 ,有了他们,浏览器就可以在多个系统间自动交互,实现自动登录. 该系列 ...

  5. 「单点登录与权限管理」系列概述

    首先,感谢几位朋友在朋友圈转发我的文章,小声的告诉你们,是我主动让他们帮忙转发的:)在朋友们的分享下,凌晨推送的一篇文章,阅读人数达到了280多,很满足,我会坚持写下去,分享工作.学习.生活中的所思所 ...

  6. springBoot整合spring security+JWT实现单点登录与权限管理前后端分离

    在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与权限管理. ...

  7. springBoot整合spring security+JWT实现单点登录与权限管理前后端分离--筑基中期

    写在前面 在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与 ...

  8. spring-security登录和权限管理

    spring security spring security 主要的两个功能是认证和授权 认证的大概流程: Username password AuthenticationFilter(自定义use ...

  9. java8421码,关于用Java程序实现8421码权限管理 第二部分

    这两天做完了以前,CRM项目中,设计权限这快的代码,仅供大家学习参考. 本权限管理部分设计三部分: 第一部分 数据库部分 第二部分 权限类 第三部分 分配权限部分 第四部分 页面控制部分 在这里我主要 ...

最新文章

  1. python3 队列 queue
  2. 【转】SAP开关账期后台任务
  3. linux rz xshell
  4. 二、基础(IVX快速开发手册)
  5. make menuconfig选择m编译为驱动模块
  6. bat批处理执行python_.bat批处理添加Python任务
  7. openresty组成和技术特点
  8. mysql删除myisam表数据影响_Mysql 下 Myisam表delete 后 数据恢复问题
  9. 解析百度Apollo自动驾驶平台
  10. JAVA 多线程 线程间的通讯
  11. Luogu2665[USACO08FEB] 连线游戏
  12. 国内的商业与开源 CMS
  13. 自然语言处理——分词系统(双向最大匹配)
  14. arcgis-拓扑检查-model
  15. 韦根协议c语言,韦根协议(26位)及其读取算法
  16. ubuntu14.04安装skype4.3
  17. Hibernate第九篇【组件映射、继承映射】
  18. 永磁同步电机FOC控制之坐标变换:Clarke,Park,IPark,IClarke及算法实现流程
  19. 个人碰到的前端问题总结及解决方法1
  20. 第一部分 思科九年 一(12)

热门文章

  1. 不能为虚拟电脑 ubuntu 打开一个新任务的解决办法
  2. 使用 Sharding-Jdbc 实现分库分表、读写分离(未完待续)
  3. java hashMap缓存简单实现
  4. CactiEZ中文版10.1与CAS单点登录
  5. 教你学习CI框架codelgniter——CI框架基本配置
  6. linux安装 tomcat 6 笔记
  7. Protocol Buffers数据编码
  8. 曲师大教务系统服务器,曲阜师范大学教务处系统入口地址
  9. atheros无线网卡驱动_5.8G无线网桥CPE,安防监控拍档高清无干扰
  10. android程序root权限,android应用程序中应用root权限