Исправление серверного маршрута прокси при входе 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-клиенты имеют собственные пути настройки.