我有一个由 Azure Active Directory B2C 租户保护的 AspNetCore 2.0 MVC Web API。我已经能够通过以下SO帖子使用Postman来测试API端点:Request Access Token in Postman for Azure AD B2C (特别是,SpottedMahn 的评论中引用的 Microsoft 记录的步骤: https://learn.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 端点的结果。所以我非常有信心一切都好。 Azure AD B2C <-> 函数应用配置。
但是,我无法使用上面链接的请求访问 token 技术来获取 token 并检查 Postman 中的端点
如果我获取身份验证后获得的 token (例如通过使用 fiddler 并观察返回的 id_token),并在 Postman 中选择承载身份验证并提供该 id_token,则 Postman 会成功到达我的端点。但是,如果我按照上面链接文档中的步骤操作,我确实会收到“登录”弹出窗口,然后会获得有效的[查找] token ,但是当我单击“使用 token ”并运行请求时,我会得到 p>
You do not have permission to view this directory or page.
我真的很希望能够向 postman 请求访问 token ,就像我可以使用我的 aspnetcore 2.0 应用程序一样(实际上只是为了保持一致性,所以我不必记住很多不同的技术)。 Azure Function Apps 是否可以这样做?如果可以,有什么线索说明我在上面做错了什么吗?
最佳答案
啊,我偶然发现了它。我通过添加 Postman API 客户端 ID 来修复此问题(注意: postman API 客户端 ID,而不是 postman App 客户端 ID)[这些引用在上下文中有意义上面链接的 Microsoft 操作方法],在“允许的 token 受众”下(在上面问题的屏幕截图中可见)。
关于azure - 在 Postman 中请求受 Azure AD B2C 保护的 Azure 函数应用程序的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49304238/