Конфигурирање прокси за 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 средниот софтвер на Graph SDK додека ја конфигурира неговата API рута.
Ако посредникот бара автентикација, доделете ја потребната сметка на својството Credentials на прокси објектот. Задржете ги сопствените транспорти за целиот животен век на компонентата и ослободете ги при исклучување.
Користете го овој образец со наведената генерација на SDK. Примерите со HttpProvider и DelegateAuthenticationProvider припаѓаат на претходна генерација и не можат да се мешаат во овој синџир конструктори.