在 Postman 中为受 Azure AD B2C 保护的 Azure Function App 请求访问令牌

ubi*_*bie 5 azure postman azure-ad-b2c azure-functions

我有一个由 Azure Active Directory B2C 租户保护的 AspNetCore 2.0 MVC Web API。我已经能够使用 Postman 通过以下 SO 发布来测试 API 端点:在 Postman 中为 Azure AD B2C 请求访问令牌(特别是 SpottedMahn 的评论中引用的 Microsoft 记录步骤:https ://docs.microsoft.com /en-us/aspnet/core/security/authentication/azure-ad-b2c-webapi#use-postman-to-get-a-token-and-test-the-api )

现在,我正在开发上述的无服务器版本 - 该应用程序几乎相同,期望端点已由 Azure Functions 应用程序中的 Azure 函数实现

Functions App 已启用身份验证、使用 Azure Active Directory 登录以及以下设置:

在此处输入图片说明

这是我在 Azure B2C 租户中设置应用程序的方式:

在此处输入图片说明

如果我通过浏览器访问函数端点,我将成功路由到 Azure AD B2C 登录页面并可以登录,然后从 API 端点查看结果。所以我非常有信心,Azure AD B2C <-> Function App 配置都很好。

但是,我无法使用上面链接的请求访问令牌技术来获取令牌并检查 Postman 中的端点

如果我获取认证后获得的令牌(例如通过使用 fiddler 并观察返回的 id_token),并且在 Postman 中我选择 Bearer 身份验证并提供该 id_token,则 Postman 成功命中我的端点。但是,如果我按照上面链接文档中的步骤操作,我会得到“登录”弹出窗口,然后会得到一个有效的 [寻找] 令牌,但是当我单击使用令牌并运行请求时,我得到

您无权查看此目录或页面。

我真的很希望能够像使用 aspnetcore 2.0 应用程序一样从邮递员那里请求访问令牌(真的只是为了一致性,所以我不必记住很多不同的技术)。Azure Function Apps 是否可以这样做,如果可以,是否有任何线索我在上面做错了什么?

ubi*_*bie 0

啊,我偶然发现了它。我通过在“允许的令牌受众”下添加 Postman API 客户端 ID(注意:Postman API客户端 ID,而不是 Postman应用程序客户端 ID)[这些引用在上面链接的 Microsoft 操作方法的上下文中有意义] 来修复此问题“(在上面问题的屏幕截图中可见)。