【问题标题】:Quarkus: how to authenticate between microservices?Quarkus:如何在微服务之间进行身份验证?
【发布时间】:2021-01-10 05:21:31
【问题描述】:

我们有一个需求,我们需要在两个 Quarkus 微服务之间进行一些服务到服务的通信。基础设施如下:

身份验证由另一个 IDP 应用程序完成。

服务 1:

  • 实现主域逻辑
  • 主要由前端使用
  • API 使用经过身份验证的用户(openID、JWT)调用
  • 端点使用@RolesAllowed("XY") 保护

服务 2:

  • 应该使用来自服务 1 的安全 API
  • 服务 1 API 不会被经过身份验证的用户调用(由任务调度程序执行,而不是前端执行)

我的主要问题:如果直接从前端调用服务 2,解决方案是轻松地将 JWT 令牌从服务 2 传递到服务 1。但是由于服务 2 不是在用户的上下文中调用的,所以我没有我可以通过的 JWT 令牌。

在这种情况下,Service 2 应该如何向 Service 1 进行身份验证?

【问题讨论】:

  • 我的回答对您有帮助吗?或者你想让我在我的答案中添加一些东西吗?否则,如果您愿意,请随时接受我的回答。

标签: jwt microservices openid quarkus


【解决方案1】:

您可以使用服务 1 和服务 2 之间的客户端凭据流,以便它们可以安全地进行通信,而无需任何用户参与。这意味着即使没有用户在场,他们也可以进行通信。

另一种方法是使用委托令牌,请参阅这些链接

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2020-04-05
    • 2019-08-02
    • 2021-04-26
    • 2018-05-04
    • 1970-01-01
    • 2020-06-12
    相关资源
    最近更新 更多