Saltar al contenido

La validación de ASP.NET Core 2.0 JWT falla con `Error de autorización para el usuario: (null)` error

Te sugerimos que revises esta respuesta en un entorno controlado antes de enviarlo a producción, un saludo.

Solución:

La secuencia de las sentencias add en la función de configuración es importante. Asegúrate de eso

app.UseAuthentication();

viene antes

app.UseMvc();

¿Podría haber sido este el problema?

Para Dotnetcore 3.1, coloqué app.UseAuthentication() antes de app.UseAuthorization()

En su método ConfigureServices de startup.cs si agrega

services.AddAuthentication(options =>
            
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            ).AddJwtBearer(options => ...

Explicación:
cuando usas [Authorize] en un controlador, se vincula con el primer sistema de autorización de forma predeterminada.

options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;

Con esto, está configurando su autenticación predeterminada para JWT Bearer.

adicionalmente puedes agregar

options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;

esta línea es cómo evitar obtener errores 404 no encontrados al usar Identity con JWT. Si está utilizando la identidad, DefaultChallengeScheme intentará redirigirlo a una página de inicio de sesión, que, si no existe, dará como resultado un 404 no encontrado en lugar del 401 buscado no autorizado. al establecer DefaultChallengeScheme en JwtBearerDefaults.AuthenticationScheme sin autorización, ya no intentará redirigirlo a una página de inicio de sesión

Si está utilizando la autenticación de cookies con la autenticación JWT en el [Authorize] etiqueta puede especificar qué esquema de autenticación desea. por ejemplo

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]

Calificaciones y reseñas

Agradecemos que desees sustentar nuestro ensayo fijando un comentario y dejando una puntuación te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *