架构Spring Cloud框架

支持Nacos 2.1.0!微服务权限终极解决方案,Spring

2022-08-02  本文已影响0人  老程不秃

实现思路

首先还是来聊聊这套解决方案的实现思路,我们理想的解决方案应该是这样的,认证服务负责统一认证,网关服务负责校验认证和鉴权,其他API服务则负责处理自己的业务逻辑。安全相关的逻辑只存在于认证服务和网关服务中,其他服务只是单纯地提供服务而没有任何安全相关逻辑。

这套解决方案中相关服务的划分如下:

升级注意点

<properties>    <spring-boot.version>2.7.0</spring-boot.version>    <spring-cloud.version>2021.0.3</spring-cloud.version>    <spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version></properties>
image.png
<plugin>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-maven-plugin</artifactId>    <version>${spring-boot.version}</version></plugin>
<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>
{    "timestamp": "2022-06-28T02:36:31.680+00:00",    "path": "/auth/oauth/token",    "status": 503,    "error": "Service Unavailable",    "requestId": "c480cefa-1"}
<dependencies>    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-starter-oauth2</artifactId>        <version>2.2.5.RELEASE</version>    </dependency>    <dependency>        <groupId>com.nimbusds</groupId>        <artifactId>nimbus-jose-jwt</artifactId>        <version>9.23</version>    </dependency></dependencies>
image.png
startup.cmd -m standalone
image.png

使用

本文仅作为微服务权限终极解决方案,Spring Cloud Gateway + Oauth2 实现统一认证和鉴权! 升级版本的补充,具体代码实现可以参考该文,下面演示下该解决方案中的统一认证和鉴权功能。

image.png image.png image.png image.png image.png

总结

在微服务系统中实现权限功能时,我们不应该把重复的权限校验功能集成到每个独立的API服务中去,而应该在网关做统一处理,然后通过认证中心去统一认证,这样才是优雅微服务权限解决方案!

项目源码地址

https://github.com/macrozheng/springcloud-learning/tree/master/micro-oauth2

来源:
https://mp.weixin.qq.com/s/x7yc0B_yW9PEm_Dk5XiiuQ

上一篇下一篇

猜你喜欢

热点阅读