使用企业代理实施 Azure Key Vault

Implementing Azure Key Vault using a corporate proxy

在 .NET Core 中实现 Azure Key Vault 的推荐方法是使用此示例

// using Microsoft.Extensions.Configuration;

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((context, config) =>
        {
            if (context.HostingEnvironment.IsProduction())
            {
                var builtConfig = config.Build();

                config.AddAzureKeyVault(
                    $"https://{builtConfig["KeyVaultName"]}.vault.azure.net/",
                    builtConfig["AzureADApplicationId"],
                    builtConfig["AzureADPassword"]);
            }
        })
        .UseStartup<Startup>();

有没有一种方法可以为使用 Web 代理的 Azure 调用自定义此设置代码?我已经找到了关于如何处理公司防火墙后面的 Key Vault 以及需要列出哪些 IP 的文档,但我想看看是否有办法能够使用代理以及 HttpClient 中的某种 HttpHandler .

经过研究,目前似乎没有办法通过代理来处理这个问题。您必须改为将 IP 添加到您的防火墙。本文进一步解释:

https://docs.microsoft.com/en-us/azure/key-vault/key-vault-access-behind-firewall#ip-address-ranges

AzureKeyVault 客户端使用 HttpClient.DefaultProxy 创建连接。您可以在环境变量中指定代理,例如 HTTPS_PROXY,请参阅 HttpClient.DefaultProxy Property