旧的Spring Security OAuth2停止维护已经有一段时间了,99%的Spring Cloud微服务项目还在使用这些旧的体系,严重青黄不接。很多同学都在寻找新的解决方案,甚至还有念念不忘密码模式的,别想了,已经凉透了。今天看到这篇文章的同学有福了,问题将在这里得到解决。
仓库地址:https://github.com/NotFound403/id-server
方案
目前这应该是Spring生态中最新的解决方案,没有之一。先看下流程,微服务无关的其它的组件这里先屏蔽了,剩下图的几个组件:
详细流程为:
- ①用户向网关请求登录或者通过网关请求资源服务器的资源。
- ②网关发现用户没有授权发起基于OAuth2授权码的OIDC流程,向授权服务器Id Server发起授权请求。
- ③授权服务器Id Server收到授权请求重定向到用户登录页面要求用户登录认证,以发起授权。
- ④用户输入用户名密码进行登录认证。
- ⑤Id Server授权服务器处理用户认证并重定向到网关约定的OAuth2 Redirect URI,这个过程属于标准的OIDC授权码流程。
- ⑥网关获得AccessToken