cas 协议

cas协议是什么?

CAS协议是一种简单且功能强大的基于票证(ticket)的协议。它涉及一个或多个客户端和一台服务器。中央身份验证服务(CAS)是Web的单点登录/单点退出协议。用户向中央CAS Server应用程序提供一次凭据(例如用户ID和密码),就可以访问多个应用程序。客户端嵌入在CASified应用程序中(称为“ CAS服务”),而CAS服务器是独立组件:

  • CAS服务器负责验证用户并授予访问应用程序
  • CAS客户保护CAS应用程序和检索CAS服务器的授权用户的身份。

关键概念:

  • TGT存储在TGCcookie中的(“票证授予票证”)代表用户的SSO会话。
  • ST(服务票据),作为传输GET参数的URL,代表由CAS服务器授予访问CASified应用程序对特定用户。

官方地址

第一次访问app#a的单点登录流程图

user browser app#a cas server 用户通过游览器访问应用 用户访问应用a 应用a监测到没有认证的用户重定向游览器到cas服务器 302 location:https://cas.example.com/cas/login?service=https%3A%2F..com%2F get https://cas.example.com/cas/login?service=https%3A%2F..com%2F cas判断是否有sso session 存在,没有session存在返回登录页面 post https://cas.example.com/cas/login?service=https%3A%2F..com%2F 带上用户名密码 认证用户 用户认证成功,生成sso session 并生成 TGT 存在游览器cookie里面 Set-Cookie: CASTGC=TGT-2345678 302 location https://app.example.com/?ticket=ST-12345678 get https://app.example.com/?ticket=ST-12345678 客户端带上ticket请求cas校验ticket get https://cas.example.com/serviceValidate?service=https%3A%2F..com%2F&ticket=ST-12345678 cas返回 [200] XML Content 设置cookie,重定向到前端业务地址 Set-Cookie: JESSIONID=12345678 302 location https://app.example.com/ get https://app.example.com/: app session合法响应内容 渲染页面 user browser app#a cas server

第二次访问相同系统app流程

user browser app#a cas server 用户通过游览器访问应用 游览器带上cookie访问应用a 校验session通过返回页面 渲染页面 get https://cas.example.com/cas/login?service=https%3A%2F..com%2F user browser app#a cas server

第一次访问第二个app app#b

user browser app#b cas server 用户通过游览器访问应用 get https://app2.example.com 应用b检测到没有认证的用户重定向游览器到cas服务器 302 location:https://cas.example.com/cas/login?service=https%3A%2F..com%2F get https://cas.example.com/cas/login?service=https%3A%2F..com%2F 校验TGT 判断是否存在 sso session 用户认证成功 302 location https://app.example.com/?ticket=ST-12345678 get https://app.example.com/?ticket=ST-12345678 客户端带上ticket请求cas校验ticket get https://cas.example.com/serviceValidate?service=https%3A%2F..com%2F&ticket=ST-12345678 cas返回 [200] XML Content 设置cookie,重定向到前端业务地址 Set-Cookie: JESSIONID=12345678 302 location https://app.example.com/ get https://app.example.com/: app session合法响应内容 渲染页面 user browser app#b cas server

官方时序图

正常单点登录流程

代理单点登录流程

代理单点登录流程 没看懂要用在那种场景

  • 17
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值