Foto de Pixabay en Pexels

El lanzamiento de .NET 7, y ya .NET 8, está haciendo que las cosas sean cada vez más sencillas, incluyendo la simplificación de una de las partes más complicadas de una aplicación: trabajar con JWT.

Antes de .NET 7, configurar JWT en una aplicación ASP.NET era una de las partes más complicadas de un proyecto, que requería muchos pasos e incluso agregar un middleware.

¡Bueno, eso ha cambiado en .NET 7 y, sí, yo hasta ahora no lo había probado!

Trabajar con JWT ahora es muy sencillo. Se puede añadir la configuración directamente en el appsettings.json.

var builder = webApplication.CreateBuilder(args);
...
builder.Authentication.AddJwtBearer();
...
var app = builder.Build();

Automáticamente añade los middlewares de forma sencilla, igual que lo haces con otros tipos de Add.

Pero eso no es lo más interesante. Lo que nos ofrece esta versión es que ahora podemos poner la configuración directamente desde el appsettings.json de manera automática:

  "Authentication": {
    "DefaultScheme": "JwtBearer",
    "Schemes": {
      "Bearer": {
        "ValidAudiences": [ "YOUR_AUDIENCE_A", "YOUR_AUDIENCE_B" ],
        "ClaimsIssuer": "YOUR_JWT_USER"
      }
    }
  }

Si esto ya es sencillo, usar una autoridad como Auth0, lo es aun más:

  "Authentication": {
    "Schemes": {
      "Bearer": {
        "Authority": "https://YOUR_AUTH0_DOMAIN",
        "ValidAudiences": [ "YOUR_AUDIENCE" ],
        "ValidIssuer": "YOUR_AUTH0_DOMAIN"
      }
    }
  }