Skip to content

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 流程图

详细步骤 ​

  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 发起验证请求,携带 Service 和 ST 参数。

  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 集成的遗留系统迁移

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

竹云IDaaS开放平台