azure - 如何启用从 Azure APIM 到具有专用终结点的应用服务的请求

标签 azure azure-web-app-service azure-api-management azure-virtual-network azure-private-link

我发现了类似的问题here但没有任何解决办法。所以就这样:

我正在尝试使用以下基础设施设置 API:

AGW -> APIM(具有自定义域)-> 具有 API 的 Web 应用程序(启用专用端点)。 所有这些资源都位于单独的 NSG 中,但位于同一个 VNET 中。

但是,当我尝试调用 API 时,我不断收到未经授权的 401 错误(见下文)。请求到达 APIM,但在“转发请求”时失败。从应用程序中删除专用端点时,它确实有效。

我还使用简单的 Azure Functions 进行了尝试,得到了相同的结果。在启用专用端点时发出请求,我得到 500 超时,没有它工作正常。

我有

  • 删除了所有可能的 NSG 限制
  • 设置私有(private) DNS(解析为私有(private) IP、FQDN A 记录 privatelink.azurewebsites.net -> azurewebsites.net)
  • 启用了对应用服务中所有 IP 的访问并启用了公共(public)访问以进行测试

但还是没有效果。

所以问题是,我做错了什么吗?是否有可能从 APIM 调用具有专用端点的 Web 应用程序?

响应:

forward-request (69.473 ms)
{
    "response": {
        "status": {
            "code": 401,
            "reason": "Unauthorized"
        },
        "headers": [
            {
                "name": "Content-Length",
                "value": "0"
            },
            {
                "name": "Date",
                "value": "Fri, 21 Oct 2022 11:33:00 GMT"
            },
            {
                "name": "WWW-Authenticate",
                "value": "Basic realm=\"site\""
            }
        ]
    }
}

最佳答案

当然,经过几个小时的努力,我在发布这个问题后立即找到了解决方案。

由于 Bicep 文件中存在错误,应用服务中的“客户端证书模式”被设置为“需要”。将其设置为“忽略”(暂时)可以使应用程序可访问。

关于azure - 如何启用从 Azure APIM 到具有专用终结点的应用服务的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74153036/

相关文章:

azure - 应用程序注册 - 即使添加权限后用户也无法访问应用程序,出现错误需要管理员批准

c# - IDocumentQuery 中 documentdb linq 查询中的 OrderBy

azure - Azure 可用性测试和运行状况测试有什么区别

azure - 使用 ARM 模板在 Azure APIM 上部署 SOAP 直通

azure - 允许 Web API 输入GET 请求处理程序接受具有角色或范围的 jwt

java - 我们可以用JAVA触发队列来编写Azure Webjobs吗

node.js - 我无法更改 Azure 中的 Node 版本

azure-web-app-service - 我应该选择 Azure 应用程序网关还是负载均衡器、前门还是流量管理器?

azure - 如何在 Linux Azure 应用服务上安装数据包

azure api 管理器 terraform 查询