SpringBoot应用如何以优雅的方式对接老旧SSO实现单点登录逻辑
Posted 太空眼睛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot应用如何以优雅的方式对接老旧SSO实现单点登录逻辑相关的知识,希望对你有一定的参考价值。
目录
背景介绍
我们现在开发WEB应用最流行的框架就是SpringBoot,开发好的应用程序经常要接入企业内部的SSO系统,因为现在企业里面基本上都有自己的一套统一认证服务,企业开发的各个业务系统都对接这个统一认证服务,那么就可以实现企业内部的单点登录了。
统一认证服务经常也叫做SSO,有些SSO是很久以前开发的比较老旧,接入的方式可能也是利用浏览器的Session和Cookie来实现。但是现在流行前后端分离,并且随着JWT的发展,前后端的交互更多喜欢采用JWT方式进行认证,JWT更加灵活,所以很受欢迎。
那么,有没有办法在对接老旧的基于Session和Cookie方式的单点登录时,可以以更优雅的方式采用JWT方式进行实现呢?答案是肯定的。
本文前端使用front表示,后端使用back表示,统一认证服务使用sso表示。
设计思想
登录前的时序图
登录后的时序图
back内部认证逻辑的设计
身份认证主要由2个Filter完成,一个处理登录逻辑的LoginFilter,一个处理JWT校验的JwtFilter,接下来分别讲讲两个Filter的内部流程设计