在微服务架构中,JWT令牌的认证和验证应该由1个服务负责还是?

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

我正在考虑微服务架构的设计,为了安全起见,我正在考虑 AuthenticationMicroservice 它将负责生成新的 jwt 令牌,然后还有一个 spring 云网关,我的疑问是,如果我们想保持单一责任原则,网关应该接收请求并将其发送到 AuthenticationMicroservice,以便它可以检查 jwt 令牌是否有效??

或者在我们的网关中拥有一个具有令牌验证功能的 JwtUtils 类是否可以,这样我们就不必为每个请求都去 AuthenticationService 只是为了检查令牌是否有效

我认为我们可以采用 JwtUtils 方法并且仍然不违反单一责任原则

spring-boot security jwt microservices gateway
1个回答
0
投票

通常如果您使用 JWT 令牌而不是不透明令牌。 JWT 令牌应在资源服务器中进行评估。重要的是,任何依赖 JWT 令牌的系统都必须正确验证它,例如签名和相关声明,如

aud
声明等。

也就是说,除非您重新发明轮子,否则它不应该是身份验证微服务,而是应该生成 ID 令牌的 OpenID Connect 服务器。对于授权,它可以是返回传递授权信息的访问令牌的同一 OpenID Connect 服务器,或者来自 OpenID Connect 服务器的令牌可以在 OAuth2 授权服务器(安全令牌服务)处交换为传递要发送到的授权信息的访问令牌。下游资源服务器。如果资源服务器需要资源所有者身份,这通常在访问令牌的

sub
声明中传达。

有关该主题的好读物是 NIST 特别出版物 800-204 Security Strategies for 基于微服务的应用系统

© www.soinside.com 2019 - 2024. All rights reserved.