Microsoft Graph SDK v5 및 Azure Identity용 프록시 구성
초기화 중에 Graph API 전송과 ClientSecretCredential 전송을 구성하여 API 요청과 토큰 요청 모두 경로를 갖도록 합니다.
Graph API 호출과 ClientSecretCredential 토큰 요청은 전송 진입점이 별개입니다. Microsoft.Graph 5 및 Azure.Identity에서는 클라이언트를 만들기 전에 둘 다 구성합니다.
var proxy = new System.Net.WebProxy(
"http://proxy.example.net:8080");
var tokenHandler = new System.Net.Http.HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
var credentialOptions = new Azure.Identity.ClientSecretCredentialOptions
{
Transport = new Azure.Core.Pipeline.HttpClientTransport(tokenHandler)
};
var credential = new Azure.Identity.ClientSecretCredential(
tenantId, clientId, clientSecret, credentialOptions);
var authProvider =
new Microsoft.Kiota.Authentication.Azure.AzureIdentityAuthenticationProvider(
credential, scopes: new[] { "https://graph.microsoft.com/.default" });
var graphHttp = Microsoft.Graph.GraphClientFactory.Create(proxy: proxy);
var graphClient = new Microsoft.Graph.GraphServiceClient(
graphHttp, authProvider);인증되지 않은 공용 HTTP 경로의 경우 HTTP 프록시 목록이 공유 WebProxy에 사용할 후보 주소를 제공합니다. 애플리케이션은 기존 자격 증명 처리를 통해 tenantId, clientId, clientSecret를 제공합니다. .default 범위는 해당 등록에 구성된 애플리케이션 권한을 사용합니다. 경로가 권한을 부여할 수는 없습니다.
두 전송 줄을 중요한 쌍으로 읽으십시오. HttpClientTransport(tokenHandler)는 자격 증명의 토큰 요청을 전달합니다. GraphClientFactory.Create(proxy: proxy)는 Graph SDK의 HTTP 미들웨어 구성을 유지하면서 해당 API 경로를 구성합니다.
중간자가 인증을 요구하면 필요한 계정을 프록시 개체의 Credentials에 할당합니다. 소유한 전송은 구성 요소의 수명 동안 유지하고 종료 시 해제합니다.
이 패턴은 명시된 SDK 세대와 함께 사용하십시오. HttpProvider 및 DelegateAuthenticationProvider 예제는 이전 세대에 속하며 이 생성자 체인에 섞을 수 없습니다.