Klici Graph API in zahteve za žeton ClientSecretCredential imajo ločene vstopne točke transporta. Pri Microsoft.Graph 5 in Azure.Identity konfigurirajte oba pred ustvarjanjem odjemalca:

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 neoverjeno javno pot HTTP seznam posredniških strežnikov HTTP ponuja kandidatne naslove za skupni WebProxy. Aplikacija zagotavlja tenantId, clientId in clientSecret prek obstoječe obdelave poverilnic. Obseg .default uporablja dovoljenja aplikacije, konfigurirana za to registracijo; pot ne more podeljevati dovoljenj.

Obe vrstici transporta berite kot pomemben par. HttpClientTransport(tokenHandler) prenaša zahtevo za žeton poverilnice. GraphClientFactory.Create(proxy: proxy) ohranja zgradbo vmesne programske opreme HTTP v Graph SDK in hkrati konfigurira njegovo pot API.

Če posrednik zahteva preverjanje pristnosti, dodelite zahtevani račun lastnosti Credentials predmeta proxy. Lastne transporte ohranite ves čas življenjske dobe komponente in jih ob zaustavitvi sprostite.

Ta vzorec uporabljajte z navedeno generacijo SDK. Primeri z HttpProvider in DelegateAuthenticationProvider pripadajo starejši generaciji in jih ni mogoče mešati v to verigo konstruktorjev.

Sorodni članki