CAS认证协议

CAS认证协议

介绍

Centeral Authentication Service 基于web的单点登录认证协议。它允许一个用户通过一个凭证(如用户名和密码)在多个应用程序中实现身份验证。CAS 主要用于 web环境中,它通过提供一个中央服务器来处理认证请求,使得用户只需登录一次,就可以访问多个不同的服务。

概念

CAS client: 需要单点登录访问的应用。 CAS server:负责处理用户的认证请求并提供一个集中的认证服务,主要功能:认证用户,生成票据,服务票据分发,票据验证。

TGT:Ticket Granting Ticket用户身份认证成功后,CAS会为用户签发登录票据,通过此票据可以证明用户已经登录成功,后续的服务访问而无需重新认证,CAS会将此票据存储起来,可以有效期内一直使用。

[!INFO] TGT是一种特殊的票据,它能够“授予”或生成其他类型的票据,即Service Ticket(ST)。当用户想要访问一个受保护的服务时,他们会使用TGT来请求一个ST,ST是用于访问特定服务的临时凭证。

TGC:存储在浏览器中的认证中心 cookie,认证成功后会返回一个 TGC到浏览器,与 TGC关联。 ST:一个临时的、一次性的凭据,由认证服务器生成,并颁发给已经通过身份验证的用户。用户使用这个服务票据来访问一个或多个服务,而不需要在每个服务上重新进行身份验证。一旦服务票据被验证,它通常就会被废弃,以防止重放攻击。

接入流程

  1. 第三方应用在认证中心进行服务注册,确保第三方应用能够通过认证中心进行单点登录。
  2. 第三方应用后台增加认证 filter(具体实现的话,可以是集成 cas apereocas-client相关依赖,也可以是集成 spring security cas相关依赖)。 cas client集成参考:cas client单点登录集成

认证过程

  1. 用户访问第三方应用的目标地址,
  2. 后台认证 filter检测到请求未认证,携带着目标地址重定向到认证中心的登录页面
  3. 用户登录成功之后,会生成用户登录成功的票据:TGT&TGC,并生成 ST,将 TGCST返回给用户浏览器,重定向到第三方应用的目标地址,此时携带着 ST
  4. 应用程序收到带有服务票据的请求后,会将其发送回 CAS服务器进行验证。
  5. CAS服务器验证服务票据的有效性。如果服务票据有效,CAS服务器返回认证响应:是否成功,成功的话携带用户信息。ST使用后此时已失效,第三方应用可以据此创建会话。
  6. 当第三方应用会话过期或被清理后,如果 TGT还在有效期内,但此时 ST已经过期,还是会重定向到登录页面,不过此时不需要再次输入用户名密码,可能会看到页面闪烁(为了更好的用户体验,CAS实现可能会使用一个透明的中间页面或者直接在后台完成新的ST的发放,从而避免用户看到登录页面的闪现) cas认证流程图

参考

CAS协议分析

CAS认证原理

CAS

摘要
标签 :

相关文章

mysql中的字符集

mysql中的字符集

UTF-8是Unicode的一种实现方式,几乎包含世界上所有字符,方便国际化,通常使用此字符集。

更多
Oauth2.0授权协议

Oauth2.0授权协议

OAuth2.0是一种授权协议,**允许第三方应用在用户授权的情况下,在不暴露用户密码给第三方应用的前提下安全地访问服务器资源**,同时可以提供有限的权限范围,限制第三方应用能够访问的资源,提高了安全性。认证成功之后会返回Acces Token,第三方应用可以用Access Token换取所需要的资源。

更多