协议概述
CAS(Central Authentication Service)中央认证服务,一种独立开放指令协议,旨在为 Web 应用系统提供一种可靠的单点登录方法。
运行流程
1. CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源,对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 HTTP 请求中是否包含 Service Ticket。
2. CAS Client 发现如果没有包含 Service Ticket,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。
3. 用户输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证。
4. 之后系统自动重定向到 Service 所在地址。
5. CAS Client 在拿到 Service 和新产生的 Ticket 后,调用 CAS Server 提供的接口对 Service Ticket 进行核实,以确保 Service Ticket 的合法性。
6. Service Ticket 核实通过后,CAS Server 返回对应的登录用户身份。
在该协议中,所有交互均应采用 SSL 协议,确保安全性。
数字身份管控平台(员工版)功能概述
生成 Service Ticket
生成随机字符串作为 Service Ticket,并通过重定向的方式将 Service Ticket 返回应用系统。
验证 Service Ticket
提供后端接口,对上送的 Service Ticket 进行验证,确定该 Service Ticket 是否由 数字身份管控平台(员工版)所颁发。验证成功后,返回登录用户身份,以 XML 格式返回,
xmlns:cas="http://www.yale.edu/tp/cas"
。
登录身份具体取值为:当登录用户没有绑定应用账号(映射关系)时,用户身份取值为登录用户名(userName)。
当登录用户绑定了唯一一个应用账号(映射关系)时,用户身份取值为应用账号名(accountName)。
当登录用户绑定了多个应用账号(映射关系)时,登录成功后不会跳转到应用系统,而是跳转到门户应用列表页面,用户选择指定的登录账号后,单击应用图标进行登录,如下: