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的单点登录流程图

userbrowserapp#acas server用户通过游览器访问应用用户访问应用a 应用a监测到没有认证的用户重定向游览器到cas服务器302 location:https://cas.example.com/cas/login?service=https%3A%2F..com%2Fget https://cas.example.com/cas/login?service=https%3A%2F..com%2Fcas判断是否有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-12345678get https://app.example.com/?ticket=ST-12345678客户端带上ticket请求cas校验ticket get https://cas.example.com/serviceValidate?service=https%3A%2F..com%2F&ticket=ST-12345678cas返回 [200] XML Content设置cookie,重定向到前端业务地址 Set-Cookie: JESSIONID=12345678 302 location https://app.example.com/get https://app.example.com/: appsession合法响应内容渲染页面userbrowserapp#acas server

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

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

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

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

官方时序图

正常单点登录流程

代理单点登录流程

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章