CAS

CAS

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 客户端是一个软件包,能够与应用程序集成,用来限制外部请求访问应用程序,并从 CAS server 检索已授予用户的身份。 CAS 客户端通过任何一种支持的协议与服务器进行通信。 支持的协议如下:

    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流程:

原文地址:https://www.cnblogs.com/kevin-yuan/p/13800781.html