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:

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:

  1. Abra as funções e administradores da ID do Microsoft Entra no portal do Azure:

  2. 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:

    Captura de tela da página Funções e administradores do portal do Azure, com a pesquisa e a seleção da função Leitores de Diretório.

  3. Na página Leitores de Diretório | Atribuições, selecione + Adicionar atribuições para abrir a página Adicionar atribuição.

    Captura de tela da página Leitores de Diretório do portal do Azure.

  4. Na página Adicionar atribuições, escolha Nenhum membro selecionado em Selecionar membros para abrir a página Selecionar um membro.

    Captura de tela da página Adicionar atribuição do portal do Azure, com a opção Nenhum membro selecionado realçada.

  5. 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.

    Captura de tela da pesquisa dos membros a serem selecionados no portal do Azure.

  6. Verifique se você vê a identidade escolhida em Selecionar membros e escolha Avançar.

    Captura de tela da página Adicionar atribuição no portal do Azure, com a VM2 adicionada como uma atribuição.

  7. 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.

    Captura de tela das configurações da página Adicionar atribuição no portal do Azure.

  8. Na página Leitores de Diretório | Atribuições, confirme se você vê sua identidade recém-adicionada em Leitores de Diretório.

    Captura de tela da página Leitores de Diretório do portal do Azure mostrando sua atribuição de VM adicionada à função.

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. Nota: as versões 1.0.x do MSOnline poderão sofrer interrupções após 30 de junho de 2024.

  1. Buscar o Microsoft Graph

    $AAD_SP = Get-AzureADServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    
  2. Recupere a identidade gerenciada:

    $MSI = Get-AzureADServicePrincipal -Filter "DisplayName eq '<your managed identity display name>'"
    
  3. Atribua a função User.Read.All à identidade:

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"}
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id
    
  4. Atribua a função GroupMember.Read.All à identidade:

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"}  
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id 
    
  5. Atribua a função Application.Read.All à identidade:

    $AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"}  
    New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId  -PrincipalId $MSI.ObjectId  
    -ResourceId $AAD_SP.ObjectId  -Id $AAD_AppRole.Id 
    

Você pode validar se as permissões foram atribuídas à identidade gerenciada fazendo o seguinte:

  1. Vá para Microsoft Entra ID no portal do Azure.
  2. Escolha Aplicativos empresariais e, em seguida, selecione Todos os aplicativos em Gerenciar.
  3. Filtre o Tipo de aplicativo por Managed identities.
  4. 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:

  1. Navegue até o recurso de máquinas virtuais do SQL no portal do Azure.

  2. Selecione Configuração de segurança em Segurança.

  3. Escolha Habilitar em Autenticação do Microsoft Entra.

  4. 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.

    Captura de tela da página de configuração de segurança da VM do SQL no portal do Azure, com a autenticação do Microsoft Entra selecionada.

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ó é compatível com o SQL Server 2022 executado nas VMs do Windows registradas com a extensão do Agente de IaaS do SQL e implantadas na nuvem pública. 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 e Application.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: