【问题标题】:Microservice Authentication and Authorization using JWT使用 JWT 的微服务认证和授权
【发布时间】:2020-11-29 05:50:27
【问题描述】:

我创建了两个微服务让 A 和 B。每个微服务都有自己的数据库和用于存储用户名和密码的用户表。我正在维护相同的签名密钥以在所有微服务中生成密钥。

微服务的用户可以轻松访问其微服务的安全 API。但是假设我想访问 B 微服务的安全 api,那么它会在使用 UserDetailsS​​ervice 在 Spring 安全上下文中设置身份验证对象时给我错误,因为 B 微服务用户表中不存在 A 微服务用户。

如何使用 JWT Token 维护微服务之间的安全 api 通信?

【问题讨论】:

  • '每个微服务都有自己的数据库和用于存储用户名和密码的用户表。 ' - 这是错误的,您应该拥有存储凭据的单一身份验证服务。所有其他服务只共享 JWT 签名密钥来验证 JWT 令牌。通常整个用户配置文件都存储在 JWT 令牌中,因此不需要对数据库或身份验证服务器的任何其他请求。
  • 谢谢@AlexChernyshev...

标签: java spring-boot spring-security jwt microservices


【解决方案1】:

在微服务架构中,我们需要有一个单独的微服务 Auth Service。所有请求都将在 API Gateway 上针对此 Auth 服务进行验证。 Auth 服务将为有效请求返回 JWT,并将其传递给所有微服务。

您可以参考以下内容以获得更好的理解:

https://microservices.io/patterns/security/access-token.html https://microservices.io/patterns/apigateway.html

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 2016-07-17
    • 1970-01-01
    • 2019-06-26
    • 2018-09-03
    • 2018-07-06
    • 2021-11-08
    • 2017-09-11
    • 2020-10-11
    相关资源
    最近更新 更多