我发现了类似的问题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/