「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战」
CAS
CAS(Central Authentication Service)一个针对Web应用的单点登录框架。官方文档
CAS由CAS Server 和 CAS Client组成。
工作原理图:
CAS实现单点登录原理
单点登录:SSO(Single Sign On)
如图所示:
流程如下:
浏览器第一次访问系统A
- 系统A未登录,获取票据信息,票据信息为空
- 重定向至认证中心,票据为空,进入认证中心登录界面
- 认证中心登录成功,返回票据并重定向只系统A
- 系统A进行登录检查,未登录,凭借票据向认证中心验证换取用户信息
- 系统A登录成功
浏览器第一次访问系统B
- 系统B未登录,获取票据信息,票据信息为空
- 重定向至认证中心
- 认证中心已登录,返回票据信息
- 系统B进行登录检查,未登录,凭借票据向认证中心验证换取用户信息
- 系统B登录成功
后续访问系统A或B
当用户第一次登录认证中心后,便在用户和认证中心间建立了全局会话。如果后续每次访问都去认证中心检测是否登录,效率很低。可以在应用系统和浏览器间建立局部会话,局部会话保存了登录状态,用户访问系统应用时,如果局部会话存在,即已登录;如果局部会话不存在,去认证中心判断全局会话是否存在,进行上述流程。
局部会话依附于全局会话,如果全局会话消失,局部会话也会消失。
登出
用户在系统A登出后那么其他系统也应该是登出状态。
应用系统A需要结束局部会话,通知认证中心用户登出,认证中心收到通知后,结束全局会话,并告知其他应用系统,结束登出用户的所有局部会话。