CAS探索(一)-CAS实现SSO单点登录原理

「这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战

CAS

CAS(Central Authentication Service)一个针对Web应用的单点登录框架。官方文档

CAS由CAS ServerCAS Client组成。

工作原理图:

未命名文件 (14).png

CAS实现单点登录原理

单点登录:SSO(Single Sign On)

如图所示:

未命名文件 (16).png

流程如下:

浏览器第一次访问系统A

  1. 系统A未登录,获取票据信息,票据信息为空
  2. 重定向至认证中心,票据为空,进入认证中心登录界面
  3. 认证中心登录成功,返回票据并重定向只系统A
  4. 系统A进行登录检查,未登录,凭借票据向认证中心验证换取用户信息
  5. 系统A登录成功

浏览器第一次访问系统B

扫描二维码关注公众号,回复: 13171293 查看本文章
  1. 系统B未登录,获取票据信息,票据信息为空
  2. 重定向至认证中心
  3. 认证中心已登录,返回票据信息
  4. 系统B进行登录检查,未登录,凭借票据向认证中心验证换取用户信息
  5. 系统B登录成功

后续访问系统A或B

当用户第一次登录认证中心后,便在用户和认证中心间建立了全局会话。如果后续每次访问都去认证中心检测是否登录,效率很低。可以在应用系统和浏览器间建立局部会话,局部会话保存了登录状态,用户访问系统应用时,如果局部会话存在,即已登录;如果局部会话不存在,去认证中心判断全局会话是否存在,进行上述流程。

局部会话依附于全局会话,如果全局会话消失,局部会话也会消失。

登出

用户在系统A登出后那么其他系统也应该是登出状态。

应用系统A需要结束局部会话,通知认证中心用户登出,认证中心收到通知后,结束全局会话,并告知其他应用系统,结束登出用户的所有局部会话。

猜你喜欢

转载自juejin.im/post/7031012525630046215