使用 Azure Oauth2 登录并访问安全后端 API 的客户端应用程序,该后端 API 访问另一个安全 API

问题描述 投票:0回答:1

我目前正在努力处理一些我希望通过 Azure 登录进行保护的 Web 应用程序。这些应用程序作为 Azure Web Apps 在专用 VNET 和 VPN 中运行,通过隧道连接到我们的本地网络。仅允许我们目录中的用户登录该应用程序。大多数应用程序使用多个不同的受保护后端 API。一些后端 API 可能还需要向其他 API 发出请求。

对于示例客户端应用程序,我使用了以下配置:

  • 客户端应用程序已通过 Azure 应用程序注册进行注册
  • 后端 API 使用自己的 Azure 应用程序注册进行注册,并以默认范围名称公开为 API
  • 客户端App注册包含API权限并已给予管理员同意

现在,当用户登录应用程序时,我需要使用收到的刷新令牌和访问特定 API 的正确范围来获取令牌。如果 API 然后需要调用另一个受保护的 API,我需要以某种方式获取具有新范围的有效令牌。由于第一个 API 仅获取标头中的访问令牌,因此该 API 无法请求具有适合第二个 API 范围的新访问令牌。

我该如何解决这个问题?是否可以代表登录到顶级客户端应用程序的用户进行嵌套 API 调用,或者我是否需要代表 API 本身进行这些 API 调用?

azure oauth-2.0 token
1个回答
0
投票

可以使用代表流程:https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-on-behalf-of-flow

此流程将 API 接收的访问令牌 + API 客户端凭据交换为另一个应用程序的访问令牌。 新令牌还将包含用户的信息。

我建议使用 MSAL 等库来处理此流程,这样您就无需过多担心协议的细节。

© www.soinside.com 2019 - 2024. All rights reserved.