Configura un proxy per a Microsoft Graph SDK v5 i Azure Identity
Configura el transport de Graph API i el transport de ClientSecretCredential durant la inicialització perquè tant les sol·licituds d'API com les de testimoni tinguin una ruta.
Les crides a Graph API i les sol·licituds de testimoni de ClientSecretCredential tenen punts d'entrada de transport separats. Amb Microsoft.Graph 5 i Azure.Identity, configura tots dos abans de crear el 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);Per a una ruta HTTP pública no autenticada, la llista de proxys HTTP ofereix adreces candidates per al WebProxy compartit. L'aplicació proporciona tenantId, clientId i clientSecret mitjançant la seva gestió de credencials existent. L'abast .default utilitza els permisos d'aplicació configurats per a aquest registre; una ruta no pot atorgar permisos.
Llegeix les dues línies de transport com la parella important. HttpClientTransport(tokenHandler) transporta la sol·licitud de testimoni de la credencial. GraphClientFactory.Create(proxy: proxy) manté la construcció del middleware HTTP del Graph SDK mentre configura la seva ruta d'API.
Si l'intermediari requereix autenticació, assigna el compte necessari a la propietat Credentials de l'objecte proxy. Conserva els transports propis durant la vida útil del component i allibera'ls en tancar.
Utilitza aquest patró amb la generació d'SDK indicada. Els exemples amb HttpProvider i DelegateAuthenticationProvider pertanyen a una generació anterior i no es poden barrejar en aquesta cadena de constructors.