Esquema de autenticación predeterminado

A partir de .NET 7, se incluye un nuevo comportamiento en el área de la autenticación en ASP.NET Core.

Antes, los usuarios tenían que establecer el esquema de autenticación predeterminado usado por los controladores de autenticación y autorización en la llamada a AddAuthentication:

builder.Services.AddAuthentication("MyDefaultScheme");

De ahora en adelante, cuando se registre un único esquema de autenticación, ese esquema se trata como el esquema predeterminado. Por ejemplo, según el siguiente código, "MyDefaultScheme" se trata como el esquema predeterminado.

builder.Services.AddAuthentication().AddOAuth("MyDefaultScheme");

Este cambio puede exponer cambios de comportamiento no deseados en las aplicaciones, como que las opciones de autenticación se validen antes de lo previsto.

Versión introducida

ASP.NET Core 7.0

Comportamiento anterior

Antes, cuando los usuarios no proporcionaban un esquema predeterminado en la llamada a AddAuthentication, no se establecía ningún esquema predeterminado.

builder.Services.AddAuthentication().AddCookie();

Esto ha afectado al comportamiento de los controladores de autenticación en el nivel de aplicación.

Comportamiento nuevo

A partir de ASP.NET Core 7.0, si (y solo si) se registra un único esquema en una aplicación, ese esquema se tratará como predeterminado. En el siguiente código, CookieDefaults.AuthenticationScheme se trata como el esquema predeterminado.

builder.Services.AddAuthentication().AddCookie();

Sin embargo, en el siguiente fragmento de código, no se establece ningún esquema predeterminado porque se registran varios esquemas.

builder.Services.AddAuthentication().AddCookie().AddJwtBearer();

Tipo de cambio importante

Este cambio afecta a la compatibilidad binaria.

Motivo del cambio

Este cambio se realizó para reducir las tareas repetitivas al configurar la autenticación y para configurar valores predeterminados adecuados.

El cambio afecta únicamente a las aplicaciones que tienen un único esquema registrado. En esos escenarios, se recomienda asegurarse de que la aplicación está preparada para controlar la posibilidad de que un único esquema sea el predeterminado. Por ejemplo, asegúrese de que las opciones asociadas a ese esquema están configuradas correctamente.

Si lo desea, este nuevo comportamiento se puede deshabilitar estableciendo la marca de contexto de la aplicación Microsoft.AspNetCore.Authentication.SuppressAutoDefaultScheme.

API afectadas

API de autenticación.