Partilhar via


Tutorial: Configurar a autenticação do Microsoft Entra para SQL Server habilitada pelo Azure Arc

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

Este artigo descreve um processo passo a passo para configurar a autenticação com o Microsoft Entra ID com registro de aplicativo e demonstra como usar diferentes métodos de autenticação do Microsoft Entra.

Observação

Microsoft Entra ID era anteriormente conhecido como Azure Ative Directory (Azure AD).

Neste tutorial, você aprenderá a:

  • Criar e registrar um aplicativo Microsoft Entra
  • Conceder permissões ao aplicativo Microsoft Entra
  • Criar e atribuir um certificado
  • Configurar a autenticação do Microsoft Entra para SQL Server através do portal do Azure
  • Criar logins e usuários
  • Conectar-se com um método de autenticação suportado

Pré-requisitos

Pré-requisitos de autenticação

Observação

Você pode usar o Azure para criar automaticamente o certificado do Cofre da Chave do Azure e o aplicativo Microsoft Entra ao configurar um administrador do Microsoft Entra para o servidor. Para obter mais informações, consulte Tutorial: Usando a automação para configurar o administrador do Microsoft Entra para SQL Server.

  • Registro de aplicativo Microsoft Entra para SQL Server. O registro de uma instância do SQL Server como um aplicativo do Microsoft Entra permite que a instância consulte a ID do Microsoft Entra e permite que o aplicativo Microsoft Entra se autentique em nome da instância do SQL Server. O registro de aplicativos 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 Azure Key Vault (AKV). O agente do Azure Arc baixa o certificado para o host da instância do SQL Server.

Advertência

As conexões autenticadas pelo Microsoft Entra ID são sempre criptografadas. Se o SQL Server estiver usando um certificado autoassinado, você deverá adicionar trust server cert = true na cadeia de conexão. As conexões autenticadas do SQL Server e do Windows não exigem criptografia, mas é altamente recomendada.

O SQL Server se conecta diretamente à ID do Microsoft Entra para autenticação. URLs de firewall explícitas precisam ser abertas para acesso direto, ou é necessário usar um servidor proxy. O Microsoft Entra ID não usa o proxy do Arc Connected Machine Agent para autenticação. Se a máquina requer o uso de um servidor proxy, o Microsoft Entra ID requer que o proxy WinHTTP no nível da máquina seja definido usando os seguintes comandos (substitua <http://proxyserver:port> pelo valor apropriado):

netsh winhttp set proxy proxy-server="<http://proxyserver:port>"

A autenticação do Microsoft Entra ID não utiliza a configuração de proxy do agente Arc. O proxy do Arc Agent pode ser definido usando os seguintes comandos (substitua <http://proxyserver:port> pelo valor apropriado):

azcmagent config set proxy.url "<http://proxyserver:port>"

Criar e registrar um aplicativo Microsoft Entra

  • Vá para o portal do Azure, selecione ID do Microsoft Entra>Registos de Aplicações>Novo Registo.
    1. Especifique um nome - O exemplo neste artigo usa SQLServer.
    2. Selecione Tipos de conta suportados e use Apenas contas neste diretório da organização
    3. Não defina um URI de redirecionamento
    4. Selecione Registo

Veja o registro do aplicativo abaixo:

Captura de ecrã do registo da aplicação no portal do Azure.

Conceder permissões de aplicativo

Selecione o aplicativo recém-criado e, no menu do lado esquerdo, selecione Permissões de API.

  1. Selecione Adicionar uma permissão>Permissões de Microsoft Graph>Permissões de Aplicação
    1. Verifique Directory.Read.All
    2. Selecione Adicionar permissões

Ou,

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

    1. Verifique Application.Read.All

    2. Verifique Group.Read.All

    3. Verifique User.Read.All

    4. Selecione Adicionar permissões

  2. Selecione Conceder consentimento de administrador

Captura de ecrã a mostrar como conceder consentimento no portal do Azure.

Observação

Para conceder o consentimento de administrador às permissões listadas acima, a sua conta do Microsoft Entra requer o papel de Administrador de Função Privilegiada ou permissões superiores.

Criar e atribuir um certificado

  1. Aceda ao portal do Azure, selecione Key vaultse escolha o cofre de chaves que deseja utilizar ou crie um novo. Selecione Certificados>Gerar/Importar

    1. Para o método de criação de certificados, use Gerar.

    2. Adicione um nome e um assunto do certificado. O nome do certificado deve ser exclusivo. Um nome de certificado que corresponde a um certificado existente causa um erro quando o logon é criado.

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

    4. Selecione Criar.

    Captura de ecrã da criação de certificados no portal do Azure.

    Observação

    Depois que o certificado é criado, ele pode dizer que está desativado. Atualize o site e ele mostrará o certificado como habilitado.

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

    Captura de ecrã do certificado no portal do Azure onde pode ver e transferir o certificado.

    Observação

    Isso não precisa ser feito no host do SQL Server. Mais especificamente, qualquer cliente que acederá ao portal do Azure para a próxima etapa.

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

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

    Captura de ecrã do menu de certificados e segredos no portal do Azure.

  4. No portal do Azure, obtenha a ID do objeto do Azure Arc Machine.

    1. Em Azure Arc Resources>Machines, selecione a máquina.

    2. Em Overview, localize Visão JSON.

    3. Em Identity, copie o valor de principalId.

      Captura de tela do controle do portal da visualização JSON da definição da máquina.

  5. No portal, navegue até a instância do Cofre da Chave do Azure onde o certificado está armazenado e conceda acesso ao(s) recurso(s) da Máquina do Azure. No menu de navegação do Azure Key Vault, aceda a Definiçõese Configuração de Acesso. Para obter etapas detalhadas para gerenciar atribuições de função, revise Atribuir funções do Azure usando o portal do Azure.

    A sua experiência depende da configuração de acesso ao cofre de chaves:

    Para usar controle de acesso baseado em funções do Azure (recomendado):

    1. Adicione as seguintes funções ao seu Recurso.

      • Usuário do certificado do Key Vault
      • Usuário do Key Vault Secrets
    2. Verifique as funções neste local:

      Captura de tela das adições de função do IAM do Azure Key Vault.

    Para utilizar a política de acesso do Vault:

    1. Selecione Políticas de Acesso no menu de navegação.

    2. Selecione Criar.

    3. Para permissões secretas, selecione Obter>Lista.

    4. Para permissões de Certificado, selecione Obter>Lista.

    5. Selecione Avançar.

    6. Para a página Principal, procure o nome da instância da sua Máquina - Azure Arc, que é o nome do host do SQL Server.

      Captura de ecrã do recurso de servidor Azure Arc no portal.

    7. Selecione Revise + criar.

    8. Verifique se o valor para ID de Objeto do Principal > corresponde ao ID do Principal da identidade gerida atribuída à instância.

      Captura de ecrã do portal do Azure para rever e criar a política de acesso.

      Para confirmar, vá para a página de recursos e selecione Vista JSON no canto superior direito da caixa Essentials na página de visão geral. Sob a identidade , encontrará o principalId

    9. Selecione Criar.

      Você deve selecionar Criar para garantir que as permissões sejam aplicadas. Para garantir que as permissões foram armazenadas, atualize a janela do navegador e confirme se sua instância do Azure Arc está presente.

Configurar a autenticação do Microsoft Entra para SQL Server através do portal do Azure

As etapas no portal do Azure se aplicam ao SQL Server 2022 (16.x).

Os passos no portal Azure não se aplicam ao SQL Server 2025 (17.x).

Observação

Você pode configurar a autenticação do Microsoft Entra com qualquer uma das seguintes experiências:

  1. Vá para o portal do Azuree selecione SQL Server – Azure Arce selecione a instância para seu host do SQL Server.

  2. Verifique o estado do recurso SQL Server - Azure Arc e veja se está conectado indo ao menu Propriedades. Para obter mais informações, consulte Validar os recursos do SQL Server - Azure Arc.

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

  4. Selecione set Admin para abrir o painel Microsoft Entra ID e escolha uma conta para definir como um logon de administrador para o SQL Server.

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

  6. Selecione Alterar certificadoe selecione sua instância AKV e certificado que você criou anteriormente no novo painel.

  7. Selecione Registro de aplicativo gerenciado pelo cliente.

  8. Selecione Alterar o registo da aplicaçãoe selecione o registo da aplicação que criou anteriormente.

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

    Captura de ecrã a mostrar a definição da autenticação do Microsoft Entra no portal do Azure.

    Leva vários minutos para baixar certificados e definir configurações. Depois de definir todos os parâmetros e selecionar Salvar no portal do Azure, a seguinte mensagem pode 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 um login do Microsoft Entra.

    O agente do servidor Azure Arc só pode ser atualizado depois que a ação anterior for concluída. Isso significa que salvar uma nova configuração do Microsoft Entra antes que a última seja finalizada pode causar uma falha. Se vir a mensagem Chamada estendida falhou ao selecionar Guardar, aguarde 5 minutos e tente novamente.

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

    A alteração do administrador do Microsoft Entra para a instância do SQL Server ocorre sem necessidade de reiniciar o servidor, após a conclusão do processo com o agente Azure Arc do SQL Server. Para que o novo administrador seja exibido no sys.server_principals, a instância do SQL Server deve ser reiniciada e, até lá, o administrador antigo é exibido. O administrador atual do Microsoft Entra pode ser verificado no portal do Azure.

Criar logins e usuários

Depois que o agente do Azure Arc no host do SQL Server concluir a sua operação, a conta de administrador selecionada no menu ID do Microsoft Entra no portal será uma sysadmin na instância do SQL Server. Inicie sessão no SQL Server com a conta de administrador Microsoft Entra que tem permissões de sysadmin no servidor com um cliente como o SQL Server Management Studio (SSMS).

Observação

Todas as conexões com o SQL Server feitas com a autenticação do Microsoft Entra exigem uma conexão criptografada. Se o administrador de banco de dados (DBA) não tiver configurado um certificado SSL/TLS confiável para o servidor, os logins provavelmente falharão com a mensagem:

The certificate chain was issued by an authority that is not trusted.

Para corrigir isso, configure a instância do SQL Server para usar um certificado SSL/TLS confiável pelo cliente ou selecione certificado de servidor confiável nas propriedades avançadas de conexão. Para obter mais informações, consulte Configurar o Mecanismo de Banco de Dados do SQL Server para criptografar conexões.

Criar sintaxe de login

A mesma sintaxe para criar logons e utilizadores do Microsoft Entra no Azure SQL Database e Azure SQL Managed Instance agora pode ser utilizada no SQL Server.

Observação

No SQL Server, qualquer conta do Microsoft Entra que tenha a ALTER ANY LOGIN permissão ou ALTER ANY USER pode criar logons ou usuários do Microsoft Entra, respectivamente. Caso contrário, apenas contas com sysadmin permissões podem criar logins ou usuários 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 principal deve estar no formato user@tenant.com. No Microsoft Entra ID, este é o nome principal do usuário. Para todos os outros tipos de conta, como grupos ou aplicativos do Microsoft Entra, o nome principal é o nome do objeto do Microsoft Entra.

Eis 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 a um usuário do Microsoft Entra a associação para a função sysadmin (por exemplo, admin@contoso.com), execute os seguintes comandos no 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 do SQL Server sysadmin.

Criar sintaxe de usuário

Você pode criar um utilizador de base de dados a partir do Microsoft Entra ID, seja como um utilizador de base de dados associado a uma entidade principal de servidor (login), ou como um utilizador de base de dados contido.

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

CREATE USER [principal_name] FROM LOGIN [principal_name];

A sintaxe principal_name é a mesma que é usada nos logins.

Eis 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 contido do Microsoft Entra, que é um usuário não vinculado a um logon de servidor, a seguinte sintaxe pode ser executada:

CREATE USER [principal name] FROM EXTERNAL PROVIDER;

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

Eis 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 banco de dados tem por padrão a permissão Connect. Todas as outras permissões do SQL Server devem ser concedidas explicitamente por outorgantes autorizados.

Contas de convidado do Microsoft Entra

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

Criar um usuário convidado a partir de um login existente

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

Criar um usuário convidado como um usuário contido

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

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

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

  • Padrão
  • Nome de utilizador e palavra-passe
  • Integrado
  • Universal com autenticação multifator
  • Principal 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, consulte 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 para o Azure Active Directory (Azure AD), a fim de evitar interromper ambientes existentes, o Azure AD ainda continua a ser utilizado em alguns elementos codificados, como campos da interface do utilizador, provedores de conexão, códigos de erro e cmdlets. Neste artigo, os dois nomes são intercambiáveis.

Abaixo está o instantâneo da página de conexão do SQL Server Management Studio (SSMS) usando o método de autenticação Azure Ative Directory - Universal com MFA.

Captura de tela do SSMS mostrando a janela Conectar ao Servidor.

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

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

As ferramentas do SQL Server que dão suporte à autenticação Microsoft Entra para o SQL do Azure também são suportadas para o SQL Server 2022 (16.x).

Local onde os parâmetros de ID do Microsoft Entra são armazenados

Advertência

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

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

Problemas conhecidos

  • A atualização do certificado não se propaga:
    • Depois que a autenticação do Microsoft Entra estiver configurada para o SQL Server, a atualização do certificado no painel Microsoft Entra ID e Purview do recurso SQL Server - Azure Arc pode não se propagar totalmente. Isso faz com que a gravação seja bem-sucedida, mas o valor antigo ainda seja exibido. Para atualizar o certificado, faça o seguinte:

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