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

Request Access Token in Postman for Azure Function App protected by Azure AD B2C

我有一个由 Azure Active Directory B2C 租户保护的 AspNetCore 2.0 MVC 网站 API。通过遵循此 SO 发布,我已经能够使用 Postman 来测试 API 端点:(特别是,Microsoft 记录了 SpottedMahn 评论中引用的步骤: 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 应用程序已启用身份验证,使用 Azure Active Directory 登录并进行以下设置:

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

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

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

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

You do not have permission to view this directory or page.

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

啊我偶然发现了它。我通过添加邮递员 API 客户端 ID 来修复它(注意:邮递员 API 客户端 ID,而不是邮递员 App 客户端 ID)[这些引用在上面链接的 Microsoft how-to 的上下文中有意义],在 "ALLOWED TOKEN AUDIENCES" 下(在上面的屏幕截图中可见)。