首页
/ Apereo CAS协议2.0规范详解

Apereo CAS协议2.0规范详解

2026-02-04 04:18:48作者:蔡怀权

协议概述

Apereo CAS(Central Authentication Service)是一个开源的企业级单点登录系统。CAS协议2.0是该系统的核心认证协议规范,定义了客户端与服务端之间的交互方式。本文将深入解析CAS 2.0协议的关键组成部分。

核心概念

基本术语

  • Client:终端用户或Web浏览器
  • Server:中央认证服务服务器
  • Service:客户端尝试访问的应用程序
  • Back-end service:服务代表客户端尝试访问的应用程序(也称为目标服务)

关键组件

  1. Ticket:临时凭证,用于验证用户身份
  2. Session:单点登录会话
  3. Proxy:代理认证机制

核心URI接口

1. /login接口

/login接口具有双重行为:凭证请求者和凭证接受者。

凭证请求者模式

主要参数

  • service(可选):目标应用的标识符(通常是URL)
  • renew(可选):强制要求重新认证
  • gateway(可选):非交互式认证尝试

响应类型

  • 用户名/密码认证:返回登录表单
  • 信任认证:根据部署策略决定行为
  • 单点登录认证:检查现有会话

凭证接受者模式

通用参数

  • service(可选):成功认证后重定向的URL
  • warn(可选):禁止透明认证

用户名/密码认证特有参数

  • username(必需):用户名
  • password(必需):密码
  • lt(必需):登录票据

响应

  • 成功:重定向到service参数指定的URL,附带服务票据
  • 失败:返回登录页面并显示错误信息

2. /logout接口

用于销毁客户端的单点登录会话。

参数

  • url(可选):注销后显示的链接

响应: 显示注销成功页面,可选包含提供的URL链接

票据验证接口

1. /validate(CAS 1.0)

基本票据验证接口,不支持代理认证。

参数

  • service(必需):服务标识符
  • ticket(必需):服务票据
  • renew(可选):要求票据必须来自主凭证

响应格式

yes<LF>
username<LF>

no<LF>
<LF>

2. /serviceValidate(CAS 2.0)

增强的票据验证接口,支持XML响应和代理授权。

参数

  • service(必需):服务标识符
  • ticket(必需):服务票据
  • pgtUrl(可选):代理回调URL
  • renew(可选):要求票据必须来自主凭证

响应格式: 成功时返回包含用户信息和代理授权票据的XML,失败时返回错误信息的XML。

错误代码

  • INVALID_REQUEST
  • INVALID_TICKET
  • INVALID_SERVICE
  • INTERNAL_ERROR

3. /proxyValidate(CAS 2.0)

支持代理票据验证的接口。

参数和响应格式与/serviceValidate类似,但能处理代理票据。

代理机制

代理回调流程

  1. 服务在验证时提供pgtUrl参数(必须是HTTPS)
  2. CAS验证SSL证书有效性
  3. CAS通过GET请求回调pgtUrl,传递pgtId和pgtIou
  4. 服务接收回调并关联票据信息

代理票据获取

使用/proxy接口通过代理授权票据获取代理票据。

票据类型详解

  1. 服务票据(ST):一次性使用的短期票据
  2. 票据授权票据(TGT):长期会话票据
  3. 代理授权票据(PGT):用于获取代理票据
  4. 代理票据(PT):用于代理认证
  5. 登录票据(LT):防止CSRF攻击

安全注意事项

  1. 所有敏感通信应使用HTTPS
  2. 票据应有合理的有效期
  3. 代理回调必须验证SSL证书
  4. 登录表单应包含防CSRF机制

最佳实践

  1. 服务验证时应检查票据与服务的匹配
  2. 合理设置票据有效期平衡安全与用户体验
  3. 实现适当的错误处理和日志记录
  4. 考虑使用CAS客户端库简化集成

通过深入理解CAS 2.0协议规范,开发者可以更好地实现和维护基于Apereo CAS的单点登录系统,确保安全可靠的认证流程。

登录后查看全文
热门项目推荐
相关项目推荐