Skip to content

CAS

什么是 CAS

CAS(Central Authentication Service,中央认证服务)是一种基于 HTTP 的开源单点登录协议。它要求协议中的每个组件(CAS Server、CAS Client)都可通过特定的 URI 访问。

竹云 IDaaS 支持将自身作为 CAS Server(身份认证提供方),使第三方应用(CAS Client)通过 CAS 协议读取用户账号数据,实现单点登录。

我们支持 CAS 1.0CAS 2.0CAS 3.0 三种协议版本。

CAS 协议中的两个核心角色

角色说明示例
CAS Server身份认证提供方,负责验证用户身份并签发票据竹云 IDaaS 认证服务
CAS Client资源提供方,依赖 CAS Server 完成用户认证第三方业务应用

两个角色通过用户浏览器进行信息交换。

CAS 单点登录流程

CAS 流程图

详细步骤

  1. 用户访问应用

    用户尝试访问 CAS Client 提供的应用资源。

  2. 检查认证状态

    CAS Client 检查当前 HTTP 请求中是否包含服务票据(Service Ticket,ST)

    • 如果包含 ST,进入步骤 4
    • 如果不包含,说明用户尚未认证,重定向至 CAS Server,并携带 Service 参数(即用户要访问的目标资源地址)
  3. 用户登录

    用户在 CAS Server(竹云 IDaaS)的登录页面输入认证信息。登录成功后,CAS Server 随机生成一个唯一、不可伪造的服务票据 ST,并重定向回 CAS Client。

  4. 验证票据

    CAS Client 拿到 ST 后,在后台直接向 CAS Server 发起验证请求,携带 ServiceST 参数。

  5. 返回认证结果

    CAS Server 验证 ST 的合法性:

    • 验证通过:返回包含用户信息的 XML(CAS 2.0/3.0)或纯文本(CAS 1.0)
    • 验证失败:返回错误信息
  6. 访问资源

    CAS Client 验证用户信息后,允许用户访问请求的资源。

CAS 版本差异

版本票据验证返回格式用户信息
CAS 1.0纯文本(yes/no)仅返回用户名
CAS 2.0XML返回用户名及可选属性
CAS 3.0XML返回更丰富的用户属性,支持属性释放策略

适用场景

CAS 协议在国内高校和政务系统中有广泛应用:

  • 高校信息化:教务系统、图书馆系统、邮件系统等统一认证
  • 政务系统:多个委办局应用之间的单点登录
  • 传统 Web 应用:已有 CAS 集成的遗留系统迁移

对于新建项目,建议优先考虑 OIDCSAML 协议,以获得更好的生态支持和更丰富的功能。

竹云IDaaS开放平台