Cas 客户端

Cas 支持多种客户端的接入,每种客户端的接入方式都有所差别,根据接入项目的情况来选择还是的接入客户端。

客户端 应用场景 项目地址
cas-client-core 未使用鉴权框架的Java Web 项目 https://github.com/apereo/java-cas-client
phpCAS 使用PHP编程语言开发的 Web 项目 https://github.com/apereo/phpCAS
.NET CAS Client 使用.NET 编程语言开发的 Web 项目 https://github.com/apereo/dotnet-cas-client
shiro-cas 使用了shiro鉴权框架的Java Web 项目 https://github.com/hiwepy/shiro-cas-spring-boot-starter
spring-security-cas 使用了spring-security鉴权框架的Java Web 项目

Cas 协议交互流程

CAS 的核心就是其 Ticket,及其在 Ticket 之上的一系列处理操作

ST(Service Ticket)
ST 是 CAS 为用户签发的访问某一 service(即集成 CAS 单点登录验证的应用系统资源 url)的票据
TGT(Ticket Grangting Ticket)
TGT 是 CAS 为用户签发的登录票据,拥有 TGT,就代表用户已登录
TGC(Ticket Granted Cookie):在服务器缓存中查询 TGT 的键
LT:Login Ticket,在每次登录前生成的一个唯一的票根,仅用作登录验证

未登录统一身份认证平台
用户用户浏览器浏览器统一身份认证平台统一身份认证平台系统B系统BCas客户端Cas客户端首次访问“业务系统/平台”查找 Session 的 CONST_CAS_ASSERTION,无查找 ticket 参数,无no ticket and no assertion found构造重定向 url重定向 https://cas_server_url/cas/login?service=xxx,无 TGC通过 TGC 查询 TGT查询失败重定向到统一身份认证平台登录界面POST 请求 https://cas_server_url/cas/login?service=xxx,附带 username、password、lt、execution、_eventId 参数验证用户数据库,验证成功生成并缓存 TGTCOOKIE 存储 TGC,签发一个 ST重定向 URL:service?ticket=ST ,例如:https://cas_client_url/home?ticket=ST查找 Session 的 CONST_CAS_ASSERTION,无查找 ticket 参数,有调用统一身份认证平台:https://cas_server_url/cas/serviceValidate,验证 STST 认证成功Session 存入 CONST_CAS_ASSERTIONST 认证成功后需要重定向重定向 URL:service ,例如:https://cas_client_url/home返回访问资源后续请求查找 Session 的 CONST_CAS_ASSERTION,有返回访问资源
已登录统一身份认证平台
浏览器浏览器Cas客户端Cas客户端统一身份认证平台统一身份认证平台第一次请求访问“业务系统/平台”查找 Session 的 CONST_CAS_ASSERTION,无查找 ticket 参数,无no ticket and no assertion found构造重定向 url重定向 https://cas_server_url/cas/login?service=xxx,有 TGC通过 TGC 查询 TGT查询成功签发一个 ST重定向 URL:service?ticket=ST ,例如:https://cas_client_url/home?ticket=ST查找 Session 的 CONST_CAS_ASSERTION,无查找 ticket 参数,有调用统一身份认证平台:https://cas_server_url/cas/serviceValidate,验证 STST 认证成功Session 存入 CONST_CAS_ASSERTIONST 认证成功后需要重定向重定向 URL:service ,例如:https://cas_client_url/home返回访问资源后续请求查找 Session 的 CONST_CAS_ASSERTION,有返回访问资源
作者:Jeebiz  创建时间:2022-10-20 14:41
最后编辑:Jeebiz  更新时间:2024-05-07 20:29