ແກ້ໄຂເສັ້ນທາງພຣັອກຊີຝ່າຍເຊີເວີໃນການເຂົ້າສູ່ລະບົບ OIDC ຂອງ ASP.NET Core
ຕັ້ງ BackchannelHttpHandler ໃນແຜນ OpenID Connect ທີ່ລົງທະບຽນໄວ້ ສຳລັບການຄົ້ນຫາ ແລະ ຄຳຮ້ອງຂໍໂທເຄັນ ເວັ້ນແຕ່ແອັບສະໜອງ Backchannel client ທີ່ຄົບຊຸດແລ້ວ.
ການທີ່ເບຣົາເຊີເຂົ້າເຖິງໜ້າເຂົ້າສູ່ລະບົບຂອງຜູ້ໃຫ້ບໍລິການຊື່ຕົວຕົນ ບໍ່ໄດ້ພິສູດວ່າເຊີເວີ ASP.NET Core ສາມາດດຶງ metadata ຂອງຜູ້ໃຫ້ບໍລິການ ຫຼື ແລກປ່ຽນໂທເຄັນໄດ້. ຄຳຮ້ອງຂໍຝ່າຍເຊີເວີເຫຼົ່ານັ້ນໃຊ້ backchannel ຂອງ OpenID Connect.
ສຳລັບແຜນ (scheme) ທີ່ມີຢູ່ແລ້ວຊື່ oidc, ຈົ່ງຕັ້ງຄ່າ handler ຂອງມັນໃນຂະນະຕັ້ງຄ່າ service, ກ່ອນຄຳຮ້ອງຂໍການພິສູດຕົວຈະເລີ່ມ:
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 ແລະ ການກວດສອບໂທເຄັນໄວ້. ຖ້າພຣັອກຊີຕ້ອງການບັນຊີ, ຈົ່ງຕິດ credentials ທີ່ຕ້ອງການໃສ່ WebProxy.
ກວດເບິ່ງວ່າແອັບສະໜອງ options.Backchannel ເປັນ HttpClient ທີ່ຄົບຊຸດແລ້ວ ຫຼື ບໍ່. ຖ້າມີແລ້ວ, ຈົ່ງຕັ້ງຄ່າເສັ້ນທາງຂອງ client ນັ້ນໂດຍກົງ: ASP.NET Core ໃຊ້ BackchannelHttpHandler ເມື່ອສ້າງ backchannel ເລີ່ມຕົ້ນຂອງມັນ, ບໍ່ແມ່ນເພື່ອແທນ client ທີ່ສະໜອງໃຫ້ແລ້ວ.
ໃຊ້ຄຳຮ້ອງຂໍ discovery ຫຼື ໂທເຄັນທີ່ລົ້ມເຫຼວຂອງເຊີເວີ ເພື່ອປະເມີນການຕັ້ງຄ່ານີ້. ສຳລັບເສັ້ນທາງ HTTP ສາທາລະນະ, ລາຍຊື່ພຣັອກຊີ HTTP ໃຫ້ຕົວເລືອກສຳລັບທີ່ຢູ່ WebProxy. ນະໂຍບາຍພຣັອກຊີຂອງເບຣົາເຊີ ແລະ HTTP client ອື່ນໆ ມີເສັ້ນທາງຕັ້ງຄ່າຂອງຕົນເອງ.