免费注册,打造高效身份管理
博客/开发者/Authing Share|Spring Security 集成 Authing CAS 认证(一)
Authing Share|Spring Security 集成 Authing CAS 认证(一)
Authing 官方2022.09.02阅读 1126

01

集成介绍

单点登录 (Single Sign On),英文名称缩写 SSO,意思是在多系统的环境中,登录单方系统,就可以无须再次登录,访问相关受信任的系统。也就是说,只要登录一次单体系统即可。

Authing CAS 是 SSO 解决方案的一种具体实现方式,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录,并且支持多种认证机制、安全策略、支持授权以及提供高可用性的方式,不需要客户关注于如何实现 CAS Server、配置 HTTPS 以及提供个性化的登录、登出的页面等等。Authing 简化配置流程,为用户提供一站式应用集成,用户只要在平台自行配置各种需要的方式即可。

02

CAS 介绍

什么是 CAS

CAS 框架:CAS(Central Authentication Service,即:统一认证服务)是实现 SSO 单点登录的框架。

什么是单点登录

单点登录:Single Sign On,简称 SSO,SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

CAS 术语

Ticket Granting Ticket (TGT) :可以认为是 CAS Server 根据用户名密码生成的一张票,存在 Server 端。

Ticket Granting Cookie (TGC) :其实就是一个 Cookie,存放用户身份信息,由 Server 发给 Client 端。

Service Ticket (ST) :由 TGT 生成的一次性票据,用于验证,只能用一次。相当于 Server 发给 Client 一张票,然后 Client 拿着这个票再来找 Server 验证,看看是否由 Server 签发。

CAS 协议流程图

 

03

流程概述

用户首次访问系统 A

用户浏览器访问系统 A 中受限资源,此时系统 A 进行登录检查,发现未登录,然后系统 A 检查访问的 URL 中是否带有令牌(ST),发现没有令牌(因为是首次登录)。

系统 A 将用户请求重新定向到认证中心(CAS Server),认证中心进行获取全局票据(TGT)操作,没有(因为是首次登录),所以用户需要进行登录操作(输入用户名和密码)。

认证中心呈现登录页面,用户登录,登录成功后,认证中心给用户浏览器设置 Cookie(TGC),然后认证中心重新定向请求到系统 A,并附上认证通过令牌(ST),此时认证中心同时生成了全局票据(TGT)。 此时再次进行登录检查,发现未登录,然后再次获取令牌操作,就可以获得令牌(ST)。系统 A 拿着令牌和请求 URL 与认证中心通信,验证令牌有效,认证中心返回成功,证明用户已登录。 系统 A 生成相应的 session(用于下次用户访问时验证),然后将受限资源返给用户。

已登录用户首次访问系统 B

浏览器访问另一系统 B 需登录受限资源,此时进行登录检查(session 检查),发现未登录,然后系统 B 检查访问的 URL 中是否带有令牌(ST),发现没有令牌。 系统 B 将请求重新定向到认证中心,认证中心进行获取全局票据(TGT)操作,可以获得(因为之前已经登录过)。 认证中心发放令牌(ST),并携带该令牌重新定向到系统 B。 系统 B 再次进行登录检查,发现未登录,然后再次获取令牌操作,此时可以获得令牌(ST),系统 B 拿着令牌和请求 URL 与认证中心通信,验证令牌有效,认证中心返回成功,证明用户已登录。 系统 B 生成相应的 session(用于下次用户访问时验证),然后将受限资源返回给用户。

用户登出

用户向系统 A 发起登出请求动作,系统 A 清除本地 session,同时清除用户浏览器中相应的 cookie。 系统 A 将用户请求重定向到认证中心的登出接口,认证中心根据获取到的票据(TGT)清除本地 session,同时清除用户浏览器中相应的 cookie(TGC)。 认证中心把用户请求重新定向回系统 A,这时由于系统 A 中已经没有了 session,所以请求会被重新定向到认证中心的登录页面。至此,用户已经完全退出系统了。

说明

关于 Spring Security 的相关知识点,请参考 《Spring Security 集成 Authing OIDC 认证(一)》一文。

更多关于 CAS 的知识,请持续关注 Authing 技术博客。

 

关于 Authing

Authing 是国内首款以开发者为中心的全场景身份云产品,为企业和开发者提供完善安全的用户认证和访问管理服务。作为云原生架构下的身份云产品,Authing 在产品创建初期,目标就是服务亿级的企业和个人开发者客户,轻量级、易部署、低消耗、技术栈成熟,运维易的云原生技术产品架构,成为了 Authing 的首选。

点击此处了解更多行业身份管理

「解决方案」以及「最佳实践案例」。

文章作者

avatar

Authing 官方

0

文章总数

authing blog rqcode
关注 Authing 公众号
随时随地发现更多内容
authing blog rqcode
添加 Authing 小助手
加入 Authing 开发者大家庭
身份顾问在线解答
当前在线
如何打造完整的身份体系?
立即沟通
authing
添加企业微信,领取行业资料
authing
authing
下载 Authing 令牌,体验快速登录认证!
免费使用
在线咨询
电话咨询