Tutorial: configurar a autenticação do Microsoft Entra para SQL Server

Aplica-se a: SQL Server 2022 (16.x)

Este artigo descreve um processo com etapas detalhadas sobre como configurar a autenticação com o Microsoft Entra ID e apresenta instruções de como usar diferentes métodos de autenticação do Microsoft Entra.

Observação

O Microsoft Entra ID era conhecido como Azure Active Directory (Azure AD).

Neste tutorial, você aprenderá a:

  • Criar e efetuar o registro de um aplicativo do Microsoft Entra
  • Conceder permissões ao aplicativo do Microsoft Entra
  • Criar e atribuir um certificado
  • Configurar a autenticação do Microsoft Entra para o SQL Server por meio do portal do Azure
  • Criar logons e usuários
  • Conectar-se com um método de autenticação com suporte

Pré-requisitos

Pré-requisitos de autenticação

Observação

A funcionalidade estendida foi implementada no Azure para permitir a criação automática do certificado do Azure Key Vault e do aplicativo do Microsoft Entra durante a configuração de um administrador do Microsoft Entra para o SQL Server. Para obter mais informações, confira Tutorial: usando automação para configurar o administrador do Microsoft Entra para SQL Server.

  • Registro de aplicativo do Microsoft Entra para o SQL Server. O registro de uma instância do SQL Server como um aplicativo do Microsoft Entra permite que a instância consulte o Microsoft Entra ID e possibilita que o aplicativo do Microsoft Entra realize a autenticação em nome da instância do SQL Server. O registro de aplicativo também requer algumas permissões que são usadas pelo SQL Server para determinadas consultas.

  • O SQL Server usa um certificado para essa autenticação, que é armazenado no AKV (Azure Key Vault). O agente do Azure Arc baixa o certificado no host da instância do SQL Server.

Aviso

As conexões autenticadas pelo Microsoft Entra ID são Always Encrypted. Se o SQL Server usar um certificado autoassinado, você deverá adicionar trust server cert = true à cadeia de conexão. As conexões autenticadas do SQL Server e do Windows não exigem criptografia, mas é altamente recomendado.

Criar e efetuar o registro de um aplicativo do Microsoft Entra

  1. Acesse o portal do Azure, selecione Microsoft Entra ID>Registros de Aplicativo>Novo Registro.
    1. Especifique um nome. O exemplo neste artigo usa SQLServerCTP1.
    2. Selecione Tipos de contas com suporte e use Contas somente no diretório desta organização
    3. Não defina um URI de redirecionamento
    4. Escolha Registrar

Veja o registro de aplicativo abaixo:

Screenshot of registering application in the Azure portal.

Conceder permissões de aplicativo

Selecione o aplicativo recém-criado e, no menu à esquerda, selecione Permissões de API.

  1. Selecione Adicionar uma permissão>Microsoft Graph>Permissões de aplicativo

    1. Marque Directory.Read.All
    2. Selecione Adicionar permissões
  2. Selecione Adicionar uma permissão>Microsoft Graph>Permissões delegadas

    1. Marque Application.Read.All
    2. Marque Directory.AccessAsUser.All
    3. Marque Group.Read.All
    4. Marque User.Read.All
    5. Selecione Adicionar permissões
  3. Selecione Conceder consentimento do administrador

Screenshot of application permissions in the Azure portal.

Observação

Para a concessão de consentimento do administrador para as permissões acima, sua conta do Microsoft Entra requer a função de Administrador Global ou de Administrador de Funções com Privilégios.

Criar e atribuir um certificado

  1. Acesse o portal do Azure, selecione Cofres de chaves e selecione o cofre de chaves que você deseja usar ou crie um. Selecione Certificados>Gerar/Importar

    1. No Método de criação de certificado, use Gerar.

    2. Adicione um nome de certificado e uma entidade.

    3. O período de validade recomendado é de no máximo 12 meses. O restante dos valores pode ser mantido com o padrão.

    4. Selecione Criar.

    Screenshot of creating certificate in the Azure portal.

    Observação

    Depois que o certificado for criado, ele poderá mostrar que está desabilitado. Atualize o site para mostrar o certificado como habilitado.

  2. Navegue até o novo certificado e selecione a linha para a versão mais recente do certificado. Selecione Baixar no formato CER para salvar a chave pública do certificado.

    Screenshot of certificate in the Azure portal where you can view and download the certificate.

    Observação

    Isso não precisa ser feito no host do SQL Server. Pode ser feito em qualquer cliente que for acessar o portal do Azure para a próxima etapa.

  3. No portal do Azure, navegue até o registro de aplicativo criado acima e selecione a lista Certificados

    1. Selecione carregar certificado.
    2. Selecione a chave pública (arquivo .cer) baixada na última etapa.
    3. Selecione Adicionar.

    Screenshot of certificate and secrets menu in the Azure portal.

  4. No portal do Azure, navegue até a instância do Azure Key Vault em que o certificado está armazenado e escolha Políticas de acesso no menu de navegação.

    1. Selecione Criar.

    2. Selecione Permissões de segredo e escolha Obter e Listar.

    3. Em Permissões de certificado, escolha Obter e Listar.

    4. Selecione Avançar.

    5. Na página Entidade de segurança, pesquise o nome do seu computador - instância do Azure Arc, que é o nome do host do SQL Server.

      Screenshot of Azure Arc server resource in portal.

    6. Ignore a páginaAplicativo (opcional) selecionando duas vezes Avançar ou selecionando Analisar + criar.

      Verifique se a "ID de objeto" da Entidade de segurança corresponde à ID de entidade de segurança da identidade gerenciada atribuída à instância.

      Screenshot of Azure portal to review and create access policy.

      Para confirmar, vá para a página de recursos e selecione Exibição JSON no canto superior direito da caixa Essenciais na página de Visão geral. Em identidade, você encontrará a principalId

      Screenshot of portal control of JSON view of machine definition.

    7. Selecione Criar.

    Você deve selecionar Criar para garantir que as permissões sejam aplicadas. Para garantir que as permissões tenham sido armazenadas, atualize a janela do navegador e verifique se a linha da instância do Azure Arc ainda está presente.

    Screenshot of adding access policy to the key vault in the Azure portal.

Configurar a autenticação do Microsoft Entra para o SQL Server por meio do portal do Azure

Observação

O uso da CLI do Azure, do PowerShell ou do modelo do ARM para configurar um administrador do Microsoft Entra para o SQL Server está disponível.

  1. Acesse o portal do Azure e selecione SQL Server – Azure Arc e escolha a instância do host do SQL Server.

  2. Verifique o status do seu recurso SQL Server – Azure Arc e veja se ele está conectado, acessando o menu Propriedades. Para obter mais informações, confira Validar o SQL Server – recursos do Azure Arc.

  3. Selecione Microsoft Entra ID e Purview em Configurações no menu de recursos.

  4. Selecione Definir Administrador para abrir o painel do Microsoft Entra ID e escolha uma conta para definir como logon de administrador para o SQL Server.

  5. Selecione Certificado gerenciado pelo cliente e Selecione um certificado.

  6. Escolha Alterar certificado e escolha a instância do AKV e o certificado que você criou anteriormente no novo painel.

  7. Selecione Registro de aplicativo gerenciado pelo cliente.

  8. Selecione Alterar o registro do aplicativo e selecione o registro de aplicativo criado anteriormente.

  9. Selecione Salvar. Isso envia uma solicitação ao agente do servidor do Arc que configura a autenticação do Microsoft Entra para a instância do SQL Server.

    Screenshot of setting Microsoft Entra authentication in the Azure portal.

    Leva vários minutos para baixar os certificados e definir as configurações. Depois de definir todos os parâmetros e selecionar Salvar no portal do Azure, a seguinte mensagem poderá aparecer: SQL Server's Azure Arc agent is currently processing a request. Values below may be incorrect. Please wait until the agent is done before continuing. Aguarde até que o processo de salvamento seja confirmado com Saved successfully antes de tentar fazer logon no Microsoft Entra.

    O agente do servidor do Azure Arc só pode ser atualizado após a conclusão da ação anterior. Isso significa que salvar uma nova configuração do Microsoft Entra antes que a última seja finalizada pode causar uma falha. Se você vir a mensagem A chamada estendida falhou ao selecionar Salvar, aguarde 5 minutos e tente novamente.

    Observação

    Depois que o logon de administrador do Microsoft Entra recebe a função sysadmin, alterar o administrador do Microsoft Entra no portal do Azure não removerá o logon anterior que permanece como sysadmin. Para remover o logon, ele deve ser descartado manualmente.

    A alteração de administrador do Microsoft Entra para a instância do SQL Server ocorrerá sem reiniciar o servidor assim que o processo for concluído com o operador do Azure Arc do SQL Server. Para que o novo administrador seja exibido em sys.server_principals, a instância do SQL Server deve ser reiniciada e, antes disso, o administrador antigo é exibido. O administrador atual do Microsoft Entra pode ser verificado no portal do Azure.

Criar logons e usuários

Depois que o operador do Azure Arc no host do SQL Server tiver concluído a operação, a conta do administrador selecionada no menu do Microsoft Entra ID no portal será sysadmin na instância do SQL Server. Entre no SQL Server com a conta do administrador do Microsoft Entra com permissões sysadmin no servidor usando um cliente como SSMS ou Azure Data Studio.

Observação

Todas as conexões com o SQL Server que são feitas com a autenticação do Microsoft Entra requerem uma conexão criptografada. Se o DBA (Administrador de Banco de Dados) não tiver configurado um certificado SSL/TLS confiável para o servidor, os logons provavelmente falharão com a mensagem A cadeia de certificados foi emitida por uma autoridade que não é confiável. Para corrigir isso, configure a instância do SQL Server para usar um certificado SSL/TLS confiável pelo cliente ou selecione o certificado do servidor de confiança nas propriedades de conexão avançadas. Para saber mais, confira Habilitar conexões criptografadas para o Mecanismo de Banco de Dados.

Criar sintaxe de logon

A mesma sintaxe usada para criar logons e usuários do Microsoft Entra no Banco de Dados SQL do Azure e na Instância Gerenciada de SQL do Azure já pode ser usada no SQL Server.

Observação

No SQL Server, qualquer conta com a permissão ALTER ANY LOGIN ou ALTER ANY USER pode criar logons ou usuários do Microsoft Entra, respectivamente. A conta não precisa ser um logon do Microsoft Entra.

Para criar um logon para uma conta do Microsoft Entra, execute o seguinte comando T-SQL no banco de dados master:

CREATE LOGIN [principal_name] FROM EXTERNAL PROVIDER;

Para os usuários, o nome da entidade de segurança precisa estar no formato user@tenant.com. No Microsoft Entra ID, este é o nome UPN. Em todos os outros tipos de conta, como grupos ou aplicativos do Microsoft Entra, o nome da entidade de segurança corresponde ao nome do objeto do Microsoft Entra.

Veja alguns exemplos:

-- login creation for Microsoft Entra user
CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra group
CREATE LOGIN [my_group_name] FROM EXTERNAL PROVIDER;
GO
-- login creation for Microsoft Entra application
CREATE LOGIN [my_app_name] FROM EXTERNAL PROVIDER;
GO

Para listar os logons do Microsoft Entra no banco de dados master, execute o comando T-SQL:

SELECT * FROM sys.server_principals
WHERE type IN ('E', 'X');

Para conceder uma associação de usuário do Microsoft Entra à função sysadmin (por exemplo admin@contoso.com), execute os seguintes comandos em master:

CREATE LOGIN [admin@contoso.com] FROM EXTERNAL PROVIDER; 
GO
ALTER SERVER ROLE sysadmin ADD MEMBER [admin@contoso.com];
GO

O procedimento armazenado sp_addsrvrolemember deve ser executado como membro da função de servidor sysadmin do SQL Server.

Criar sintaxe de usuário

É possível criar um usuário de banco de dados do Microsoft Entra ID como um usuário de banco de dados associado a uma entidade de segurança de servidor (logon) ou como um usuário de banco de dados independente.

Para criar um usuário do Microsoft Entra usando um logon do Microsoft Entra em um banco de dados SQL Server, use a seguinte sintaxe:

CREATE USER [principal_name] FROM LOGIN [principal_name];

A sintaxe principal_name é a mesma para logons.

Estes são alguns exemplos:

-- for Azure AD user
CREATE USER [user@contoso.com] FROM LOGIN [user@contoso.com];
GO
-- for Azure AD group
CREATE USER [my_group_name] FROM LOGIN [my_group_name];
GO
-- for Azure AD application
CREATE USER [my_app_name] FROM LOGIN [my_app_name];
GO

Para criar um usuário de banco de dados independente do Microsoft Entra, que é um usuário não vinculado a um logon do servidor, a seguinte sintaxe pode ser executada:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

Use o nome de grupo do Microsoft Entra ou o nome do aplicativo do Microsoft Entra como <principal name> ao criar um usuário de banco de dados do Microsoft Entra usando um grupo ou um aplicativo.

Estes são alguns exemplos:

-- for Azure AD contained user
CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
GO
-- for Azure AD contained group
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO
--for Azure AD contained application
CREATE USER [my_group_name] FROM EXTERNAL PROVIDER;
GO

Para listar os usuários criados no banco de dados, execute o seguinte comando T-SQL:

SELECT * FROM sys.database_principals;

Um novo usuário de banco de dados recebe a permissão Connect por padrão. Todas as outras permissões do SQL Server devem ser concedidas explicitamente pelos concessores autorizados.

Contas convidado do Microsoft Entra

As sintaxes CREATE LOGIN e CREATE USER também dão suporte a usuários convidados. Por exemplo, se testuser@outlook.com for convidado para o locatário contoso.com, ele poderá ser adicionado como logon no SQL Server com a mesma sintaxe que a criação de qualquer outro usuário ou logon do Microsoft Entra. Ao criar usuários convidados e logons, use o email de origem da conta de convidado, não seu nome principal de usuário no locatário. Nos exemplos, outlook.com será fornecido mesmo que a conta esteja registrada no locatário contoso.com.

Criar um usuário convidado com base em um logon existente

CREATE USER [testuser@outlook.com] FROM LOGIN [testuser@outlook.com];

Criar um usuário convidado como um usuário independente

CREATE USER [testuser@outlook.com] FROM EXTERNAL PROVIDER;

Conectar-se com um método de autenticação com suporte

O SQL Server disponibiliza suporte a vários métodos de autenticação do Microsoft Entra:

  • Padrão
  • Nome de usuário e senha
  • Integrado
  • Universal com autenticação multifator
  • Entidade de serviço
  • Identidade gerenciada
  • Token de acesso

Use um desses métodos para se conectar à instância do SQL Server. Para obter mais informações, veja Autenticação do Microsoft Entra para SQL Server.

Exemplo de autenticação usando o SSMS

Observação

Embora o Microsoft Entra ID seja o novo nome do Azure Active Directory (Azure AD), para evitar a interrupção de ambientes existentes, o Azure AD ainda permanecerá em alguns elementos codificados, como campos de interface do usuário, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

Veja abaixo o instantâneo da página de conexão do SQL Server Management Studio (SSMS) usando o método de autenticação Azure Active Directory – Universal com MFA.

Screenshot SSMS showing the Connect to Server window.

Durante o processo de autenticação, um banco de dados em que o usuário foi criado deve ser indicado explicitamente no SSMS. Expanda Opções > Propriedades de conexão > Conectar-se ao banco de dados: database_name.

Para obter mais informações, consulte Usar a autenticação multifator do Microsoft Entra.

As ferramentas do SQL Server que são compatíveis com a autenticação do Microsoft Entra para o SQL do Azure também são compatíveis com o SQL Server 2022 (16.x).

Localização na qual os parâmetros do Microsoft Entra ID são armazenados

Aviso

Os parâmetros do Microsoft Entra ID são configurados pelo operador do Azure Arc e não devem ser reconfigurados manualmente.

No Linux, os parâmetros do Microsoft Entra ID são armazenados no formato mssql-conf. Para obter mais informações sobre as opções de configuração no Linux, veja Configurar o SQL Server em Linux com a ferramenta mssql-conf.

Problemas conhecidos

  • A atualização do certificado não é propagada:
    • Quando a autenticação do Microsoft Entra estiver configurada para o SQL Server, a atualização do certificado no painel do Microsoft Entra ID e Purview do recurso do SQL Server – Azure Arc poderá não ser totalmente propagada. Isso resulta no salvamento bem-sucedido, mas com o valor antigo ainda sendo exibido. Para atualizar o certificado, faça o seguinte:

      • Selecione Remover Administrador.
      • Selecione Salvar.
      • Selecione Definir Administrador e reconfigure a autenticação do Microsoft Entra com o novo certificado.
      • Selecione Salvar.

Confira também