本地守护程序应用程序无法调用受保护的 ASP.Net Core API(403 错误)

问题描述 投票:0回答:1

我开发了一个本地工作版本的守护程序应用程序以保护API代码示例。 API 中的控制器受应用角色保护

MyAppReadAll

如果我在 API 的服务主体中启用用户登录,我可以从本地运行的守护进程 ASP.Net Core 控制台应用程序调用本地运行的 .NET 8.0 API,并获得预期的结果。我一定在设置中做了正确的事情,因为 API 收到的令牌具有正确的声明,包括应用程序角色。

本地测试后,我将 API 发布到应用服务,包括我们的 API 管理器 (APIM) 中的 API。当尝试访问 API 时,我得到两个不同的响应

  1. 从 APIM 开发人员门户测试控制台调用时收到 401.71 错误“未经授权。访问令牌丢失或无效。”
  2. 从本地守护程序应用程序调用时收到 403.76 错误。

在应用服务的“可用性和性能”选项卡中,我可以看到这两个错误都是由应用服务中的

FrontEnd
负载均衡器返回的。我认为这意味着请求永远不会到达网络工作者。

我在 APIM 中设置了一个 OAuth 服务器,它发送了带有错误

aud
声明的令牌,因此 401 是预期的。关于使用本地守护程序应用程序的 403 我没有任何线索。谁能提供一些关于这个问题的见解?

API App Service的网络是公开的,没有访问限制。

azure asp.net-core oauth-2.0
1个回答
0
投票

从本地控制台应用程序调用 API 时出现 403 错误的原因是应用程序服务启用了身份验证 (EasyAuth)。我们按惯例启用了 EasyAuth,但没有理解与身份平台的引入相结合的含义。我从这个GitHub问题评论

中得到了线索

禁用 EasyAuth 解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.