Konfigurer en proxy for Microsoft Graph SDK v5 og Azure Identity
Konfigurer Graph API-transporten og ClientSecretCredential-transporten under initialisering slik at både API- og tokenforespørsler har en rute.
Graph API-kall og tokenforespørsler fra ClientSecretCredential har separate transportinngangspunkter. Med Microsoft.Graph 5 og Azure.Identity konfigurerer du begge før klienten opprettes:
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);For en uautentisert offentlig HTTP-rute gir listen over HTTP-proxier kandidatadresser for den delte WebProxy. Applikasjonen leverer tenantId, clientId og clientSecret via sin eksisterende håndtering av legitimasjon. Omfanget .default bruker applikasjonstillatelsene som er konfigurert for den registreringen; en rute kan ikke gi tillatelser.
Les de to transportlinjene som det viktige paret. HttpClientTransport(tokenHandler) bærer legitimasjonens tokenforespørsel. GraphClientFactory.Create(proxy: proxy) beholder Graph SDK-ens oppbygging av HTTP-midtvare og konfigurerer samtidig API-ruten.
Hvis mellomleddet krever autentisering, tilordne den nødvendige kontoen til proxyobjektets Credentials. Behold egne transporter gjennom komponentens levetid og frigjør dem ved avslutning.
Bruk dette mønsteret med den angitte SDK-generasjonen. Eksempler med HttpProvider og DelegateAuthenticationProvider tilhører en tidligere generasjon og kan ikke blandes inn i denne konstruktørkjeden.