Konfigurácia proxy pre Microsoft Graph SDK v5 a Azure Identity
Nakonfigurujte transport Graph API a transport ClientSecretCredential počas inicializácie, aby mali požiadavky API aj požiadavky na token trasu.
Volania Graph API a požiadavky na token ClientSecretCredential majú samostatné vstupné body transportu. S Microsoft.Graph 5 a Azure.Identity nakonfigurujte oba pred vytvorením klienta:
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);Pre neoverenú verejnú trasu HTTP ponúka zoznam HTTP proxy kandidátske adresy pre zdieľaný WebProxy. Aplikácia dodáva tenantId, clientId a clientSecret prostredníctvom svojho existujúceho spracovania poverení. Rozsah .default používa povolenia aplikácie nakonfigurované pre túto registráciu; trasa nemôže udeľovať povolenia.
Čítajte oba transportné riadky ako dôležitú dvojicu. HttpClientTransport(tokenHandler) prenáša požiadavku na token poverenia. GraphClientFactory.Create(proxy: proxy) zachováva zostavenie HTTP middlewaru Graph SDK a zároveň konfiguruje jeho trasu API.
Ak sprostredkovateľ vyžaduje overenie, priraďte požadovaný účet vlastnosti Credentials objektu proxy. Vlastnené transporty uchovávajte počas celej životnosti komponentu a pri vypnutí ich uvoľnite.
Tento vzor používajte s uvedenou generáciou SDK. Príklady s HttpProvider a DelegateAuthenticationProvider patria k staršej generácii a nemožno ich miešať do tohto reťazca konštruktorov.