https://apereo.github.io/cas/5.1.x/protocol/CAS-Protocol.html
CAS 是 Central Authentication Service 的缩写,中央认证服务,一种独立开放指令协议。CAS 是 耶鲁大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
CAS 协议是一种简单且功能强大的基于 ticket 票证的协议。
CAS server 和 CAS client
-
CAS server CAS 服务器,需要独立部署的 Web 应用,主要负责验证用户和授予应用程序的访问权限。 CAS服务器是基于Spring框架构建的Java Servlet,其主要职责是通过发行和验证票证来认证用户并授予对启用CAS的服务(通常称为CAS客户端)的访问权限。当服务器在成功登录后向用户颁发授予票据的票证(TGT)时,将创建SSO会话。应用户的请求,使用TGT作为令牌,通过浏览器重定向将服务票证(ST)发行给服务。随后通过反向通道通信在CAS服务器上验证ST。
-
CAS client
CAS (versions 1, 2, and 3)
SAML 1.1 and 2
OpenID Connect
OpenID
OAuth 2.0
WS Federation
TGT & ST
-
TGT (Ticket Granting Ticket) 授予票据的票证,代表一个用户的 SSO 会话(SSO Session),保存在 TGC cookie 中
-
ST(Service Ticket) ST 使用 url 中的 GET 参数进行传输,代表 CAS 服务器为特定用户授予对 CASified 应用程序的访问。
CAS 浏览器单点登录流程:
CAS Proxy流程: