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 উদাহরণ আগের প্রজন্মের এবং এই কনস্ট্রাক্টর চেইনে মেশানো যায় না।

সম্পর্কিত নিবন্ধ