Habilitar a autenticação do Microsoft Entra para SQL Server nas VMs do Azure
Aplica-se a: SQL Server na VM do Azure
Este artigo ensina você a habilitar a autenticação do Microsoft Entra ID (antigo Azure Active Directory) para o SQL Server em VMs (máquinas virtuais) do Azure.
Visão geral
A partir do SQL Server 2022, você pode se conectar ao SQL Server nas VMs do Azure usando um dos seguintes métodos de autenticação de identidade do Microsoft Entra:
- Senha oferece autenticação com credenciais do Microsoft Entra
- Universal com MFA adiciona a autenticação multifator
- Integrado usa provedores de federação comoServiços de Federação do Active Directory (ADFS) para habilitar experiências de logon único (SSO)
- Entidade de serviço habilita a autenticação a partir de Aplicativos Azure
- Identidade Gerenciada habilita a autenticação de aplicativos atribuídos a identidades do Microsoft Entra
Quando você cria um logon do Microsoft Entra para o SQL Server e quando um usuário se conecta usando esse logon, o SQL Server usa uma identidade gerenciada para consultar o Microsoft Graph. Ao habilitar a autenticação do Microsoft Entra ID para seu SQL Server na VM do Azure, você precisa fornecer uma identidade gerenciada que o SQL Server possa usar para se comunicar com o Microsoft Entra ID. Essa identidade gerenciada precisa ter permissões para consultar o Microsoft Graph.
Ao habilitar uma identidade gerenciada para um recurso no Azure, o limite de segurança da identidade é o recurso ao qual ela está anexada. Por exemplo, o limite de segurança de uma máquina virtual com as identidades gerenciadas para recursos do Azure habilitadas é a máquina virtual. Qualquer código em execução nessa VM pode chamar o ponto de extremidade das identidades gerenciadas e solicitar tokens. Ao habilitar uma identidade gerenciada para o SQL Server em VMs do Azure, a identidade é anexada à máquina virtual. Portanto, o limite de segurança é a máquina virtual. A experiência é semelhante a trabalhar com outros recursos que dão suporte a identidades gerenciadas. Para obter mais informações, leia as perguntas frequentes sobre as identidades gerenciadas.
As identidades gerenciadas atribuídas pelo sistema e pelo usuário usadas para a autenticação do Microsoft Entra com o SQL Server em VMs do Azure oferecem os seguintes benefícios:
- A Identidade gerenciada atribuída pelo sistema oferece um processo de configuração simplificado. Como a identidade gerenciada tem o mesmo tempo de vida que a máquina virtual, não é necessário excluí-la separadamente quando você exclui a máquina virtual.
- A Identidade gerenciada atribuída pelo usuário oferece escalabilidade, pois pode ser anexada e usada para autenticação do Microsoft Entra para vários SQL Server em VMs do Azure.
Para começar a usar identidades gerenciadas, examine Configurar identidades gerenciadas usando o portal do Azure.
Pré-requisitos
Para habilitar a autenticação do Microsoft Entra no SQL Server, você precisa dos seguintes pré-requisitos:
- Uso do SQL Server 2022.
- Registre a VM do SQL Server com a extensão do Agente Iaas do SQL Server em qualquer nuvem.
- Ter uma identidade gerenciada atribuída pelo sistema ou atribuída pelo usuário existente no mesmo locatário do Microsoft Entra da VM do SQL Server. Configurar identidades gerenciadas usando o portal do Azure para saber mais.
- CLI do Azure 2.48.0 ou posterior se você pretende usar a CLI do Azure para configurar a autenticação do Microsoft Entra para sua VM do SQL Server.
Conceder permissões
A identidade gerenciada que você escolhe para facilitar a autenticação entre o SQL Server e o Microsoft Entra ID precisa ter as três seguintes permissões de aplicativo do Microsoft Graph (funções de aplicativo): User.Read.All
, GroupMember.Read.All
e Application.Read.All
.
Como alternativa, adicionar a identidade gerenciada à função Leitores de diretório do Microsoft Entra concede permissões suficientes. Outra maneira de atribuir a função Leitores de Diretório a uma identidade gerenciada é atribuir a função Leitores de Diretório a um grupo no Microsoft Entra ID. Os proprietários do grupo podem adicionar a identidade gerenciada da Máquina Virtual como um membro desse grupo. Isso minimiza o envolvimento de Administradores globais do Microsoft Entra e delega a responsabilidade aos proprietários do grupo.
Adicionar a identidade gerenciada à função
Esta seção explica como adicionar sua identidade gerenciada à função Leitores de Diretório no Microsoft Entra ID. Você precisa ter privilégios de administrador global para fazer alterações nas atribuições da função Leitores de Diretório. Se não tiver permissão suficiente, trabalhe com o administrador do Microsoft Entra para seguir essas etapas.
Para conceder à identidade gerenciada a permissão da função Leitores de diretório, siga estas etapas:
Abra as funções e administradores da ID do Microsoft Entra no portal do Azure:
Digite Leitores de diretório na caixa de pesquisa e selecione a função Leitores de diretório para abrir a página Leitores de Diretório | Atribuições:
Na página Leitores de Diretório | Atribuições, selecione + Adicionar atribuições para abrir a página Adicionar atribuição.
Na página Adicionar atribuições, escolha Nenhum membro selecionado em Selecionar membros para abrir a página Selecionar um membro.
Na página Selecionar um membro, procure a identidade gerenciada que deseja usar com a VM do SQL Server e adicione-a à função Leitores de diretório. Para identidades gerenciadas atribuídas pelo sistema, localize o nome da VM. Use Selecionar para confirmar a identidade e volte à página Adicionar atribuições.
Verifique se você vê a identidade escolhida em Selecionar membros e escolha Avançar.
Verifique se o tipo de atribuição está definido como Ativo e se a caixa ao lado de Atribuído permanentemente está marcada. Insira uma justificativa comercial, como Adição de permissões da função Leitor de Diretório à identidade atribuída pelo sistema para VM2, e selecione Atribuir para salvar as configurações e volte à página Leitores de Diretório | Atribuições.
Na página Leitores de Diretório | Atribuições, confirme se você vê sua identidade recém-adicionada em Leitores de Diretório.
Adicionar permissões de função de aplicativo
Você pode usar o Azure PowerShell para conceder funções de aplicativo a uma identidade gerenciada. Para fazer isso, siga estas etapas:
Observação
Os módulos Azure AD e MSOnline PowerShell estão preteridos desde 30 de março de 2024. Para saber mais, leia a atualização de preterição. Após essa data, o suporte a esses módulos se limitará à assistência à migração para o SDK do Microsoft Graph PowerShell e às correções de segurança. Os módulos preteridos continuarão funcionando até 30 de março de 2025.
Recomendamos migrar para o Microsoft Graph PowerShell para interagir com o Microsoft Entra ID (antigo Azure AD). Para perguntas comuns sobre migração, consulte as Perguntas Frequentes sobre Migração. Observação: as versões 1.0.x do MSOnline poderão sofrer interrupções após 30 de junho de 2024.
Conectar o Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
Recupere a identidade gerenciada:
$Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'" $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
Atribua a função
User.Read.All
à identidade:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Atribua a função
GroupMember.Read.All
à identidade:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Atribua a função
Application.Read.All
à identidade:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Você pode validar se as permissões foram atribuídas à identidade gerenciada fazendo o seguinte:
- Vá para Microsoft Entra ID no portal do Azure.
- Escolha Aplicativos empresariais e, em seguida, selecione Todos os aplicativos em Gerenciar.
- Filtre o Tipo de aplicativo por
Managed identities
. - Selecione a identidade gerenciada e escolha Permissões em Segurança. Você deve conferir as seguintes permissões:
User.Read.All
,GroupMember.Read.All
,Application.Read.All
.
Habilitar a comunicação de saída
Para que a autenticação do Microsoft Entra funcione, você precisará do seguinte:
- Comunicação de saída do SQL Server para o Microsoft Entra ID e o ponto de extremidade do Microsoft Graph.
- Comunicação de saída do cliente SQL para o Microsoft Entra ID.
As configurações de VM padrão do Azure permitem a comunicação de saída com o ponto de extremidade do Microsoft Graph, bem como do Microsoft Entra ID, mas alguns usuários optam por restringir a comunicação de saída usando um firewall no nível do sistema operacional ou o NSG (grupo de segurança de rede) de VNet do Azure.
Os firewalls na VM do SQL Server e qualquer cliente SQL precisam permitir o tráfego de saída nas portas 80 e 443.
A regra NSG de VNet do Azure para a VNet que hospeda sua VM do SQL Server deve ter o seguinte:
- Uma marcas de serviço de
AzureActiveDirectory
. - Intervalos de porta de destino: 80, 443.
- Ação definida como Permitir.
- Uma prioridade alta (que é um número baixo).
Habilitar a autenticação do Microsoft Entra
Você pode habilitar a autenticação do Microsoft Entra para sua VM do SQL Server usando o portal do Azure ou a CLI do Azure.
Observação
Depois que a autenticação do Microsoft Entra estiver habilitada, você poderá seguir as mesmas etapas nesta seção para alterar a configuração para usar uma identidade gerenciada diferente.
Para habilitar a autenticação do Microsoft Entra na sua VM do SQL Server, siga estas etapas:
Navegue até o recurso de máquinas virtuais do SQL no portal do Azure.
Selecione Configuração de segurança em Segurança.
Escolha Habilitar em Autenticação do Microsoft Entra.
Escolha o tipo de identidade gerenciada no menu suspenso: Atribuída pelo sistema ou Atribuída pelo usuário. Se você escolher Atribuída pelo usuário, selecione a identidade que deseja usar para se autenticar no SQL Server na sua VM do Azure no menu suspenso Identidade gerenciada atribuída pelo usuário exibido.
Depois que a autenticação do Microsoft Entra tiver sido habilitada, você poderá seguir as mesmas etapas para alterar qual identidade gerenciada pode autenticar-se em sua VM do SQL Server.
Observação
O erro The selected managed identity does not have enough permissions for Microsoft Entra authentication
indica que as permissões não foram atribuídas corretamente à identidade selecionada. Verifique a seção Conceder permissões para atribuir permissões adequadas.
Limitações
Considere as seguintes limitações:
- A autenticação do Microsoft Entra só tem suporte com o SQL Server 2022 em execução em VMs do Windows registradas com a extensão do Agente de IaaS do SQL, implantada em qualquer nuvem. Somente há suporte para cenários compatíveis com a extensão Agente de IaaS do SQL, como uma instância padrão ou uma única instância nomeada. Não há suporte a instâncias de Cluster de Failover.
- A identidade que você escolhe para se autenticar no SQL Server precisa ter as permissões da função Leitores de diretório no Microsoft Entra ID ou as três seguintes permissões de aplicativo do Microsoft Graph (funções de aplicativo):
User.Read.All
,GroupMember.Read.All
eApplication.Read.All
. - Depois que a autenticação do Microsoft Entra é habilitada, não há como desativá-la.
- Atualmente, não há suporte para a autenticação na VM do SQL Server no Azure por meio da autenticação do Microsoft Entra com o método FIDO2.
Próximas etapas
Confira as melhores práticas de segurança para o SQL Server.
Para ver outros artigos relacionados à execução do SQL Server em VMs do Azure, confira Visão geral do SQL Server em Máquinas Virtuais do Azure. Caso tenha dúvidas sobre as máquinas virtuais do SQL Server, confira as Perguntas frequentes.
Para saber mais, confira os outros artigos desta série de melhores práticas: