Quarkus:如何在微服务之间进行身份验证?
Posted
技术标签:
【中文标题】Quarkus:如何在微服务之间进行身份验证?【英文标题】:Quarkus: how to authenticate between microservices? 【发布时间】: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 进行身份验证?
【问题讨论】:
我的回答对您有帮助吗?或者你想让我在我的答案中添加一些东西吗?否则,如果您愿意,请随时接受我的回答。 【参考方案1】:您可以使用服务 1 和服务 2 之间的客户端凭据流,以便它们可以安全地进行通信,而无需任何用户参与。这意味着即使没有用户在场,他们也可以进行通信。
另一种方法是使用委托令牌,请参阅这些链接
https://auth0.com/docs/tokens/delegation-tokens https://www.scottbrady91.com/OAuth/Delegation-Patterns-for-OAuth-20 enter link description here【讨论】:
以上是关于Quarkus:如何在微服务之间进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章