2

Azure API 应用程序文档简要介绍了保护 API 应用程序的三种方法。其中之一是内部可访问性设置:“内部 - 仅允许同一资源组中的其他 API 应用或 Web 应用调用 API 应用。”</p>

我在同一资源组和托管计划中创建了另一个 Azure API 应用程序。但是,当我尝试从 Web 应用连接到内部 API 应用时,出现 HTTP 403 授权失败并显示以下错误消息:
“服务权限设置为内部,但此请求是外部的。”</p>

有没有人能够使用同一资源组中 API 应用程序之间的内部设置?

4

1 回答 1

2

我们将很快记录这一点。与此同时,您需要做的是以下事情。您需要安装 nuget 包 Microsoft.Azure.AppService.ApiApps.Service。然后,创建一个委托处理程序,如下所示:

class InternalCredentialHandler : DelegatingHandler
{
    protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
    {
        Runtime.FromAppSettings(request).SignHttpRequest(request);
        return base.SendAsync(request, cancellationToken);
    }
}

然后,当您使用 HttpClient 或生成的客户端连接到另一个内部 API 时,只需传入委托处理程序即可。例如:

MySampleClient client = new MySampleClient(new DelegatingHandler[] { new InternalCredentialHandler() });

谢谢,莫希特

编辑:此文档现在可在https://azure.microsoft.com/documentation/articles/app-service-api-dotnet-consume-internal/

于 2015-05-02T00:37:21.473 回答