当我想在 Springboot 微服务中授权 REST API 调用时,最佳实践应该是什么?

问题描述 投票:0回答:1

方法1: 我正在使用 Springboot 框架进行微服务设计。 我想对我的所有微服务实施身份验证。 我计划在所有微服务之上构建一个身份验证微服务。 假设我的

Microservice-A
路径之一是
/microserviceA/get/employee

我的身份验证 MS 身份验证路径是

/authentication/validate

然后我的 get/employee 将首先路由到对 MS 进行身份验证,它将执行身份验证过程,然后在那里构造我的目标 MS 的路径,以便从身份验证进行 REST 调用。

方法2: 我将直接调用我的微服务-A 在那里,我将拦截并首先调用我的身份验证来验证令牌,一旦一切顺利,然后继续业务流程。

方法3: 在AWS中添加身份验证网关,因为这是我的云平台之一。

实现此流程的最佳实践是什么,提前致谢,如果存在除此之外的其他内容,请告诉我。这将帮助我整合流程。

spring-boot authentication microservices
1个回答
0
投票

使用 JWT Token 进行授权,并为其添加 Spring Security。

首先创建一个身份验证微服务(使用 Spring Security 和

UsernamePasswordAuthenticationToken
来对用户进行身份验证),对于路由配置,我的建议是使用
spring-cloud-starter-gateway
并添加 JWT 过滤器来验证传入请求的令牌(您可以使用
OncePerRequestFilter 进行验证) 
),然后使用
@PreAuthorize
@Secured
为特定端点创建访问权限。

微服务中 JWT 验证的依赖关系:

<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.