消息队列 (Kafka) CAS/IAM中心 (认证授权) B系统 (摩天轮) A系统 (过山车) 消息队列 (Kafka) CAS/IAM中心 (认证授权) B系统 (摩天轮) A系统 (过山车) 🎡 场景一:进系统 (首次登录获取 A 系统凭证) 🚪 场景二:退出系统 (基于MQ的单点登出) 👑 场景三:修改VIP权限 (基于MQ的实时感知) 🚨 场景四:越权访问 (尝试用 A 的票去 B 系统) 假设攻击者在 ST-1 被A验证前 劫持了它,或者伪造请求 浏览器 (张三/攻击者) 管理员 访问A系统 1 未登录,带上 service=A 跳转CAS 2 提交账号密码 3 校验通过,生成 TGT 4 【核心】生成 ST-1 并与 service=A 强绑定 5 种下TGC,携 ST-1 重定向回A系统 6 携带 ST-1 访问A系统 7 A后端携带 (ticket=ST-1, service=A) 去验证 8 验证通过 (服务匹配),ST-1 作废,返回用户信息 9 生成A系统本地Token 10 登录A系统成功 11 点击全局退出按钮 12 销毁中央 TGT 13 异步发布【张三登出事件】 14 A系统消费消息,清理本地Token 15 取消张三 VIP 权限 16 异步发布【权限变更事件】 17 A系统消费消息,刷新Redis权限缓存 18 访问A系统VIP接口 ->> 403 被拒 19 恶意携带属于A的 ST-1 访问B系统 20 B后端携带 (ticket=ST-1, service=B) 去验证 21 查库发现 ST-1 绑定的是 service=A 22 比对失败 (A != B) ! 发现越权或伪造! 23 验证失败:Ticket不属于该Service (INVALID_SERVICE) 24 拒绝访问,强制跳转到CAS重新登录 25 浏览器 (张三/攻击者) 管理员
相关推荐
betazhou3 分钟前
Apache Seatunnel 抽取SQL server实时同步到Oracle(四)笨鸟先飞的橘猫4 分钟前
skynet热更新实现问题与排错记录l1t9 分钟前
DeepSeek总结的PostgreSQL 的 MVCC 很糟。其他所有的也一样。第1部分andrsted11 分钟前
练题簿在线免费刷题:将资料、Word 和 PDF导入小程序练习新手小新14 分钟前
通信工程师学习笔记5-通信系统川石课堂软件测试17 分钟前
JMeter异步接口测试实战我命由我1234517 分钟前
刚性防水与柔性防水dtq042420 分钟前
C++3 - 分支语句if和string变量下页、再停留24 分钟前
【C#桌面客户端系列学习-14】SQLite数据库之增删改查完整示例她的男孩27 分钟前
JAR 全对仍 checksum mismatch:Forge Admin 把 Flyway 从 filesystem 改成 classpath