CAS
什么是 CAS
CAS(Central Authentication Service,中央认证服务)是一种基于 HTTP 的开源单点登录协议。它要求协议中的每个组件(CAS Server、CAS Client)都可通过特定的 URI 访问。
竹云 IDaaS 支持将自身作为 CAS Server(身份认证提供方),使第三方应用(CAS Client)通过 CAS 协议读取用户账号数据,实现单点登录。
我们支持 CAS 1.0、CAS 2.0、CAS 3.0 三种协议版本。
CAS 协议中的两个核心角色
| 角色 | 说明 | 示例 |
|---|---|---|
| CAS Server | 身份认证提供方,负责验证用户身份并签发票据 | 竹云 IDaaS 认证服务 |
| CAS Client | 资源提供方,依赖 CAS Server 完成用户认证 | 第三方业务应用 |
两个角色通过用户浏览器进行信息交换。
CAS 单点登录流程

详细步骤
用户访问应用
用户尝试访问 CAS Client 提供的应用资源。
检查认证状态
CAS Client 检查当前 HTTP 请求中是否包含服务票据(Service Ticket,ST):
- 如果包含 ST,进入步骤 4
- 如果不包含,说明用户尚未认证,重定向至 CAS Server,并携带
Service参数(即用户要访问的目标资源地址)
用户登录
用户在 CAS Server(竹云 IDaaS)的登录页面输入认证信息。登录成功后,CAS Server 随机生成一个唯一、不可伪造的服务票据 ST,并重定向回 CAS Client。
验证票据
CAS Client 拿到 ST 后,在后台直接向 CAS Server 发起验证请求,携带
Service和ST参数。返回认证结果
CAS Server 验证 ST 的合法性:
- 验证通过:返回包含用户信息的 XML(CAS 2.0/3.0)或纯文本(CAS 1.0)
- 验证失败:返回错误信息
访问资源
CAS Client 验证用户信息后,允许用户访问请求的资源。
CAS 版本差异
| 版本 | 票据验证返回格式 | 用户信息 |
|---|---|---|
| CAS 1.0 | 纯文本(yes/no) | 仅返回用户名 |
| CAS 2.0 | XML | 返回用户名及可选属性 |
| CAS 3.0 | XML | 返回更丰富的用户属性,支持属性释放策略 |
适用场景
CAS 协议在国内高校和政务系统中有广泛应用:
- 高校信息化:教务系统、图书馆系统、邮件系统等统一认证
- 政务系统:多个委办局应用之间的单点登录
- 传统 Web 应用:已有 CAS 集成的遗留系统迁移