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 वाले उदाहरण पिछले जनरेशन के हैं और इस कंस्ट्रक्टर श्रृंखला में नहीं मिलाए जा सकते।