CAS单点登入登出原理

article/2025/9/4 0:03:54

CAS

集中式认证服务(Central Authentication Service,CAS),单点登录协议,允许一个用户访问多个应用程序,而只需要提供一次凭证。

具体实现框架有:OAuth2,Shiro等。

普通CAS1.0

登入详细流程

截图

截图

截图

流程解析:

(1-2) 用户第一次通过浏览器Browser访问受保护的应用系统app1,应用系统app1发现访问请求中没有JSESSIONID or ST(service ticket) ,要求Browser重定向去CAS service获取ST;

  1. 在每个受保护的应用系统上都部署有CAS client,逻辑上与应用系统独立,物理上与应用系统部署在一起,实现上通过过滤器filter的方式保护应用系统,CAS client主要提供两大块功能:

    AuthenticationFilter:负责校验用户是否已认证

    TicketValidationFilter:负责校验ST的合法性

  2. 应用系统app1通过JSESSIONID or ST判断用户有没有登入:先判断JSESSIONID,再判断ST;

(3) 浏览器Browser重定向去CAS service获取ST;

(4-5) CAS service发现TGC(ticket granting cookie)为空 or 以TGC为key的session不存在,返回Browser登录表单;

(6) 浏览器Browser给用户展示登录页面;

(7-8) 用户输入用户名密码等登录信息后,Browser将登录信息送给CAS service;

(9-11) CAS service根据用户登录信息进行验证,如果验证通过,CAS service就会创建:TGC(ticket granting cookie)、TGT(ticket granting ticket,票根),并将以TGC为key,TGT为value创建SSO(Single-SignOn) session缓存在CAS service,最后根据TGT创建ST(service ticket,票据);最后TGC和ST返回给Browser;

  1. 为了保证ST的安全性:ST 是基于随机生成的,没有规律性。而且,CAS规定 ST 只能存活一定的时间,然后 CAS service 会让它失效。而且,CAS 协议规定ST只能使用一次,无论ST验证是否成功, CAS service 都会清除服务端缓存中的该ST ,从而可以确保一个ST不被使用两次。

  2. 为什么不能用TGC代替ST,即为什么还需要由TGT另外生成一个ST?

    如果有TGC代替ST,为了跨域,在第11步重定向时势必要将TGC作为URL一部分代替ST,这样TGC直接暴露出来,且TGC有效期相对较长,攻击者完全可以取得这个TGC去另外受保护的应用系统获取资源,甚至于可以将这个TGC记录下来,在浏览器Browser退出,TGC删除但是CAS service SSO session未失效的情况下,拿着记录下来的TGC再去获取受保护应用系统的访问权限,这也是ST要设置只能使用一次的原因。

  3. CAS service主要的是KDC(Key Distribution Center,密钥分发中心),而KDC包括:

    AS(Authentication Service,认证服务):根据用户登入信息,进行登入操作,发放TGT

    TGS(Ticket Granting Service,票据授受服务):根据TGT,发放ST

(12) Browser收到TGC后设置cookie,并带着ST再次请求应用系统app1;

从这里看到,TGT是依靠TGC来索引的,而TGC cookie一般是指定时间or关闭浏览器Browser时删除,而一旦TGC删除,TGT也遗失了,因此,为节约CAS service缓存,可以定时删除迷失的TGT SSO session。

(13) 受保护的应用系统app1拿着ST去CAS service验证ST的合法性;

这里CAS client的TicketValidationFilter起作用

(14) CAS service验证ST,返回验证结果,认证主体和相关属性(包括后面的JSESSIONID);

(15) 应用系统app1确认ST校验通过后,创建本次连接的session,并让Browser设置cookie JSESSIONID;

认证成功后创建应用session的目的是后面用户访问该应用无需再次登录及再次去CAS service中验证的必要,从另一方面来说,在应用系统上建立应用session也是必要的,因为ST是CAS service重定向带过来的,后面Browser访问时没有ST,也限制了ST最多只使用一次,因此必须有一个东西来在Browser和应用系统间证明用户的登入,这个东西就是应用session及其JSESSIONID。

(16) Browser设置应用系统app1本次连接访问的cookie JSESSIONID后,带着JSESSIONID cookie再去访问应用系统app1;

(17-18) 应用系统app1校验JSESSIONID通过,返回受保护的资源;

(19) 用户成功看到受保护的系统页面;


(20-21) 用户第二次访问受保护的应用系统app1时,Browser带着cookie JSESSIONID请求app1;

(22-23) 应用系统app1校验JSESSIONID通过,返回受保护的资源;

(24) 用户成功再次看到受保护的系统页面;


(25-27) 用户第一次访问受保护的应用系统app2时,应用系统app2发现访问请求中没有JSESSIONID or ST,要求Browser重定向去CAS service获取ST;

(28) 浏览器Browser带着cookie TGC重定向去CAS service获取ST;

(29-30) CAS service发现以TGC为key的session TGT存在,且TGT合法有效,则根据TGT创建ST,并将ST返回给Browser;

(31) Browser带着ST再次请求应用系统app2;

(32-34) 受保护的应用系统app2拿着ST去CAS service验证ST的合法性;CAS service验证ST,返回验证结果,认证主体和相关属性(包括后面的JSESSIONID); 应用系统app1确认ST校验通过后,创建本次连接的session,并让Browser设置cookie JSESSIONID;

(35) Browser设置应用系统app2本次连接访问的cookie JSESSIONID后,带着JSESSIONID cookie再去访问应用系统app2;

(36-37) 应用系统app2校验JSESSIONID通过,返回受保护的资源;

(38) 用户成功看到受保护的系统页面;

CAS所有的请求都需要在有SSL保护的HTTS下进行才安全。

登出流程

截图

代理CAS2.0

未完待续~~





参考:

如何设计一个通用的权限管理系统?说的太详细了!

cas系列(一)–cas单点登录基本原理

CAS单点登录原理(包含详细流程,讲得很透彻,耐心看下去一定能看明白!)

【SSO单点系列】(6):CAS4.0 单点流程序列图(中文版)以及相关术语解释(TGT、ST、PGT、PT、PGTIOU)

CAS认证原理、TGT/ST、流程介绍

CAS-认证流程详解

Kerberos身份验证流程

kerberos 认证学习

kerberos的as tgs cs认证基本原理


http://chatgpt.dhexx.cn/article/47WFb29m.shtml

相关文章

SSO单点登录原理剖析

转载于:http://www.cnblogs.com/gxbk629/p/4473569.html CAS实现SSO单点登录原理 1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的、开源的项目,旨…

cas跨域单点登录原理

相同域名下实现单点登录太简单,因为A系统和B系统域名相同,在访问A时候登录过,在访问B时,由于域名相同,浏览器会带上cookies,cookies里有票据信息,访问B自然就不用再登录了。 可是如果A系统和B系…

CAS单点登录原理分析(二)

这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章: CAS单点登录原理分析(一) https://blog.csdn.net/qq_41258204/article/details/84036875 CAS 包含两个部分: CAS Server …

CAS-5.2.6单点登录-退出原理

退出原理流程图: cas的退出有三种模式: NONE:不支持单点登录BACK_CHANNEL:隐式退出(默认)FRONT_CHANNEL:显式退出 参数说明 参考官网地址 https://apereo.github.io/cas/5.2.x/installation…

CAS实现单点登录原理与实例解析

上几篇博客介绍了使用cookie实现同域和跨域系统的单点登录,本文将介绍通过CAS实现单点登录实例。 CAS是由耶鲁大学研发的单点登录服务器,主要分为服务端和客户端两个系统模块;本文将通过官网提供的实例进行介绍。 一、CAS实现SSO的原理与认…

简述CAS单点登录的实现原理

CAS(Central Authentication Service)单点登录系统是一种常见的身份验证和授权解决方案,它可以让用户在一个认证中心(CAS服务器)上登录,然后使用此登录信息访问多个应用程序而无需再次登录。 先了解几个名…

CAS单点登录原理解析及相关配置

1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有权限则从Cookie中取出用户名密码进行登录,让用…

CAS 单点登录的实现原理(一)

一,会话和Cookie HTTP是无状态协议,客户端与服务端之间的每次通信都是独立的,而会话机制可以让服务端鉴别每次通讯过程中的客户端是否是同一个,从而保证业务的关联性。 Session是服务器使用一种类似于散列表的结构,用…

CAS单点登录原理及实现

CAS单点登录原理及实现 标签(空格分隔): 单点登录 CAS SSO ###目录 概念介绍搭建流程原理分析 ###概念介绍 CAS介绍 Central Authentication Service(缩写CAS)是一种针对万维网的单点登录协议。它的目的是允许一个用…

单点登录CAS实现

单点登录(Single Sign-On,简称SSO)是一种身份验证技术,它允许用户使用一组凭据(如用户名和密码)登录到多个应用程序或系统中,而无需在每个应用程序或系统中单独登录。这种技术可以提高用户体验&…

CAS单点登录原理及改造

CAS是由耶鲁大学开发的单点登录系统,其核心的知识点包括以下几个概念: 1) TGT: 票据,或称大令牌,在登录成功之后生成,其中包含了用户信息 2) TGC: TGT的key,TGT存储在session中,TGC以cookie形式保存在浏览器…

SSO单点登录原理详解(从入门到精通)

本文主要对SSO单点登录与CAS、OAuth2.0两种授权协议的关系和原理进行详细说明。 1. 基础概念 SSO单点登录(Single sign-on) 所谓单点登录就是在多个应用系统中,用户只需登录一次就可以访问所有相互信任的系统。 CAS 中央认证服务&#xf…

CAS单点登录的实现

这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章:CAS单点登录原理分析(一) https://blog.csdn.net/qq_41258204/article/details/84036875 CAS 包含两个部分: CAS Server 和…

CAS单点登录原理解析

推荐阅读 1. SpringBoot 整合篇 2. 手写一套迷你版HTTP服务器 3. 记住:永远不要在MySQL中使用UTF-8 4. Springboot启动原理解析 1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访…

CAS单点登录的实现(二)

这篇文章对CAS单点登录具体实现的一些步骤就行讲述,至于CAS单点登录的实现原理分析,请参看下面这篇文章: CAS单点登录原理分析(一) https://blog.csdn.net/qq_41258204/article/details/84036875 CAS 包含两个部分: CAS Server 和…

CAS单点登录系列之原理简单介绍

文章目录 一、 SSO简介1.1 单点登录定义1.2 单点登录角色1.3 单点登录分类 二、 CAS简介2.1 CAS简单定义2.2 CAS体系结构2.3 CAS原理 三、CAS服务端部署附录 一、 SSO简介 1.1 单点登录定义 单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在…

CAS实现单点登录SSO执行原理探究(终于明白了)

一、不落俗套的开始 1、背景介绍 单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS框架:CAS(Central Authentication Service)是实现SSO单点登录的框架。 2、盗一张学习CAS绝大多都看过的图以及执…

CAS实现单点登录

1.简介 SSO单点登录 在多个相互信任的系统中,用户只需要登录一次就可以访问其他受信任的系统。 新浪微博与新浪博客是相互信任的应用系统。 *当用户首次访问新浪微博时,新浪微博识别到用户未登录,将请求重定向到认证中心,认证中心…

cas server + cas client 单点登录 原理介绍

CAS 介绍 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要独立部署的 Web 应用…

CAS单点登录原理(包含详细流程,讲得很透彻,耐心看下去一定能看明白!)

转载地址 http://www.cnblogs.com/lihuidu/p/6495247.html 1、基于Cookie的单点登录的回顾 基于Cookie的单点登录核心原理: 将用户名密码加密之后存于Cookie中,之后访问网站时在过滤器(filter)中校验用户权限,如果没有…