我正在尝试调用Azure表单识别器(Azure认知服务的一部分)并将其传递给存储在BlobStorage中的PDF的URL。然而,我得到一个403错误,上面写着:
{"error":{"code":"Forbidden","message":"Access forbidden due to policy or other configuration.","innererror":{"code":"OutboundAccessForbidden","message":"The request contains a domain name that is not allowed by the current access control policy."}}}
我通过认知服务。net SDK调用表单识别API,并使用DefaultAzureCredential进行认证:
AnalyzeDocumentOperation operation = await _documentAnalysisClient.AnalyzeDocumentFromUriAsync(WaitUntil.Completed, "prebuilt-read", uri);
我很确定这是说有一个错误的连接从表单识别器到Azure存储,而不是从我的应用程序到表单识别器。我试着传递一个文件流,它工作了。
我正在使用Azure AD进行认证,我的表单识别器资源有一个系统分配的管理ID,我已经给出了"存储Blob读取";权限。我真的不明白错误是想传达什么,文档没有给出任何上下文,也没有任何更多的信息在错误中。我还尝试将Storage帐户开放给公共访问,没有任何限制,并将容器和blob的访问级别更改为公共。我实在想不出还有什么其他的访问策略可以阻止这个连接。
任何想法?
原来我在我的Terraform模块中设置了outbound_network_access_restricted
为true
,这导致了这个错误。