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의 네트워크 및 액세스 정책이 여전히 결정합니다.