本地 Web API 2 授权不使用 Azure 身份令牌

Local Web API 2 Authorize not working with Azure identity token

我有一个项目正在使用 SSO 并从 Azure AD 返回访问和身份令牌。我在重定向时很好地取回了令牌,以及登录的角色分配,但是当尝试访问 API 端点时,我在本地计算机上收到 HTTP 401,但它在测试服务器上工作得很好。

我的端点有 [Authorize] 前缀,我尝试过使用和不使用角色分配访问端点。我正在使用网络配置转换,我已经仔细检查了允许来源的 URL 以确保它们是正确的。

这只会让尝试调试变得非常困难,因为我必须将前端或后端推送到测试服务器,而不是能够在我的本地计算机上工作。

如果是角色问题,您将收到 403 禁止状态代码。

确保本地检索的访问令牌 aud claim matches the API uri id,通常遵循 api://{app id} 格式。如果不是这种情况,那么您在本地定位的是不同的 API.

这最终成为我的 web.config 拒绝授权标签工作的东西。我最终从基础 web.config 开始,并读取了我需要的选项,在这样做之后,调用按预期工作。这个故事的寓意,如果您 运行 遇到同样的问题,请检查您的 web.config。