继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前两篇介绍了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具体如何管理,会在介绍每个具体协议的时候重点说明。

系列索引:

  1. session和cookie介绍
  2. HTTP重定向
  3. 单点登录介绍

作者:情情说
链接:https://juejin.im/post/5a982eb8f265da239f06cba3
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

单点登录与权限管理本质:单点登录介绍相关推荐

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

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

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

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

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

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

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

    继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前两篇介绍了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. linux登录超级权限管理,Linux操作系统中超级权限控制的应用(3)

    实例四: 比如我们想用beinan普通用户通过more /etc/shadow文件的内容时,可能会出现下面的情况: [beinan@localhost ~]$ more /etc/shadow /et ...

最新文章

  1. 国务院发文!这些专业,将被撤销!
  2. ubuntu中命令打开图片、文档、音乐、视频等
  3. SQL自动流水号函数
  4. Teams与OneDrive for Business和SharePoint的关系
  5. Java代理初学者指南
  6. Ado.Net读取Excel常见问题总结
  7. WinHttp c++ 介绍及应用
  8. 深度学习与计算机视觉教程(8) | 常见深度学习框架介绍(CV通关指南·完结)
  9. Ubuntu登陆后桌面图标消失,只有背景和鼠标存在
  10. KL Divergence ——衡量两个概率分布之间的差异
  11. mysql update语句的用法详解
  12. PVM and MPI 比较
  13. 名词诠释大全以及新站上线后,seo优化应该如何做?
  14. house robbers
  15. 解决win10家庭版安装LoadRunner11无法破解问题
  16. JavaScript 中 mouseenter 与mouseover 区别
  17. 万有(惠州)国际旅游度假区项目落户惠州
  18. Linux 设置安排每天重启任务
  19. 完美解决ubuntu报错:ppa.launchpad与404 Not Found [IP: 91.189.95.85 80]
  20. 瞎折腾篇:联想笔记本外扩GTX1060——刷BIOS

热门文章

  1. VS热键与Resharper热键冲突
  2. 晴天霹雳。。傲盾把我的Linux格成了03系统了?之一
  3. LLBL Gen Pro 3.X 下使用 Template 模版绑定(一)
  4. 万字长文告诉你Go 1.19中值得关注的几个变化
  5. Android Studio 编写无限查看QQ闪照APP
  6. gotify 推送服务器搭建使用
  7. 通过cmd指令快速清理系统缓存
  8. 道可云3DVR智慧景区导览系统票务平台
  9. ppi 各代iphone_iPhone 4性能依旧很强 屏幕PPI并非最高
  10. 建立链栈,并在链栈上实现栈的初始化,判空,入栈和出栈操作。