ASP.NET Core JWT Bearer: ตั้งค่า backchannel proxy สำหรับ metadata
ใช้ BackchannelHttpHandler ก่อนเริ่มการดึงข้อมูล เว้นแต่ไคลเอนต์ที่สมบูรณ์หรือตัวจัดการการกำหนดค่าที่กำหนดเองจะเป็นเจ้าของการรับส่งนั้นอยู่แล้ว
API อาจได้รับ bearer token แล้วล้มเหลวในการดาวน์โหลด metadata และคีย์ลงนามของเซิร์ฟเวอร์ กำหนดค่า scheme 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 และพารามิเตอร์โทเค็นที่มีอยู่ ปลายทาง metadata และคีย์ลงนามแบบสาธารณะสามารถใช้ผู้สมัครจาก รายการพร็อกซี HTTP สำหรับ URL ของ WebProxy ที่ไม่มีบัญชีนี้เมื่ออนุญาตให้เข้าถึงผ่านพร็อกซีสาธารณะ
ในการตั้งค่ามาตรฐาน post-configuration จะสร้าง backchannel จาก handler นี้ หาก Backchannel ที่สมบูรณ์หรือ ConfigurationManager ที่กำหนดเองมีตัวดึงข้อมูลอยู่แล้ว ให้กำหนดค่าออบเจ็กต์นั้นแทน คุณสมบัติของ handler ไม่ได้แทนที่ทั้งสอง
ตั้งค่าบัญชีพร็อกซีใด ๆ บน WebProxy ก่อนใช้งาน ไม่ใช่โดยการเปลี่ยน Proxy ภายใน SendAsync รักษา issuer, audience, ลายเซ็น, อายุการใช้งาน และตัวตรวจสอบเพิ่มเติม การเข้าสู่ระบบ OIDC และการรับโทเค็นแยกต่างหากยังคงเส้นทาง HTTP ของตนเอง