ASP.NET Core JWT Bearer: metadata backchannel proxy ကို သတ်မှတ်ခြင်း
ရယူမှု မစတင်မီ BackchannelHttpHandler ကို အသုံးပြုပါ၊ အပြည့်အစုံ client သို့မဟုတ် စိတ်ကြိုက် configuration မန်နေဂျာက ထို transport ကို ပိုင်ဆိုင်ပြီးသားဖြစ်နေလျှင် မလိုအပ်ပါ။
API တစ်ခုသည် bearer token လက်ခံရရှိပြီး ဆာဗာ၏ metadata နှင့် signing key ဒေါင်းလုဒ်တွင် မအောင်မြင်နိုင်ပါ။ ထို JWT bearer အစီအစဉ်ကို ၎င်း၏ လက်ရှိ မှတ်ပုံတင်မှုနောက်နှင့် တောင်းဆိုမှုများမတိုင်မီ သတ်မှတ်ပါ-
using System.Net;
using Microsoft.AspNetCore.Authentication.JwtBearer;
builder.Services.Configure<JwtBearerOptions>(
JwtBearerDefaults.AuthenticationScheme, options =>
{
options.BackchannelHttpHandler = new HttpClientHandler
{
UseProxy = true,
Proxy = new WebProxy("http://proxy.example:8080")
};
});မှတ်ပုံတင်ထားသော အမည်နှင့် ကိုက်ညီပါစေ။ မူရင်း Bearer နှင့် ကွာခြားလျှင် ၎င်း၏ အမှန်တကယ် အမည်ကို အသုံးပြုပါ။ Authority၊ Audience နှင့် လက်ရှိ token ပါရာမီတာများကို ထိန်းသိမ်းပါ။ အများသူငှာ metadata နှင့် signing key endpoint သည် အများသူငှာ proxy မှတစ်ဆင့် ဝင်ရောက်ခွင့်ပြုပါက ဤအကောင့်မလိုသော WebProxy URL အတွက် HTTP proxy စာရင်းမှ ကိုယ်စားလှယ်လောင်းကို အသုံးပြုနိုင်သည်။
စံသတ်မှတ်မှုတွင် post-configuration သည် ဤ handler မှ backchannel ကို ဖန်တီးသည်။ အပြည့်အစုံ Backchannel သို့မဟုတ် စိတ်ကြိုက် ConfigurationManager က ရယူသူကို ပေးပြီးသားဖြစ်လျှင် ထို object ကို အစားထိုး သတ်မှတ်ပါ။ handler ဂုဏ်သတ္တိသည် နှစ်ခုလုံးကို မလွှမ်းမိုးပါ။
proxy အကောင့်တစ်ခုခုကို အသုံးမပြုမီ WebProxy တွင် သတ်မှတ်ပါ၊ SendAsync အတွင်း Proxy ကို ပြောင်းခြင်းဖြင့် မဟုတ်ပါ။ issuer၊ audience၊ လက်မှတ်၊ သက်တမ်းနှင့် ထပ်ဆောင်း validator များကို ထိန်းသိမ်းပါ။ OIDC လော့ဂ်အင် နှင့် သီးခြား token ရယူမှုတို့သည် ၎င်းတို့၏ HTTP လမ်းကြောင်းများကို ထိန်းသိမ်းထားသည်။