单点登陆与权限管理本质:单点登陆介绍

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

该系列的完整写做计划,可见:系列概述浏览器

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

主要从如下几个方面介绍:微信

  • 一个常见的交互流程
  • 常见单点登陆协议
  • 关键问题总结

一个常见的交互流程

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

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

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

CAS协议交互图

花了很多时间画上面的图,看着比较复杂,其实还好,但愿你们花时间看下,若是前两篇文章真正理解了,这块就相对简单了。网站

重点总结下该流程:cdn

  • 黑圆圈红字,标识cookie的生成和使用,ABCDE表示5个cookie,1表示生成,2表示使用;
  • 不管是系统A,仍是系统B,若是没有jessionid cookie,都会跳转到服务S,若是携带了cookie1(登陆成功后生成的cookie),不须要登陆,会自动登陆,若是没有携带cookie1,会跳转到登陆页面,登陆成功后会设置cookie1。
  • cookie1是保持浏览器和服务S的,表示用户已经登陆过了;
  • cookie二、cookie4都是临时cookie,主要是将服务码带到系统A或系统B,拿到服务码后,经过后端请求服务S进行验证,验证事后,临时cookie就失效了,主要是为了安全考虑。
  • cookie三、cookie5和咱们正常登陆产生的jessionid同样,是各个子系统独有的cookie;

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

常见单点登陆协议

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

常见单点登陆协议

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

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

关键问题总结

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

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

系列索引:

  1. session和cookie介绍
  2. HTTP重定向
  3. 单点登陆介绍
  4. cookie安全问题
  5. 权限管理介绍

情情说
相关文章
相关标签/搜索