Compartilhar via


Configurar e gerenciar a autenticação do Microsoft Entra com o Azure SQL

Aplica-se a: Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics

Saiba como usar o Microsoft Entra ID para autenticação com Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure e Azure Synapse Analytics.

Observação

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

Como alternativa, você também pode configurar a autenticação do Microsoft Entra para SQL Server em Máquinas Virtuais do Azure.

Pré-requisitos

Para usar a autenticação do Microsoft Entra com o recurso do SQL do Azure, você precisa dos seguintes pré-requisitos:

Criar e preencher um locatário do Microsoft Entra

Antes de configurar a autenticação do Microsoft Entra para o recurso SQL do Azure, você precisa criar um locatário do Microsoft Entra e preenchê-lo com usuários e grupos. Os locatários do Microsoft Entra podem ser gerenciados inteiramente no Azure ou usados para federação de um Serviço de Domínio do Active Directory local.

Para saber mais, veja:

Configurar um administrador do Microsoft Entra

Para usar a autenticação do Microsoft Entra com seu recurso, ele precisa ter o administrador do Microsoft Entra definido. Embora conceitualmente as etapas sejam as mesmas para o Banco de Dados SQL do Azure, o Azure Synapse Analytics e a Instância Gerenciada de SQL do Azure, esta seção descreve em detalhes as diferentes APIs e experiências de portal para fazer isso por produto.

O administrador do Microsoft Entra também pode ser configurado quando o recurso SQL do Azure é criado. Se um administrador do Microsoft Entra já estiver configurado, ignore esta seção.

Banco de Dados SQL do Microsoft Azure e Azure Synapse Analytics

Definir o administrador do Microsoft Entra habilita a autenticação do Microsoft Entra para o servidor lógico do Banco de Dados SQL do Azure e do Azure Synapse Analytics. Você pode definir um administrador do Microsoft Entra para seu servidor usando o portal do Azure, o PowerShell, a CLI do Azure ou as APIs REST.

Encontre o nome do servidor lógico no portal do Azure

  • Na página Visão Geral, no campo Nome do servidor do Banco de Dados SQL do Azure.
  • No campo de nome do servidor na página Visão geral do pool de SQL dedicado autônomo no Azure Synapse Analytics.
  • No ponto de extremidade SQL relevante na página Visão geral do workspace do Azure Synapse Analytics.

Para definir o administrador do Microsoft Entra para o servidor lógico no portal do Azure, siga estas etapas:

  1. No painel Diretórios + assinaturas do portal do Azure, escolha o diretório que contém o recurso SQL do Azure como o diretório atual.

  2. Pesquise servidores SQL e selecione o servidor lógico para o recurso de banco de dados para abrir o painel do servidor SQL.

    Captura de tela que mostra como procurar e selecionar o servidores SQL.

  3. No painel do SQL Server do servidor lógico, selecione Microsoft Entra ID em Configurações para abrir o painel do Microsoft Entra ID.

  4. Na página Microsoft Entra ID, selecione Definir administrador para abrir o painel Microsoft Entra ID.

    A captura de tela mostra a opção de definir o administrador do Microsoft Entra para servidores SQL.

  5. O painel do Microsoft Entra ID mostra todos os usuários, grupos e aplicativos em seu diretório atual e permite que você pesquise por nome, alias ou ID. Encontre a identidade desejada para o administrador do Microsoft Entra, selecione-a e clique em Selecionar para fechar o painel.

  6. Na parte superior da página Microsoft Entra ID para o servidor lógico, selecione Salvar.

    A captura de tela mostra a opção de salvar um administrador do Microsoft Entra.

    A ID do objeto é exibida ao lado do nome do administrador para usuários e grupos do Microsoft Entra. Para aplicativos (entidades de serviço), a ID do aplicativo é exibida.

O processo de alteração do administrador pode levar vários minutos. Em seguida, o novo administrador aparece no campo Administração do Microsoft Entra.

Para remover o administrador, na parte superior da página Microsoft Entra ID, selecione Remover administrador e Salvar. A remoção do administrador do Microsoft Entra desabilita a autenticação do Microsoft Entra para o servidor lógico.

Observação

O administrador do Microsoft Entra é armazenado no banco de master dados do servidor como um usuário (entidade de banco de dados). Como os nomes principais do banco de dados devem ser exclusivos, o nome de exibição do administrador não pode ser o mesmo que o nome de qualquer usuário no banco de dados do master servidor. Se um usuário com o nome já existir, a configuração do administrador do Microsoft Entra falhará e será revertida, indicando que o nome já está em uso.

Instância Gerenciada do Azure SQL

Definir o administrador do Microsoft Entra habilita a autenticação do Microsoft Entra para a Instância Gerenciada de SQL do Azure. Você pode definir um administrador do Microsoft Entra para sua instância gerenciada de SQL usando o portal do Azure, o PowerShell, a CLI do Azure ou as APIs REST.

Para conceder permissões de leitura a sua Instância Gerenciada de SQL para o Microsoft Entra ID usando o portal do Azure, entre como Administrador Global ou Administrador de funções com privilégios e siga estas etapas:

  1. No portal do Azure, no canto superior direito selecione sua conta e escolha Alternar diretórios para confirmar qual diretório é seu Diretório atual. Alterne diretórios, se necessário.

    Captura de tela do portal do Azure mostrando para onde alternar o diretório.

  2. No painel Diretórios + assinaturas do portal do Azure, escolha o diretório que contém sua instância gerenciada como o diretório atual.'''

  3. Pesquise instâncias gerenciadas de SQL e selecione sua instância gerenciada para abrir o painel Instância gerenciada de SQL. Em seguida, selecione Microsoft Entra ID em Configurações para abrir o painel Microsoft Entra ID para sua instância.

    Capture a tela da portal do Azure que mostra a página de administração do Microsoft Entra aberta para a Instância Gerenciada de SQL selecionada.

  4. No painel de Administração do Microsoft Entra, selecione Definir administrador na barra de navegação para abrir o painel Microsoft Entra ID.

    Captura de tela que mostra o comando Set admin destacado na página de administração do Microsoft Entra para a Instância Gerenciada de SQL selecionada.

  5. No painel Microsoft Entra ID, procure um usuário, marque a caixa ao lado do usuário ou grupo para ser um administrador e pressione Selecionar para fechar o painel e voltar à página Administração do Microsoft Entra para sua instância gerenciada.

    O painel Microsoft Entra ID mostra todos os membros e grupos no diretório atual. Os usuários ou grupos esmaecidos não podem ser selecionados, pois não têm suporte como administradores do Microsoft Entra. Selecione a identidade que você deseja atribuir como administrador.

  6. Na barra de navegação da página Administração do Microsoft Entra de sua instância gerenciada, selecione Salvar para confirmar o administrador do Microsoft Entra.

    Captura de tela da página de administração do Microsoft Entra com o botão Salvar na linha superior, ao lado dos botões de administração Definir administrador e Remover administrador.

    Após a conclusão da operação de alteração do administrador, o novo administrador aparece no campo de administração do Microsoft Entra.

    A ID do objeto é exibida ao lado do nome do administrador para usuários e grupos do Microsoft Entra. Para aplicativos (entidades de serviço), a ID do aplicativo é exibida.

Dica

Para remover o administrador posteriormente, na parte superior da página Microsoft Entra ID, selecione Remover administrador e Salvar.

Atribuir permissões do Microsoft Graph

A Instância Gerenciada de SQL precisa de permissão de leitura no Microsoft Entra ID para cenários como a autenticação de usuários que se conectam por meio da associação a um grupo de segurança ou a criação de novos usuários. Para que a autenticação do Microsoft Entra funcione, você precisa atribuir a identidade da instância gerenciada à função Leitores de Diretório. Você pode fazer isso usando o portal do Azure ou o PowerShell.

Para algumas operações, o Banco de Dados SQL do Azure e o Azure Synapse Analytics também exigem permissões para consultar o Microsoft Graph, explicado em Permissões do Microsoft Graph. O Banco de Dados SQL do Azure e o Azure Synapse Analytics dão suporte a permissões refinadas do Graph para esses cenários, enquanto a Instância Gerenciada de SQL requer a função Leitores de Diretório . As permissões refinadas e sua atribuição são descritas em detalhes em permitir que as entidades de serviço criem usuários do Microsoft Entra.

Função de leitores de diretório

A págino Microsoft Entra ID para a Instância Gerenciada de SQL no portal do Azure exibe uma faixa conveniente quando a instância não recebe as permissões de Leitor de Diretório.

  1. Selecione a faixa na parte superior da págino Microsoft Entra ID e conceda permissão à identidade gerenciada atribuída pelo sistema ou pelo usuário que representa sua instância. Esta operação só pode ser executada pelo administrador global ou por um Administrador de funções com privilégios no locatário.

    Captura de tela da caixa de diálogo usada para conceder permissões a uma instância gerenciada de SQL para acessar o Microsoft Entra ID com o botão Conceder permissões selecionado.

  2. Quando a operação for bem-sucedida, uma notificação de sucesso será exibida no canto superior direito:

    Captura de tela de uma notificação que confirma que as permissões de leitura do Microsoft Entra ID foram atualizadas com êxito para a instância gerenciada.

O administrador do Microsoft Entra agora pode ser usado para criar entidades de servidor do Microsoft Entra (logons) e entidades de banco de dados (usuários). Para obter mais informações, consulte Integração do Microsoft Entra com a Instância Gerenciada de SQL do Azure.

Criar entidades de segurança do Microsoft Entra no SQL

Para se conectar a um banco de dados no Banco de Dados SQL ou no Azure Synapse Analytics com a autenticação do Microsoft Entra, uma entidade de segurança precisa ser configurada no banco de dados para essa identidade com pelo menos a CONNECT permissão.

Permissões do usuário do banco de dados

Quando um usuário de banco de dados é criado, ele recebe a permissão CONNECT para o banco de dados por padrão. Um usuário de banco de dados também herda permissões em duas circunstâncias:

  • Se o usuário for membro de um grupo do Microsoft Entra, ele também receberá permissões no servidor.
  • Se o usuário for criado a partir de um logon, ele herdará as permissões atribuídas pelo servidor do logon aplicáveis no banco de dados.

O gerenciamento de permissões para entidades de servidor e banco de dados funciona da mesma forma, independentemente do tipo de entidade de segurança (Microsoft Entra ID, autenticação SQL etc.). Recomendamos conceder permissões a funções de banco de dados em vez de conceder permissões diretamente aos usuários. Em seguida, os usuários podem ser adicionados a funções com as permissões apropriadas. Isso simplifica o gerenciamento de permissões de longo prazo e reduz a probabilidade de uma identidade reter o acesso além do apropriado.

Para saber mais, veja:

Usuários de banco de dados independente

Um usuário de banco de dados independente é um tipo de usuário SQL que não está conectado a um logon no master banco de dados. Para criar um usuário de banco de dados independente no Microsoft Entra, conecte-se ao banco de dados com uma identidade do Microsoft Entra que tenha, pelo menos, a permissão ALTER ANY USER. O exemplo de T-SQL a seguir cria uma entidade Microsoft_Entra_principal_name de banco de dados do Microsoft Entra ID.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Para criar um usuário de banco de dados independente para um grupo do Microsoft Entra, forneça o nome de exibição do grupo:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Para criar um usuário de banco de dados independente para uma identidade gerenciada ou entidade de serviço, insira o nome de exibição da identidade:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Para criar um usuário de banco de dados independente para um usuário do Microsoft Entra, insira o nome principal da identidade:

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;

Usuários baseados em login

Observação

As entidades de segurança (logons) do servidor Microsoft Entra estão atualmente em visualização pública para o Banco de Dados SQL do Azure e o Azure Synapse Analytics. Os logons do Microsoft Entra estão em disponibilidade geral na Instância Gerenciada de SQL do Azure e no SQL Server 2022.

Há suporte para entidades de servidor do Microsoft Entra (ou logons), o que significa que os usuários de banco de dados independente não são necessários. As entidades de banco de dados (usuários) podem ser criadas com base em uma entidade de servidor, o que significa que os usuários do Microsoft Entra podem herdar permissões atribuídas no nível do servidor de um logon.

CREATE USER [appName] FROM LOGIN [appName];

Para obter mais informações, confira Visão geral da Instância Gerenciada de SQL. Para obter a sintaxe na criação de entidades de segurança do servidor do Microsoft Entra (logons), consulte CREATE LOGIN.

Usuários externos

Você não pode criar diretamente um usuário de banco de dados para uma identidade gerenciada em um locatário do Microsoft Entra diferente daquele associado à sua assinatura do Azure. No entanto, os usuários em outros diretórios podem ser importados para o diretório associado como usuários externos. Eles podem então ser usados para criar usuários de banco de dados contidos que podem acessar o banco de dados. Os usuários externos também podem obter acesso por meio da associação a grupos do Microsoft Entra.

Exemplos: para criar um usuário de banco de dados independente que representa um usuário de domínio federado ou gerenciado pelo Microsoft Entra:

CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;

Uma conta de usuário de domínio federado que é importado para um domínio gerenciado como um usuário externo deve usar a identidade do domínio gerenciado.

Considerações sobre nome

Não há suporte para caracteres especiais, como dois-pontos : ou E comercial &, em nomes de usuário nas instruções de T-SQL CREATE LOGIN e CREATE USER.

O Microsoft Entra ID e o SQL do Azure divergem em seu design de gerenciamento de usuários de uma maneira importante: o Microsoft Entra ID permite que os nomes de exibição sejam duplicados em um locatário, enquanto o SQL do Azure exige que todas as entidades de servidor em um servidor ou instância e todas as entidades de banco de dados em um banco de dados tenham um nome exclusivo. Como o SQL do Azure usa diretamente o nome de exibição do Microsoft Entra da identidade ao criar entidades de segurança, isso pode resultar em erros ao criar usuários. Para resolver esse problema, o SQL do Azure lançou o WITH OBJECT_ID aprimoramento atualmente em versão prévia, que permite que os usuários especifiquem a ID de objeto do Microsoft Entra da identidade que está sendo adicionada ao servidor ou instância.

Permissões do Microsoft Graph

O comando CREATE USER ... FROM EXTERNAL PROVIDER requer acesso do SQL do Azure ao Microsoft Entra ID (o "provedor externo") em nome do usuário conectado. Às vezes, há circunstâncias que fazem com que o Microsoft Entra ID retorne uma exceção ao SQL do Azure.

  • Você pode encontrar o erro SQL 33134, que contém a mensagem de erro específica do Microsoft Entra ID. O erro geralmente diz que o acesso foi negado ou que o usuário deve se inscrever na MFA para acessar o recurso, ou que o acesso entre aplicativos primários deve ser realizado por meio de uma autorização prévia. Nos dois primeiros casos, o problema geralmente é causado pelas políticas de Acesso condicional que são definidas no locatário do Microsoft Entra do usuário: elas impedem que o usuário acesse o provedor externo. Atualizar as políticas de Acesso condicional para permitir o acesso ao aplicativo '00000003-0000-0000-c000-000000000000' (a ID de aplicativo da API do Microsoft Graph) deve resolver o problema. Se o erro indicar que o acesso entre aplicativos primários deve ser tratado por meio de pré-autorização, o problema ocorre, pois o usuário está conectado como uma entidade de serviço. O comando deverá ter sucesso se for executado por um usuário.
  • Se você receber um Tempo Limite de Conexão Expirado, talvez seja necessário definir o parâmetro TransparentNetworkIPResolution da cadeia de conexão como falso. Para obter mais informações, consulte Problema de tempo limite de conexão com o .NET Framework 4.6.1 – TransparentNetworkIPResolution.

Para obter mais informações sobre como criar usuários de banco de dados independente baseados em identidades do Microsoft Entra, consulte CRIAR USUÁRIO.

Configurar a autenticação multifator

Para melhorar a segurança do recurso SQL do Azure, considere configurar a MFA (autenticação multifator), que solicita que o usuário use um segundo método alternativo para se autenticar no banco de dados, como uma chamada telefônica ou um aplicativo autenticador.

Para usar a autenticação multifator com o recurso SQL do Azure, primeiro habilite a autenticação multifator e, em seguida, use uma política de acesso condicional para impor a MFA para o recurso SQL do Azure.

Conectar-se com o Microsoft Entra

Depois que a autenticação do Microsoft Entra for configurada, você poderá usá-la para se conectar ao recurso SQL com ferramentas da Microsoft, como SQL Server Management Studio e SQL Server Data Tools, e configurar aplicativos cliente para se conectar usando identidades do Microsoft Entra.

Solucionar problemas de autenticação do Microsoft Entra

Para obter orientação sobre como solucionar problemas, confiraBlog: Solucionando problemas relacionados à autenticação do Microsoft Entra com o Banco de Dados SQL do Azure e Azure Synapse.