Les appels à Graph API et les requêtes de jeton de ClientSecretCredential ont des points d'entrée de transport distincts. Avec Microsoft.Graph 5 et Azure.Identity, configurez les deux avant de créer le client :

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);

Pour une route HTTP publique non authentifiée, la liste de proxys HTTP fournit des adresses candidates pour le WebProxy partagé. L'application fournit tenantId, clientId et clientSecret via sa gestion existante des informations d'identification. La portée .default utilise les autorisations d'application configurées pour cette inscription ; une route ne peut pas accorder d'autorisations.

Lisez les deux lignes de transport comme la paire importante. HttpClientTransport(tokenHandler) achemine la requête de jeton de l'identification. GraphClientFactory.Create(proxy: proxy) conserve la construction du middleware HTTP du Graph SDK tout en configurant sa route API.

Si l'intermédiaire exige une authentification, affectez le compte requis à la propriété Credentials de l'objet proxy. Conservez les transports que vous possédez pendant la durée de vie du composant et libérez-les à l'arrêt.

Utilisez ce modèle avec la génération du SDK indiquée. Les exemples avec HttpProvider et DelegateAuthenticationProvider appartiennent à une génération antérieure et ne peuvent pas être mêlés à cette chaîne de constructeurs.

Articles similaires