最近经常有小伙伴问我关于在微服务中使用Oauth2的问题,其实之前已经写过一篇相关文章了。这次抽空把之前文章中的Demo给升级了,支持了最新版的Spring Cloud和Nacos。今天再来介绍下这套微服务权限终极解决方案,希望对大家有所帮助!
SpringCloud实战电商项目mall-swarm
(8.8k+star)地址:https://github.com/macrozheng/mall-swarm
实现思路
首先还是来聊聊这套解决方案的实现思路,我们理想的解决方案应该是这样的,认证服务负责统一认证,网关服务负责校验认证和鉴权,其他API服务则负责处理自己的业务逻辑。安全相关的逻辑只存在于认证服务和网关服务中,其他服务只是单纯地提供服务而没有任何安全相关逻辑。
这套解决方案中相关服务的划分如下:
micro-oauth2-gateway
:网关服务,负责请求转发和鉴权功能,整合Spring Security+Oauth2;micro-oauth2-auth
:认证服务,负责对登录用户进行认证,整合Spring Security+Oauth2;micro-oauth2-api
:API服务,受网关服务的保护,用户鉴权通过后可以访问该服务,不整合Spring Security+Oauth2。