文章目录
前言
假如:存在多个业务系统,每个业务系统在进入前需要登录鉴权,然而每个系统都要实现权限校验的话就会存在多套用户数据不易记、多系统权限认证代码重复开发以及资源管理复杂的缺点,如何解决这些问题?
一、CAS提供SSO解决方案
CAS(Central Authentication Service—中央认证服务):使用CAS提供一种可靠的SSO(Single Sign On单点登录)解决方案,一个认证服务,一套用户数据,可实现多个用户在多个系统的权限认证,也是很多企业实现单点登录的解决方案
二、CAS工作流程及原理
CAS基本协议流程(认证步骤):
1、访问目标服务:用户向浏览器发起对系统发起访问,目标系统客户端对用户鉴权,鉴权失败重定向服务;
2、重定向服务:访问地址重定向为认证服务CAS服务器地址,页面重定向到登录页(http:casurl?service=destUrl);
3、用户认证:登录向CAS发起认证请求;
4、发放票据:认证成功,CAS生成票据(ticket);
5、验证票据:验证ticket的合法性(http:casurl?ticket=ticket);
6、返回用户信息和令牌:验证成功,返回username、token等
三、实现步骤
1、后台认证服务作请求拦截处理,实现用户权限验证;
2、前端配置SSO文件,添加各服务地址;
3、前端路由实现服务重定向和鉴权逻辑;
4、前端CAS认证成功,向后台发起token/用户验证;
5、前端向统一菜单服务发起请求获取菜单
四、注销登录
1、应用除结束本地局部会话
2、通知认证中心结束全局会话
3、子系统清除销毁局部会话
总结
实现过程中静态资源配置不对,导致子系统对用户的鉴权失败,一直向CAS发起请求生成票据。
简简单单记录一下自己对CAS实现单点登录的理解,因为是集成单点登录功能所以蛮简单的,后续深入了解一下ticket票据、看看CAS中央认证服务怎么搭建