แก้ไขเส้นทางพร็อกซีฝั่งเซิร์ฟเวอร์ในการเข้าสู่ระบบ OIDC ของ ASP.NET Core
ตั้งค่า BackchannelHttpHandler บนสคีมา OpenID Connect ที่ลงทะเบียนไว้สำหรับการค้นหาและคำขอโทเค็น เว้นแต่แอปจะจัดเตรียมไคลเอนต์ Backchannel ที่สมบูรณ์
การที่เบราว์เซอร์ไปถึงหน้าเข้าสู่ระบบของผู้ให้บริการตัวตนไม่ได้พิสูจน์ว่าเซิร์ฟเวอร์ ASP.NET Core ดึงเมทาดาทาของผู้ให้บริการหรือแลกเปลี่ยนโทเค็นได้ คำขอฝั่งเซิร์ฟเวอร์เหล่านั้นใช้ backchannel ของ OpenID Connect
สำหรับสคีมาที่มีอยู่ชื่อ oidc ให้กำหนดค่าแฮนเดลอร์ระหว่างการตั้งค่าบริการ ก่อนที่คำขอตรวจสอบสิทธิ์จะเริ่ม:
services.Configure<Microsoft.AspNetCore.Authentication.OpenIdConnect
.OpenIdConnectOptions>("oidc", options =>
{
options.BackchannelHttpHandler =
new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = new System.Net.WebProxy(
"http://proxy.example.net:8080")
};
});แทนที่ oidc ด้วยชื่อสคีมาที่ลงทะเบียนจริง เก็บการตั้งค่า authority, client และการตรวจสอบโทเค็นไว้ หากพร็อกซีต้องใช้บัญชี ให้แนบข้อมูลรับรองที่ต้องการกับ WebProxy
ตรวจสอบว่าแอปจัดเตรียม options.Backchannel เป็น HttpClient ที่สมบูรณ์อยู่แล้วหรือไม่ หากมี ให้กำหนดค่าเส้นทางของไคลเอนต์นั้นโดยตรง: ASP.NET Core ใช้ BackchannelHttpHandler เมื่อสร้าง backchannel เริ่มต้น ไม่ใช่เพื่อแทนที่ไคลเอนต์ที่จัดเตรียมไว้แล้ว
ใช้การค้นหาหรือคำขอโทเค็นที่ล้มเหลวของเซิร์ฟเวอร์ในการประเมินการตั้งค่านี้ สำหรับเส้นทาง HTTP สาธารณะ รายการพร็อกซี HTTP ให้ผู้สมัครสำหรับที่อยู่ WebProxy นโยบายพร็อกซีของเบราว์เซอร์และไคลเอนต์ HTTP ที่ไม่เกี่ยวข้องมีเส้นทางการกำหนดค่าของตนเอง