Que un navegador llegue a la página de inicio de sesión del proveedor de identidad no demuestra que el servidor de ASP.NET Core pueda obtener los metadatos del proveedor o intercambiar un token. Esas solicitudes del lado del servidor usan el canal inverso de OpenID Connect.

Para un esquema existente llamado oidc, configure su controlador durante la configuración de los servicios, antes de que empiecen las solicitudes de autenticación:

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")
        };
});

Sustituya oidc por el nombre real del esquema registrado. Conserve la configuración de authority, cliente y validación del token. Si el proxy requiere una cuenta, adjunte las credenciales previstas a WebProxy.

Compruebe si la aplicación ya proporciona options.Backchannel como un HttpClient completo. Si es así, configure la ruta de ese cliente directamente: ASP.NET Core usa BackchannelHttpHandler al crear su canal inverso predeterminado, no para reemplazar un cliente ya proporcionado.

Use la solicitud fallida de descubrimiento o de token del servidor para evaluar esta configuración. Para una ruta HTTP pública, la lista de proxies HTTP ofrece candidatos para la dirección de WebProxy. La política de proxy del navegador y los clientes HTTP no relacionados tienen sus propias rutas de configuración.

Artículos relacionados