То, что браузер открывает страницу входа поставщика удостоверений, не доказывает, что сервер 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-клиенты имеют собственные пути настройки.

Похожие статьи