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 мысалдары бұрынғы буынға жатады және бұл конструктор тізбегіне араластыруға болмайды.