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 的网络与访问策略决定。