本文对 CAS(Central Authentication Service) 流程作个梳理。
中央认证服务(CAS)是是单点登录(SSO)的一种方案。使用它后所有应用可以公用一套登录系统, 在任意一个应用中进行登录后, 其它应用便无须再次登录。
CAS 分为 CAS Client 和 CAS Server, 它们分工如下:
CAS Client: 处理对受保护方应用的访问请求 (可以理解成网关项目); CAS Server: 处理账号、密码的认证, 需要独立部署 (部署在后端那边);
下面以 Batman 为例对 CAS(Central Authentication Service) 流程作个梳理。
https://cas.nidianwo.com/login?service=http%3A%2F%2Fbatman.dianwoda.cn%2F
;登录了 batman 以后, 再在浏览器输入 http://newhawkeye.dianwoda.com 不用再次登录的原因?
在 CAS Server 中进行了判断, 如果已经登录过, 则省略了步骤 3。
在 batman 登录了 CAS 系统以后, 为什么还要
fetch https://cas.nidianwo.com/login?service=http://batman-gateway.dianwoda.com/auth/cas
应该是网关的搭建原因。batman 的 CAS Client 在后端那里, batman-gateway 作为一个 node 项目相当于又作为了一个 CAS Client。在已经登录 CAS 的基础上, 访问 https://cas.nidianwo.com/login?service=http://batman-gateway.dianwoda.com/auth/cas
相当于执行上图的 2、4、5 步骤(省略了步骤 3)