jwt - Quarkus:如何在微服务之间进行身份验证?
问题描述
我们有一个需求,我们需要在两个 Quarkus 微服务之间进行一些服务到服务的通信。基础设施如下:
身份验证由另一个 IDP 应用程序完成。
服务一:
- 实现主域逻辑
- 主要由前端使用
- 使用经过身份验证的用户(openID、JWT)调用 API
- 端点受到保护
@RolesAllowed("XY")
服务二:
- 应该使用来自服务 1 的安全 API
- 服务 1 API 不会被经过身份验证的用户调用(由任务调度程序而不是前端执行)
我的主要问题:如果直接从前端调用服务 2,解决方案是轻松地将 JWT 令牌从服务 2 传递到服务 1。但是由于服务 2 不是在用户的上下文中调用的,所以我不有一个我可以通过的 JWT 令牌。
在这种情况下,服务 2 应该如何与服务 1 进行身份验证?
解决方案
您可以使用服务 1 和服务 2 之间的客户端凭据流,以便它们可以安全地进行通信,而无需任何用户参与。这意味着即使没有用户在场,他们也可以进行通信。
另一种方法是使用委托令牌,请参阅这些链接
推荐阅读
- android - 如何从 Galaxy Tab A 的无法启动的 Android 操作系统中转储闪存
- javascript - 循环用于...非序列数
- perl - Perl:曾经工作的一行脚本的“修改只读值”
- ruby-on-rails - 从 select 语句中更改列的值
- python - 你如何获得嵌套循环中的数字?
- graph-algorithm - 最短路径树 (SPT) 中的最优根
- c# - 如何获取 .Net Core Web Api 默认模板的 Azure ActiveDirectory 令牌?
- xamarin.forms - 标签 TextProperty CoerceValue 委托未调用
- c++ - 问答程序在发布版本时崩溃,在调试版本中运行良好
- azure - 将 SSIS 包部署到 azure 时出错