Azure Key Vault .NET: настройки прокси для секретов и запросов токенов
Назначьте один и тот же транспорт Azure Core для SecretClientOptions и ClientSecretCredentialOptions до запуска любого из двух путей запроса.
var handler = new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = new System.Net.WebProxy(
"http://proxy.example.net:8080")
};
var transport = new Azure.Core.Pipeline.HttpClientTransport(handler);
var credential = new Azure.Identity.ClientSecretCredential(
tenantId, clientId, clientSecret,
new Azure.Identity.ClientSecretCredentialOptions
{
Transport = transport
});
var vault = new Azure.Security.KeyVault.Secrets.SecretClient(
new Uri(vaultUrl),
credential,
new Azure.Security.KeyVault.Secrets.SecretClientOptions
{
Transport = transport
});Используйте реальные vaultUrl, tenantId, clientId и clientSecret приложения. Два присваивания Transport = transport сделаны намеренно: одно направляет получение токена, другое — запросы секретов Key Vault.
Оставьте vaultUrl фактической конечной точкой хранилища. WebProxy обработчика содержит посредника; публичные кандидаты HTTP доступны в списке HTTP-прокси, если сетевая политика хранилища разрешает этот маршрут; настройте его Credentials перед созданием клиентов, если этого требует сеть.
Повторно используйте транспорт для нагрузки клиентов и освобождайте принадлежащие ресурсы при завершении. Успешное подключение через прокси устанавливает маршрут, но сетевые политики и политики доступа Key Vault по-прежнему решают, может ли приложение читать секрет.