Jwt Quarkus:如何在微服务之间进行身份验证?

Jwt Quarkus:如何在微服务之间进行身份验证?,jwt,microservices,openid,quarkus,Jwt,Microservices,Openid,Quarkus,我们需要在两个Quarkus微服务之间进行一些服务对服务通信。基础设施如下: 身份验证由另一个IDP应用程序完成 服务1: 实现主域逻辑 主要由前端使用 使用经过身份验证的用户(openID,JWT)调用API 端点由@RolesAllowed(“XY”) 服务2: 应使用来自服务1的安全API 通过身份验证的用户不会调用服务1 API(由任务计划程序执行,而不是前端执行) 我的主要问题是:如果直接从前端调用服务2,那么解决方案就是轻松地将JWT令牌从服务2传递到服务1。但由于服务2不是

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

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

服务1:

  • 实现主域逻辑
  • 主要由前端使用
  • 使用经过身份验证的用户(openID,JWT)调用API
  • 端点由
    @RolesAllowed(“XY”)
服务2:

  • 应使用来自服务1的安全API
  • 通过身份验证的用户不会调用服务1 API(由任务计划程序执行,而不是前端执行)
我的主要问题是:如果直接从前端调用服务2,那么解决方案就是轻松地将JWT令牌从服务2传递到服务1。但由于服务2不是在用户上下文中调用的,所以我没有可以传递的JWT令牌


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

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

另一种方法是使用委托令牌,请参见以下链接