Schéma d’authentification par défaut

À partir de .NET 7, nous avons introduit un nouveau comportement dans la zone d’authentification dans ASP.NET Core.

Auparavant, les utilisateurs devaient définir le schéma d’authentification par défaut, utilisé par les gestionnaires d’authentification et d’autorisation, dans l’appel AddAuthentication :

builder.Services.AddAuthentication("MyDefaultScheme");

À l’avenir, quand un seul schéma d’authentification est inscrit, ce schéma est traité comme schéma par défaut. Par exemple, « MyDefaultScheme » est traité comme schéma par défaut dans le code suivant.

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

Ce changement peut exposer des changements de comportement involontaires dans les applications, comme une validation des options d’authentification plus tôt que prévu.

Version introduite

ASP.NET Core 7.0

Comportement précédent

Auparavant, quand les utilisateurs ne fournissaient pas de schéma par défaut dans l’appel AddAuthentication, aucun schéma par défaut n’était défini.

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

Cela impactait le comportement des gestionnaires d’authentification dans la couche application.

Nouveau comportement

À compter d’ASP.NET Core 7.0, si (et uniquement si) un seul schéma est inscrit dans une application, ce schéma est traité comme étant la valeur par défaut. Dans le code suivant, le CookieDefaults.AuthenticationScheme est traité comme schéma par défaut.

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

Toutefois, dans l’extrait de code suivant, aucune valeur par défaut n’est définie, car plusieurs schémas sont inscrits.

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

Type de changement cassant

Cette modification affecte la compatibilité binaire.

Raison du changement

Ce changement a été effectué pour réduire la réutilisabilité pendant la configuration de l’authentification et pour configurer des valeurs par défaut raisonnables.

Le changement impacte uniquement les applications qui ont un seul schéma inscrit. Pour ces scénarios, nous vous recommandons de vérifier que votre application peut gérer l’hypothèse d’un seul schéma comme valeur par défaut. Par exemple, vérifiez que les options associées à ce schéma sont correctement configurées.

Vous pouvez également désactiver le nouveau comportement en définissant l’indicateur de contexte d’application Microsoft.AspNetCore.Authentication.SuppressAutoDefaultScheme.

API affectées

API d’authentification.