A autenticação do SqlClient Active Directory foi transferida para um pacote separado

ASP.NET Core 11 passa a incluir de forma transitiva Microsoft.Data.SqlClient 7.x (em vez da 5.x no .NET 10). A partir de Microsoft.Data.SqlClient 6.0, os fornecedores de autenticação Microsoft Entra ID (anteriormente Azure Active Directory) já não fazem parte do pacote principal Microsoft.Data.SqlClient; são enviados num pacote Microsoft.Data.SqlClient.Extensions.Azure separado. As aplicações que usam um valor de Authentication= Entra ID na cadeia de ligação SQL devem adicionar uma referência a este pacote.

Versão introduzida

.NET 11 Prévia 3

Comportamento anterior

Anteriormente, o pacote Microsoft.Data.SqlClient 5.x incluía os fornecedores de autenticação Entra ID. Uma cadeia de ligação como Server=...;Database=...;Authentication=Active Directory Default funcionava imediatamente para qualquer aplicação ASP.NET Core que incluísse transitivamente Microsoft.Data.SqlClient (por exemplo, através de Microsoft.Extensions.Caching.SqlServer ou de um fornecedor SQL Server do Entity Framework Core).

Novo comportamento

A partir do ASP.NET Core 11, a versão transitiva Microsoft.Data.SqlClient é a 7.x, que deixa de incluir os provedores de autenticação do Entra ID. Se o seu cadeia de ligação usar um dos valores Active Directory *Authentication= e ainda não adicionou o pacote Microsoft.Data.SqlClient.Extensions.Azure, recebe um erro de execução semelhante a:

Cannot find an authentication provider for 'ActiveDirectoryDefault'.
Install the 'Microsoft.Data.SqlClient.Extensions.Azure' NuGet package to use Active Directory (Entra ID) authentication methods.

Isto afeta aplicações que usam Microsoft.Extensions.Caching.SqlServer (DistributedSqlServerCache), aplicações que usam o fornecedor EF Core do SQL Server e qualquer outro caminho de código que inclui transitivamente Microsoft.Data.SqlClient e usa a autenticação do Entra ID.

Tipo de mudança disruptiva

Esta alteração é de natureza comportamental .

Motivo da mudança

A alteração para mover a autenticação do Microsoft Entra ID para fora do Microsoft.Data.SqlClient foi introduzida na versão 6.0 upstream de Microsoft.Data.SqlClient. O ASP.NET Core 11 absorve essa alteração ao atualizar a versão do SqlClient da qual depende de forma transitiva. Para mais informações, consulte dotnet/aspnetcore#66179.

Se a sua aplicação usar uma cadeia de ligação SQL com qualquer valor Active Directory *Authentication=, adicione um PackageReference a Microsoft.Data.SqlClient.Extensions.Azure:

<ItemGroup>
  <PackageReference Include="Microsoft.Data.SqlClient.Extensions.Azure" 
    Version="1.0.0" />
</ItemGroup>

Os modelos do projeto ASP.NET Core "Individual Accounts" foram atualizados para adicionar esta referência às configurações de SQL do Azure que suportam. Projetos novos não exigem qualquer alteração manual.

APIs afetadas

Nenhum. A quebra é um requisito de tempo de execução transitivo para instalar um pacote NuGet. Nenhum tipo em Microsoft.AspNetCore.* é afetado.