Փրոքսիի կարգավորում 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-ի օրինակները պատկանում են ավելի վաղ սերնդի և չեն կարող խառնվել այս կոնստրուկտորի շղթայում։