Een proxy configureren voor Microsoft Graph SDK v5 en Azure Identity
Configureer het Graph API-transport en het ClientSecretCredential-transport tijdens de initialisatie, zodat zowel API- als tokenaanvragen een route hebben.
Graph API-aanroepen en tokenaanvragen van ClientSecretCredential hebben afzonderlijke transporttoegangspunten. Met Microsoft.Graph 5 en Azure.Identity configureert u beide voordat de client wordt gemaakt:
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);Voor een niet-geverifieerde openbare HTTP-route biedt de lijst met HTTP-proxies kandidaatadressen voor de gedeelde WebProxy. De toepassing levert tenantId, clientId en clientSecret via de bestaande afhandeling van referenties. Het bereik .default gebruikt de toepassingsmachtigingen die voor die registratie zijn geconfigureerd; een route kan geen machtigingen verlenen.
Lees de twee transportregels als het belangrijke paar. HttpClientTransport(tokenHandler) draagt de tokenaanvraag van de referentie. GraphClientFactory.Create(proxy: proxy) behoudt de opbouw van de HTTP-middleware van de Graph SDK en configureert tegelijk de API-route ervan.
Als de tussenlaag verificatie vereist, wijst u het vereiste account toe aan de eigenschap Credentials van het proxyobject. Behoud eigen transporten gedurende de levensduur van de component en geef ze vrij bij het afsluiten.
Gebruik dit patroon met de genoemde SDK-generatie. Voorbeelden met HttpProvider en DelegateAuthenticationProvider horen bij een eerdere generatie en kunnen niet in deze constructor-keten worden gemengd.