رفع مسیر پروکسی سمت سرور در ورود OIDC در ASP.NET Core
برای درخواستهای کشف و توکن، BackchannelHttpHandler را روی طرح OpenID Connect ثبتشده تنظیم کنید، مگر اینکه برنامه یک کلاینت کامل Backchannel فراهم کند.
رسیدن مرورگر به صفحه ورود ارائهدهنده هویت ثابت نمیکند که سرور ASP.NET Core میتواند فرادادههای ارائهدهنده را دریافت کند یا توکن را مبادله کند. این درخواستها در سمت سرور از کانال پشتیبان 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، کلاینت و اعتبارسنجی توکن را حفظ کنید. اگر پروکسی به حساب نیاز دارد، اعتبارنامههای موردنظر را به WebProxy پیوست کنید.
بررسی کنید که آیا برنامه از قبل options.Backchannel را بهعنوان یک HttpClient کامل فراهم میکند. اگر چنین است، مسیر آن کلاینت را مستقیماً پیکربندی کنید: ASP.NET Core از BackchannelHttpHandler هنگام ایجاد کانال پشتیبان پیشفرض خود استفاده میکند، نه برای جایگزینی کلاینتی که از پیش فراهم شده است.
برای ارزیابی این تنظیم، از درخواست ناموفق کشف یا توکن سرور استفاده کنید. برای یک مسیر عمومی HTTP، فهرست پروکسی HTTP نامزدهایی برای نشانی WebProxy ارائه میدهد. سیاست پروکسی مرورگر و کلاینتهای HTTP نامرتبط مسیرهای پیکربندی خود را دارند.