Налаштування проксі для 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) зберігає побудову HTTP-middleware Graph SDK, налаштовуючи його маршрут API.
Якщо посередник вимагає автентифікації, призначте потрібний обліковий запис властивості Credentials об'єкта проксі. Утримуйте власні транспорти протягом усього життя компонента й звільняйте їх під час завершення.
Використовуйте цей шаблон із зазначеним поколінням SDK. Приклади HttpProvider і DelegateAuthenticationProvider належать до попереднього покоління і не можуть бути змішані в цьому ланцюжку конструкторів.