הגדרת פרוקסי עבור 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 שייכות לדור קודם ואינן ניתנות לערבוב בשרשרת הבנאים הזו.