单点登录与单点登出

zz/2023/10/1 4:09:51

一、标准流程描述

CAS官网的标准流程:

SSO标准流程

 

流程描述:

First Access: 

第3步数据走向
第4步数据走向
  1. 第一次访问app.example.com(service地址),请求参数中session为空,app service没做过权限认证,所以重定向到CAS认证服务(cas.example.com/cas/login),经过URL编码的service地址作为参数一同传过去;
  2. 浏览器接收到重定向请求,跳转到CAS认证服务,因为请求参数中session为空,没有TGT信息,所以该用户没有登陆过。返回CAS的login页面;
  3. 用户在login页面提交后,用户名和密码提交到CAS,CAS对用户进行校验,通过之后生成一个TGT,并将它作为CAS的session key。重定向到service地址,参数为CAS提供的ST。
  4. 第二次访问app.example.com,这次携带了ST参数。app系统调用CAS的ServiceValidate服务,参数为service地址和ST。CAS通过ST验证,将ST,service地址以及新生成的app系统的局部sessionid存储到CAS数据库中(注销时用到),同时返回一个xml文件,包含了成功标识,认证对象和其他自定义的属性。app系统将ST和认证信息封装到局部session里,sessionid为CAS数据库中刚刚生成的那个。重定向到service地址。
  5. 第三次访问app.example.com,这次携带了sessionid。app系统通过session校验,返回请求的资源。

注:第3步和第4步中,CAS给用户提供了ST,用户又拿着ST到CAS进行ServiceValidate鉴权,可能会觉得多此一举。这是为了防止用户伪造ST。app系统并不知道用户访问时携带的ST是否合法(有可能是我们直接在地址栏输入的),所以需要再去CAS里询问一下,该用户是否有效。

Second Access To Same App:

  1. 携带session信息访问app系统,和单系统的权限认证模式相同,不需要再经过CAS认证。

First Access To Diff App:

第1步数据走向
  1. 第一次访问app2.example.com,未携带局部session信息,重定向到CAS认证服务(cas.example.com/cas/login),经过URL编码的service地址作为参数一同传过去,由于浏览器有CAS的全局session信息(TGT),直接通过CAS的用户校验,之后重定向到service地址,参数为CAS提供的另一个ST,之后的步骤相同。

流程类比:

CAS的login页面相当于大厦的保安处,大厦需要出入证才能进入(CAS session),CAS相当于接待大厅,app和app2相当于具体的部门楼层,需要各自的部门出入证(app session)才能进入。TGT相当于进入大厦的申请单,ST相当于进入部门的申请单。

第一次要去app部门的时候,没有大厦出入证,会被重定向到保安处,填写申请单(TGT),接待大厅判断此人是否是本公司员工,如果是的话将员工的申请单信息录入大厦出入证(CAS session)中,并发给员工。同时将员工进入app部门的申请单(ST)也发给员工。到达app部门时,部门接待处会向接待大厅验证申请单的合法性,确认是合法申请单时接待大厅会对员工信息做登记(存储到CAS数据库),告诉部门接待处已经成功通过验证并登记成功。部门接待处将员工信息录入到部门出入证(app session)中,发给员工。员工拿着部门出入证,进入部门。

第二次要去app部门的时候,如果有部门出入证(app session),可以一路绿灯直接进入。

第一次要去app2部门的时候,由于只有大厦出入证(CAS session),所以需要到接待大厅领取进入app2部门的申请单(ST),再去app2部门申请出入证(app session)。

注:

出入证都是一式两份。接待处一份,员工一份。

任何一方(接待处或员工)的大厦出入证失效后,所有的出入证都必须重新办理。

申请单是有时限的,当申请单过期时,必须重新填写申请单,领取出入证。

 

二、单点登出:

  1. 任意系统登出,都会跳转到sso认证中心进行统一登出,通过sessionId找到相应的token,再找到对应需要注销的子系统机器sessionId,跳转到子系统,销毁局部session,
  2. 销毁全局session(sso认证中心的session),删除token信息和数据库中的子系统信息,跳转到登录页面

 

参考文献:

单点登录原理与简单实现

最强SSO单点登录教程(三)单点注销流程分析

单点登录(SSO)看这一篇就够了


http://www.ngui.cc/zz/1443301.html

相关文章

单点登录sso认证中心

** 单点登录sso认证中心 ** 什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1…

单点系统的高可用与性能优化

单点系统的问题 1、非高可用:既然是单点,master一旦故障,服务就会收到影响。 2、性能瓶颈:既然是单点,不具备良好的扩展性,单点的服务性能总有个上限,一旦出现单点的上限,往往就是整…

实现单点登录(SSO)的三种方式

在早期的互联网业务中,一般是使用单一服务器模式。但随着互联网的飞速发展,互联网用户的体量不断增大,单一服务器模式存在单点性能压力,无法扩展,以及单点失效等问题,已经不适合如今的互联网业务了&#xf…

多系统单点登录(sso)设计

文章目录问题提出登录信息共享机制设计简单实现淘宝天猫登录信息共享(简化版)登录流程问题提出 多个系统中,如何做到其中一个系统登录了,在浏览器中打开其他系统也会成登录状态?比如在淘宝登陆了,打开天猫…

单点登录详解

一、单系统登录机制 1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次…

单点登录技术

单点登录的解决方案 单点登录:多个系统,只需要一次登录就能访问所有系统,只需要一次退出,就能退出所有系统。 应用:淘宝与天猫 方案一: Cookie jsoup 对于不需要频繁验证用户是否登录的系统 (安全要求较低…

金蝶EAS通过第三方系统单点登录

这里写自定义目录标题金蝶EAS通过第三方系统单点登录操作步骤第三方系统代码示例示例jsp代码如下:示例java代码如下:金蝶EAS通过第三方系统单点登录 操作步骤 1、需要有LtpaTokenManager.jar包 2、从EAS服务器上下载 server\profiles\server(1…n)\co…

单点登录说明

什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1、登录 相比于单系统登录&…

开源sso单点登陆系统推荐

一、CAS 地址https://www.apereo.org/projects/cas CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供…

扫码点单系统介绍,源码

一、基本介绍 随着社会的进步与发展,科技手段的推陈出新,餐饮行业也在寻求新的突破与变革,手机扫描二维码点餐系统已经成为餐饮行业的未来趋势,发展空间巨大。 用微信自带的“扫一扫”工具或其他二维码扫描工具扫描餐厅的二维码…