Habilitar a autenticação do Microsoft Entra para SQL Server em VMs do Azure

Aplica-se a:SQL Server na VM do Azure

Este artigo ensina você a habilitar a autenticação com o Microsoft Entra ID (anteriormente Azure Ative Directory) para seu SQL Server em máquinas virtuais (VMs) do Azure.

Descrição geral

A partir do SQL Server 2022, você pode se conectar ao SQL Server em VMs do Azure usando um dos seguintes métodos de autenticação do Microsoft Entra:

  • A senha oferece autenticação com credenciais do Microsoft Entra
  • Universal com MFA adiciona autenticação multifator
  • Integrado usa provedores de federação como os Serviços de Federação do Ative Directory (ADFS) para habilitar experiências de logon único (SSO)
  • A Entidade de Serviço habilita a autenticação de aplicativos do Azure
  • A Identidade Gerenciada permite 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 para seu SQL Server na VM do Azure, você precisa fornecer uma identidade gerenciada que o SQL Server possa usar para se comunicar com a ID do Microsoft Entra. 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 para uma máquina virtual com identidades gerenciadas para recursos do Azure habilitados é a máquina virtual. Qualquer código em execução nessa VM é capaz de chamar o ponto de extremidade de 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 ao trabalhar com outros recursos que suportam identidades gerenciadas. Para obter mais informações, leia as Perguntas frequentes sobre identidades gerenciadas.

As identidades gerenciadas atribuídas pelo sistema e pelo usuário usadas para 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 há necessidade de 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, revise 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:

  • Use o SQL Server 2022.
  • Registre a VM do SQL Server com a extensão do SQL Server Iaas Agent.
  • Ter uma identidade gerenciada atribuída pelo sistema ou pelo usuário existente no mesmo locatário do Microsoft Entra que sua VM do SQL Server. Configure 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 escolhida para facilitar a autenticação entre o SQL Server e a ID do Microsoft Entra deve ter as três permissões de aplicativo do Microsoft Graph a seguir (funções de aplicativo): User.ReadALL, GroupMember.Read.Alle 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 ID do Microsoft Entra. Os proprietários do grupo podem então adicionar a identidade gerenciada da Máquina Virtual como um membro desse grupo. Isso minimiza o envolvimento de administradores do Microsoft Entra Global e delega a responsabilidade aos proprietários do grupo.

Adicionar identidade gerenciada à função

Esta seção explica como adicionar sua identidade gerenciada à função Leitores de Diretório na ID do Microsoft Entra. Você precisa ter privilégios de Administrador Global para fazer alterações nas atribuições de função Leitores de Diretório. Se não tiver permissão suficiente, trabalhe com o administrador do Microsoft Entra para seguir estes passos.

Para conceder à sua identidade gerenciada a função Leitores de Diretório , siga estas etapas:

  1. Abra Funções e administradores do Microsoft Entra ID 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 o Leitores de diretório | Página de atribuições:

    Screenshot of the Roles and administrators page of the Azure portal, searching for and selecting the Directory Readers role.

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

    Screenshot of the Directory Readers page of the Azure portal.

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

    Screenshot of the add assignment page of the Azure portal, with No member selected highlighted.

  5. Na página Selecione um membro, procure o nome da identidade gerenciada que você deseja usar com sua VM do SQL Server e adicione-o à função Leitores de Diretório. Para identidades gerenciadas atribuídas pelo sistema, procure o nome da VM. Use Selecionar para confirmar a identidade e voltar para a página Adicionar atribuições .

    Screenshot searching for members to select in the Azure portal.

  6. Verifique se vê a identidade escolhida em Selecionar membros e, em seguida, selecione Seguinte.

    Screenshot of the Add assignment page in the Azure portal, with VM2 added as an assignment.

  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 Adicionando permissões de função de Leitor de Diretório à identidade atribuída pelo sistema para VM2 e, em seguida, selecione Atribuir para salvar suas configurações e voltar para os Leitores de Diretório | Página de atribuições .

    Screenshot of settings on the Add assignment in the Azure portal.

  8. No Diretório Leitores | Página Atribuições, confirme que você vê sua identidade recém-adicionada em Leitores de diretório.

    Screenshot of the Directory Readers page of the Azure portal showing your VM assignment added to the role.

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 o fazer, siga estes passos:

  1. Pesquisar no 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 User.Read.All função à 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 GroupMember.Read.All função à 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 Application.Read.All função à 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 as permissões atribuídas à identidade gerenciada fazendo o seguinte:

  1. Vá para Microsoft Entra ID no portal do Azure.
  2. Escolha Aplicativos corporativos e, em seguida, selecione Todos os aplicativos em Gerenciar.
  3. Filtre o tipo de aplicativo por Managed identities.
  4. Selecione a identidade gerenciada e, em seguida, escolha Permissões em Segurança. Você verá as seguintes permissões: User.Read.All, , GroupMember.Read.AllApplication.Read.All.

Ativar comunicação de saída

Para que a autenticação do Microsoft Entra funcione, você precisa 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 padrão da VM do Azure permitem a comunicação de saída para o ponto de extremidade do Microsoft Graph, bem como a ID do Microsoft Entra, mas alguns usuários optam por restringir a comunicação de saída usando um firewall no nível do sistema operacional ou o grupo de segurança de rede (NSG) da VNet do Azure.

Os firewalls na VM do SQL Server e em qualquer cliente SQL precisam permitir o tráfego de saída nas portas 80 e 443.

A regra NSG da VNet do Azure para a VNet que hospeda sua VM do SQL Server deve ter o seguinte:

  • Uma etiqueta de serviço de AzureActiveDirectory.
  • Intervalos de portas de destino de: 80, 443.
  • Ação definida como Permitir.
  • Uma alta prioridade (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.

Nota

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 para sua VM do SQL Server, siga estas etapas:

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

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

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

  4. Escolha o tipo de identidade gerenciada na lista suspensa, atribuída pelo sistema ou atribuída pelo usuário. Se você escolher atribuído pelo usuário, selecione a identidade que deseja usar para autenticar no SQL Server em sua VM do Azure na lista suspensa Identidade gerenciada atribuída pelo usuário exibida.

    Screenshot of the security configuration page for SQL VM in the Azure portal, with Microsoft Entra authentication selected.

Depois que a autenticação do Microsoft Entra tiver sido habilitada, você poderá seguir as mesmas etapas para alterar qual identidade gerenciada pode ser autenticada em sua VM do SQL Server.

Nota

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ó é suportada com o SQL Server 2022 em execução em VMs do Windows registradas com a extensão do SQL IaaS Agent e implantadas na nuvem pública. Somente cenários com suporte da extensão do SQL IaaS Agent são suportados, como uma instância padrão ou uma única instância nomeada.
  • A identidade escolhida para autenticar no SQL Server deve ter a função Leitores de Diretório na ID do Microsoft Entra ou as três permissões de aplicativo do Microsoft Graph a seguir (funções de aplicativo): User.ReadALL, GroupMember.Read.Alle Application.Read.All.
  • Depois que a autenticação do Microsoft Entra estiver habilitada, não há como desativá-la.
  • Atualmente, não há suporte para autenticação no SQL Server em VMs do Azure por meio da autenticação do Microsoft Entra usando o método FIDO2.

Próximos passos

Analise as práticas recomendadas de segurança para o SQL Server.

Para outros artigos relacionados à execução do SQL Server em VMs do Azure, consulte Visão geral do SQL Server em Máquinas Virtuais do Azure. Se você tiver dúvidas sobre máquinas virtuais do SQL Server, consulte as Perguntas freqüentes.

Para saber mais, consulte os outros artigos desta série de práticas recomendadas: