惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
小众软件
小众软件
D
Docker
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
博客园 - 叶小钗
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
IT之家
IT之家
博客园 - 司徒正美
M
MIT News - Artificial intelligence
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog

祈雨的笔记

安全多方计算MPC spark原理解析 kueue执行源码分析 spark on k8s执行源码分析 spark-operator源码解析 系统压测遇到的缓存击穿问题 我的世界PC与安卓联机 蚂蚁金服流量投放平台的AIG改造 G1大对象致Old区占用率高 日志打印导致接口响应率下跌分析 Groovy加载类导致OOM分析 ERROR日志打印导致CPU满载 记OceanBase死锁超时 应用发版期间服务响应超时 Ark Serverless初探 系统优化复盘一二三 The user specified as a definer does not exist Kong网关初探 API网关选型调研 CPU火焰图常用工具 配置中心选型调研 root操作Nginx导致用户组错误 基于Proxifier使用代理 FastJSON字段智能匹配踩坑 Nacos初探 记一次Nginx服务器CPU满荷载故障 基于券系统分库分表的思考 limit不参与SQL成本计算致索引失效 Linux常用性能监控命令 golang低版本http2偶现400
CAS(1)原理
祈雨的笔记 · 2017-11-06 · via 祈雨的笔记

1、介绍

SSO单点登录是指在多个应用系统中,用户只需要登录一次即可访问相互信任的应用系统而不需要再次登录的服务。

2、原理图

3、过程

当有多个单点登录客户端如Cas Client A、Cas Client B,用户访问两个客户端时的过程如下:

  1. 用户访问Cas Client A,Cas Client A检查其未登录后,将用户重定向至Cas Server进行用户登录
  2. 用户登录成功后,Cas Server向浏览器写入名为CASTGC的包含用户信息的加密cookie。然后随机生成一次性的Ticket,保存到内部数据库后,携带Ticket重定向回Cas Client A
  3. Cas Client A获取到Ticket后,后台请求Cas Server验证Ticket。Cas Server通过内部数据库判断Ticket的有效性。验证通过后,Ticket作废,Cas Client A创建Session保存登录信息
  4. Cas Client A向用户返回请求内容
  5. 用户访问Cas Client B,Cas Client B先检查是否有保存登录信息的Session,发现没有对应Session后,寻找是否有Ticket。发现无Ticket后,重定向到CAS Server
  6. CAS Server寻找保存用户信息的cookie:CASTGC。根据cookie中保存的信息进行自动登录。Cas Server随机生成一次性的Ticket,保存到内部数据库后,携带Ticket重定向回Cas Client B
  7. Cas Client B获取到Ticket后,后台请求Cas Server验证Ticket。Cas Server通过内部数据库判断Ticket的有效性。验证通过后,Ticket作废,Cas Client B创建Session保存登录信息
  8. Cas Client B向用户返回请求内容
  9. 用户登出时,CAS server接受请求后,会检测用户的CASTGC Cookie,把对应的Session清除,同时会找到所有通过该CASTGC SSO登录的Cas Client的URL,并向各个Cas Client提交请求。所有收到请求的Cas Client把对应session删除