使用CAS 标准时,首先是由 CAS Client 发起, CAS Client 会重定向到 CAS Server(由 IDaaS 充当)进行登录,由 CAS Server 进行账户校验且多个 CAS Client 之间可以共享登录的 session ,Server 和 Client 是一对多的关系;
原理和协议
从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client 。 CAS Server 需要独立部署,主要负责对用户的认证工作; CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。
下图是标准 CAS 最基本的协议过程:

CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。对于访问受保护资源的每个 Web 请求, CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket。如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的 CAS Server 登录地址,并传递 Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。
用户在上图流程中的第 3 步输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的 Service Ticket,并缓存以待将来验证。之后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS Server 进行身份核实,以确保 Service Ticket 的合法性。
在 IDaaS 中, CAS (标准)应用模板实现了标准的 CAS 流程。它充当一个 CAS Server的角色。当 CAS Cient 决定使用IDaaS作为 CAS Server 时。在登录认证时需要使用 IDaaS 系统中公司的主账号,密码进行认证。
IDaaS 中添加 CAS (标准)应用
- 以IT管理员身份登录 IDaaS ,点击添加应用。找到 CAS (标准),点击 添加应用
- 配置CAS 应用
CAS Client 也就是业务系统需要提供两个参数:
ServiceNames:CAS Client 发起认证的URL地址。如有您有多个 CAS Client,直接换行添加即可。说明 如果您的CAS Client 在内网,经过反向代理到外网。如果您的ServiceName参数值是自动获取的,有可能获取到的ServiceName值是内网的 IP 地址,需要您将ServiceName参数值写成固定的URL地址。TargetUrl:IDaaS发起单点登录地址。
- 点开应用详情,主要注意 CAS Login URL 和 CAS Server URL Prefix 两个参数以便接下来在 CAS Client里面配置使用。
在 CAS Client 中使用 CAS(标准)应用作为 CAS Server
修改 CAS Client 的配置信息,一般是修改 web.xml 文件。
1、修改 casServerLoginUrl 参数值,修改为 IDaaS 中创建的 CAS 应用的 CAS Login URL 值。

2、修改 casServerUrlPrefix 参数值,修改为 IDaaS 中创建的 CAS 应用的 CAS validation URL Prefix 值。
