Configuring-Proxy-Authentication
代理认证
默认支持CAS V1及以上的协议,它完全是一个客户端需要考虑的问题
为了避免线上运行时的安全问题,建议禁用代理认证组件
用例
一个最常用的代理认证用例是,获取一个后端服务的ticket;场景:
- 用户在使用应用A(受CAS保护)
- 应用A需要调用应用S来生产数据
- 应用S也受CAS保护
因为A与S是直接在后端联系,S无法判断是否有SSO session存在。
这种场景,A需要进行代理来获取S的一个代理ticket。
代理ticket传递到S的相关端口,然后S通过CAS对其进行检索和验证。
跟踪整个路由过程,应该是:
- 浏览器导航到 A
- A 重定向到 CAS
- CAS认证,重定向到 A,同时附带一个ST
- A 校验ST,然后请求一个PGT(proxy granted ticket)
- CAS 成功校验 ST,并产生一个 PGT
- A 向CAS请求一个针对 S 的 PT(proxy ticket),同时A要在请求中提供PGT
- CAS提供一个针对 S 的 PT
- A 访问 S,并提供 PT
- S 通过 CAS 来验证 PT
- CAS 验证,返回成功
- S 收到验证成功的响应,开始为 A 生产数据
- A 接收到数据,并成功响应浏览器
流程图如下: