기본 인증 체계

.NET 7부터 ASP.NET Core의 인증 영역에 새로운 동작을 도입했습니다.

이전에는 사용자가 AddAuthentication 호출에서 인증 및 권한 부여 처리기에서 사용하는 기본 인증 체계를 설정해야 했습니다.

builder.Services.AddAuthentication("MyDefaultScheme");

앞으로 단일 인증 체계가 등록되면 해당 체계가 기본 체계로 처리됩니다. 예를 들어 "MyDefaultScheme"은 다음 코드에서 기본 체계로 처리됩니다.

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

이 변경은 예상보다 일찍 유효성을 검사하는 인증 옵션과 같은 애플리케이션의 의도하지 않은 동작 변경을 노출할 수 있습니다.

도입된 버전

ASP.NET Core 7.0

이전 동작

이전에는 사용자가 AddAuthentication 호출에서 기본 체계를 제공하지 않은 경우 기본 체계가 설정되지 않았습니다.

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

이는 애플리케이션 계층의 인증 처리기 동작에 영향을 줍니다.

새 동작

ASP.NET Core 7.0부터 단일 체계가 애플리케이션에 등록된 경우에만 해당 체계가 기본값으로 처리됩니다. 다음 코드에서 CookieDefaults.AuthenticationScheme을(를) 기본 체계로 처리됩니다.

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

그러나 다음 코드 조각에서는 여러 체계가 등록되어 있으므로 기본값이 설정되지 않습니다.

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

호환성이 손상되는 변경의 형식

이 변경 내용은 이진 호환성에 영향을 미칩니다.

변경 이유

인증을 구성할 때 상용구를 줄이고 합리적인 기본값을 설정하도록 변경되었습니다.

변경 내용은 단일 체계가 등록된 애플리케이션에만 영향을 줍니다. 이러한 시나리오의 경우 애플리케이션이 단일 체계가 기본값이라는 가정을 처리할 준비가 되어 있는지 확인하는 것이 좋습니다. 예를 들어 해당 스키마와 연결된 옵션이 올바르게 구성되었는지 확인합니다.

또는 Microsoft.AspNetCore.Authentication.SuppressAutoDefaultScheme 앱 컨텍스트 플래그를 설정하여 새 동작을 사용하지 않도록 설정할 수 있습니다.

영향을 받는 API

인증 API입니다.