CAS单点登录

本文详细介绍了CAS单点登录的流程,包括用户访问、CAS服务端的认证过程,以及登录时序图的解析。同时,讨论了集成开发中遇到的Session过期、TGT过期问题和前后端分离场景下的处理策略。

背景

随着系统业务量的不断增长,单个系统的代码量越来越庞大,内部耦合越来越强,后期维护及扩展相当困难;
一般在这种情况下,我们都会采取对系统进行拆分,形成多个子系统,分开部署;
由于系统的拆分,我们又需要解决单点登录的问题。

CAS单点登录介绍

单点登录,指的是在多个应用系统中,用户只需要进行一次登录,就可以认证访问所有组件系统。单点登录有很多种实现方案,本案例总结主要关注Apereo的CAS实现方案,目前主要是基于该方案实现单点登录。
CAS单点登录流程
先来看下整体的流程图,了解下CAS单点登录整体是如何实现的:

在这里插入图片描述

  • 步骤1、用户访问集成了CAS客户端的子系统EPS;
  • 步骤2、CAS客户端的AuthenticationFilter过滤器在请求参数中没找到ST票据也没在Session中找到用户信息,返回302重定向,重定向的url上会带上请求的服务,如:http://localhost:8080/loginPage?service=http%3A%2F%2Flocalhost%3A8080%2Fhome,其中service后面即为请求的服务信息,后续各个步骤都会涉及到该服务,最终返回给用户的信息也是该服务所请求的内容;
  • 步骤3、302重定向到CAS服务端登录服务;
  • 步骤4、CAS服务端检查Cookie中的TGC,不存在或错误,返回登录页,正是因为这一步才实现了跨系统单点登录功能(如果TGC有效,则会直接签发ST票据,带上ST参数重定向到访问的服务直接到步骤7);
  • 步骤5、用户在CAS服务端的登录页上输入登录认证信息,点击提交;
  • 步骤6、CAS服务端认证通过后,会创建TGT(可以理解成全局Session),其中TGT的id即TGC会设置在response heade
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值