需要学习的 CAS

278 阅读2分钟

「这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战

CAS 协议

CAS Central Authentication Service,是一种常见的B/S架构的SSO协议。和其他任何SSO协议一样,是对单点登录 SSO 的一种实现。用户仅需在一个平台登陆一次后,无需再输入账号密码访问其他应用。

CAS协议一种基于 Ticket实现的协议。

  • cas server 负责验证用户和授权访问权限,相当于统一认证的 cas 服务
  • cas client 实现CAS协议的Web应用
  • service ticket 服务票据(加密字符串)作为凭证被用来从客户端获取服务访问权限

CAS 协议主要使用场景是实现 SSO 单点登录

Cas 认证流程

casflow.png

步骤:

  • 步骤1:用户访问系统 A 重定向到认证中心服务
  • 步骤2:认证中心服务区对该用户进行身份认证,认证完成后会签发给系统 A 的用户一个登录票据 Ticket ,同时会在认证域名下种下 Cookie 值。此 Cookie 值对应的用户信息
  • 步骤3:系统 A 接收到票就后从后台向认证中心服务发起 ticket 校验有效性,有效的话将返回对应的登录用户,用户就可以正常访问系统 A
  • 步骤4:当用户想要访问系统 B 时,将会携带认证域名的 Cookie 重定向到认证中服务,
  • 步骤5:认证中心服务会对此 cookie 进行认证,认证成功后会返回 ticket给系统 B
  • 步骤6:系统就会像步骤 3 那样继续执行下去。

总结

从以上步骤可以看到,主要的用户认证都是依赖于 认证中心服务 CAS Server 。主要根据账号和密码生成一个 ticket ,并将其存储在 Server 端里。该 Ticket 只能使用一次,签发给客户端,客户端用于请求 Server 端进行校验。认证中心对用户认证成功后都会在认证域名下种下该用户的cookie ,所以当该用户要访问另外系统 B 的时候,仅需携带 cookie 到认证中心服务确认,确认成功后会重新产生票据 ticket 给系统 B,然后就是系统 B 对票据的校验。

\