Konfiguriranje proxyja za Microsoft Graph SDK v5 i Azure Identity
Konfigurirajte Graph API transport i ClientSecretCredential transport tijekom inicijalizacije kako bi i API i zahtjevi za token imali rutu.
Pozivi Graph API-ja i zahtjevi za token ClientSecretCredential imaju odvojene ulazne točke transporta. Uz Microsoft.Graph 5 i Azure.Identity, konfigurirajte oboje prije stvaranja klijenta:
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);Za neautentificiranu javnu HTTP rutu popis HTTP proxyja nudi kandidatne adrese za zajednički WebProxy. Aplikacija dostavlja tenantId, clientId i clientSecret kroz svoje postojeće rukovanje vjerodajnicama. Opseg .default koristi dozvole aplikacije konfigurirane za tu registraciju; ruta ne može dodijeliti dozvole.
Čitajte dva transportna retka kao važan par. HttpClientTransport(tokenHandler) prenosi zahtjev za token vjerodajnice. GraphClientFactory.Create(proxy: proxy) zadržava konstrukciju HTTP middlewarea Graph SDK-a dok konfigurira njegovu API rutu.
Ako posrednik zahtijeva autentifikaciju, dodijelite potreban račun svojstvu Credentials proxy objekta. Zadržite transportne objekte koje posjedujete tijekom životnog vijeka komponente i oslobodite ih pri gašenju.
Koristite ovaj obrazac uz navedenu generaciju SDK-a. Primjeri s HttpProvider i DelegateAuthenticationProvider pripadaju ranijoj generaciji i ne mogu se miješati u ovaj lanac konstruktora.