Konfigurer en proxy til Microsoft Graph SDK v5 og Azure Identity
Konfigurer Graph API-transporten og ClientSecretCredential-transporten under initialisering, så både API- og tokenanmodninger har en rute.
Graph API-kald og tokenanmodninger fra ClientSecretCredential har separate transportindgangspunkter. Med Microsoft.Graph 5 og Azure.Identity konfigurerer du begge, før klienten oprettes:
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);Til en uautentificeret offentlig HTTP-rute giver listen over HTTP-proxier kandidatadresser til den delte WebProxy. Programmet leverer tenantId, clientId og clientSecret via sin eksisterende håndtering af legitimationsoplysninger. Omfanget .default bruger de applikationstilladelser, der er konfigureret til den registrering; en rute kan ikke give tilladelser.
Læs de to transportlinjer som det vigtige par. HttpClientTransport(tokenHandler) bærer legitimationsoplysningernes tokenanmodning. GraphClientFactory.Create(proxy: proxy) bevarer Graph SDK'ets opbygning af HTTP-middleware og konfigurerer samtidig dets API-rute.
Hvis mellemleddet kræver godkendelse, skal du tildele den nødvendige konto til proxyobjektets Credentials. Behold ejede transporter i komponentens levetid, og frigiv dem ved nedlukning.
Brug dette mønster med den angivne SDK-generation. Eksempler med HttpProvider og DelegateAuthenticationProvider hører til en tidligere generation og kan ikke blandes ind i denne konstruktorkæde.