Microsoft Graph SDK v5 మరియు Azure Identity కోసం ప్రాక్సీని కాన్ఫిగర్ చేయండి
ఇనిషియలైజేషన్ సమయంలో Graph API ట్రాన్స్పోర్ట్ మరియు ClientSecretCredential ట్రాన్స్పోర్ట్ను కాన్ఫిగర్ చేయండి, తద్వారా API మరియు టోకెన్ అభ్యర్థనలు రెండింటికీ ఒక మార్గం ఉంటుంది.
Graph API కాల్లకు మరియు ClientSecretCredential టోకెన్ అభ్యర్థనలకు వేర్వేరు ట్రాన్స్పోర్ట్ ఎంట్రీ పాయింట్లు ఉన్నాయి. Microsoft.Graph 5 మరియు Azure.Identity తో, క్లయింట్ను నిర్మించే ముందు రెండింటినీ కాన్ఫిగర్ చేయండి:
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);అథెంటికేషన్ లేని పబ్లిక్ HTTP మార్గం కోసం, HTTP ప్రాక్సీ జాబితా షేర్ చేయబడిన WebProxy కోసం అభ్యర్థి చిరునామాలను అందిస్తుంది. అప్లికేషన్ తన ప్రస్తుత క్రెడెన్షియల్ నిర్వహణ ద్వారా tenantId, clientId మరియు clientSecret లను అందిస్తుంది. .default స్కోప్ ఆ నమోదు కోసం కాన్ఫిగర్ చేసిన అప్లికేషన్ అనుమతులను ఉపయోగిస్తుంది; ఒక మార్గం అనుమతులను ఇవ్వలేదు.
రెండు ట్రాన్స్పోర్ట్ లైన్లను ముఖ్యమైన జంటగా చదవండి. HttpClientTransport(tokenHandler) క్రెడెన్షియల్ యొక్క టోకెన్ అభ్యర్థనను మోసుకెళ్తుంది. GraphClientFactory.Create(proxy: proxy) Graph SDK యొక్క HTTP మిడిల్వేర్ నిర్మాణాన్ని ఉంచుతూ దాని API మార్గాన్ని కాన్ఫిగర్ చేస్తుంది.
మధ్యవర్తికి అథెంటికేషన్ అవసరమైతే, అవసరమైన ఖాతాను ప్రాక్సీ ఆబ్జెక్ట్ యొక్క Credentials కు కేటాయించండి. స్వంత ట్రాన్స్పోర్ట్లను కాంపోనెంట్ జీవితకాలం పాటు ఉంచి, షట్డౌన్ సమయంలో వాటిని విడుదల చేయండి.
పేర్కొన్న SDK తరంతో ఈ నమూనాను ఉపయోగించండి. HttpProvider మరియు DelegateAuthenticationProvider ఉదాహరణలు మునుపటి తరానికి చెందినవి మరియు ఈ కన్స్ట్రక్టర్ చైన్లో కలపలేము.