Microsoft Graph SDK v5 နှင့် Azure Identity အတွက် proxy ကို ပြင်ဆင်သတ်မှတ်ခြင်း
စတင်ချိန်တွင် Graph API သယ်ယူပို့ဆောင်မှုနှင့် ClientSecretCredential သယ်ယူပို့ဆောင်မှုကို ပြင်ဆင်သတ်မှတ်ပါ၊ ထို့ကြောင့် API တောင်းဆိုမှုများနှင့် token တောင်းဆိုမှုများ နှစ်ခုစလုံးတွင် လမ်းကြောင်းရှိမည်။
Graph API ခေါ်ဆိုမှုများနှင့် ClientSecretCredential token တောင်းဆိုမှုများတွင် သီးခြား သယ်ယူပို့ဆောင်မှု ဝင်ပေါက်များ ရှိသည်။ Microsoft.Graph 5 နှင့် Azure.Identity ဖြင့် client မဖန်တီးမီ နှစ်ခုစလုံးကို ပြင်ဆင်သတ်မှတ်ပါ။
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 proxy စာရင်း သည် မျှဝေထားသော WebProxy အတွက် ကိုယ်စားလှယ်လောင်း လိပ်စာများကို ပေးသည်။ အပ်ပလီကေးရှင်းသည် ၎င်း၏ လက်ရှိ အထောက်အထား ကိုင်တွယ်မှုမှတစ်ဆင့် tenantId၊ clientId နှင့် clientSecret ကို ထောက်ပံ့သည်။ .default scope သည် ထို မှတ်ပုံတင်မှုအတွက် ပြင်ဆင်သတ်မှတ်ထားသော အပ်ပလီကေးရှင်း ခွင့်ပြုချက်များကို အသုံးပြုသည်၊ လမ်းကြောင်းတစ်ခုက ခွင့်ပြုချက် မပေးနိုင်ပါ။
သယ်ယူပို့ဆောင်မှု လိုင်းနှစ်ခုကို အရေးကြီးသော အတွဲအဖြစ် ဖတ်ပါ။ HttpClientTransport(tokenHandler) သည် အထောက်အထား၏ token တောင်းဆိုမှုကို သယ်ဆောင်သည်။ GraphClientFactory.Create(proxy: proxy) သည် Graph SDK ၏ HTTP အလယ်အလတ်ဆော့ဖ်ဝဲ တည်ဆောက်မှုကို ထိန်းသိမ်းထားပြီး ၎င်း၏ API လမ်းကြောင်းကို ပြင်ဆင်သတ်မှတ်သည်။
ကြားခံသည် အထောက်အထားစစ်ဆေးမှု လိုအပ်ပါက လိုအပ်သော အကောင့်ကို proxy အရာဝတ္ထု၏ Credentials တွင် သတ်မှတ်ပါ။ ပိုင်ဆိုင်သော သယ်ယူပို့ဆောင်မှုများကို အစိတ်အပိုင်း၏ သက်တမ်းတစ်လျှောက် ထိန်းထားပြီး ပိတ်ချိန်တွင် လွှတ်ပေးပါ။
ဤပုံစံကို ဖော်ပြထားသော SDK မျိုးဆက်နှင့် အသုံးပြုပါ။ HttpProvider နှင့် DelegateAuthenticationProvider ဥပမာများသည် ယခင်မျိုးဆက်ဖြစ်ပြီး ဤ constructor ကွင်းဆက်တွင် ရောနှော၍ မရပါ။