首页 > 解决方案 > 代表用户从客户端应用程序的 Azure 函数与 Azure 服务交互(用户模拟)

问题描述

语境

我有一个客户端应用程序,通过 Azure Active Directory 应用程序表示,该应用程序需要代表登录到客户端应用程序的用户向 HTTP 触发器 Azure 函数发送 HTTP 请求。为了实现这一点,我遵循了https://docs.microsoft.com/en-us/azure/app-service/configure-authentication-provider-aad。这样做我可以成功地代表用户执行该功能。

目标

从这个代表用户触发的 Azure 函数中,我现在想要实现我可以代表用户与另一个 Azure 服务(比如说一个 Azure 存储帐户)进行交互。用户可以在此存储帐户上执行用户在存储帐户上的角色所允许的操作。

问题

我不明白它的工作。我尝试了如何模拟登录用户以管理其他 Azure 服务https://blog.brooksjc.com/2020/06/21/accessing-graph-api-with-an-azure-function-through-中描述的方法模拟/在这种情况下,我也没有得到它在帖子中描述的适用于 Azure 数据工厂各自的图表。例如,当我调用 .auth/me 时,我只会得到一个空数组。

问题

在这种情况下,我如何才能通过代表用户触发的 Azure 函数代表用户与存储帐户交互的目标?

谢谢

编辑

我知道 OAuth 2.0 On-Behalf-Of 流程(请参阅https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-on-behalf-of-flow)和这个工作(即,我能够验证用户,检索另一个令牌并使用这个代表用户与存储帐户进行交互)。我想要实现的类似于上面共享的用户对应用程序进行身份验证的帖子,并且这样做已经为与存储帐户的交互提供了一个令牌,因此我不必提出额外的请求到https://login.microsoftonline.com/{{tenant_id}}/oauth2/v2.0/token以使用例如客户端凭据获取该令牌。这不是关于特定代码(例如 C#),而是关于一般设置。这可能吗?

标签: authenticationazure-active-directoryazure-functionsauthorizationazure-storage

解决方案


推荐阅读