Habilitar a autenticação de banco de dados do Microsoft Entra

Concluído

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

Observação

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

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

Pré-requisitos

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

Criar e configurar um tenant do Microsoft Entra

Antes de configurar a autenticação do Microsoft Entra para seu 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 a federação de um Serviço de Domínio Ative Directory local.

Para obter mais informações, consulte:

Configurar o 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 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 Azure e Azure Synapse Analytics

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

No portal do Azure, você pode encontrar o nome do servidor lógico

  • No campo nome do servidor na página Visão geral do Banco de Dados SQL do Azure.
  • No campo Nome do servidor na página Visão geral do seu pool SQL dedicado independente no Azure Synapse Analytics.
  • No endpoint SQL relevante na página de Resumo do seu espaço de trabalho do Azure Synapse Analytics.
  • portal do Azure
  • PowerShell
  • CLI do Azure
  • APIs REST

Para definir o administrador do Microsoft Entra para o seu servidor lógico no portal do Azure, siga estes passos:

  1. No painel Diretórios + assinaturas do portal do Azure, escolha o diretório que contém seu recurso SQL do Azure como o diretório Atual.
  2. Procure servidores SQL e, em seguida, selecione o servidor lógico para o recurso de banco de dados para abrir o painel do servidor SQL.
  3. No painel do servidor SQL do seu servidor lógico, selecione ID do Microsoft Entra em Configurações para abrir o painel ID do Microsoft Entra.
  4. No painel ID do Microsoft Entra, selecione Definir administrador para abrir o painel ID do Microsoft Entra.
  5. O painel ID do Microsoft Entra 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 e selecione-a e clique em Selecionar para fechar o painel.
  6. Na parte superior da página Microsoft Entra ID do seu servidor lógico, selecione Guardar.

A ID do objeto é exibida ao lado do nome do administrador para usuários e grupos do Microsoft Entra. Para aplicações (entidades de serviço), o identificador da aplicação é mostrado.

O processo de mudança de administrador pode levar vários minutos. Em seguida, o novo administrador aparece no campo admin do Microsoft Entra.

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

Observação

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

Azure SQL Managed Instance

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

Para conceder à sua instância gerenciada SQL permissões de leitura para o Microsoft Entra ID usando o portal do Azure, entre como um Administrador de Função Privilegiada 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. Mude de diretório, se necessá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 SQL e selecione sua instância gerenciada para abrir o painel de instância gerenciada SQL. Em seguida, selecione ID do Microsoft Entra em Configurações para abrir o painel ID do Microsoft Entra para sua instância.
  4. No painel de administração do Microsoft Entra, selecione Definir administrador na barra de navegação para abrir o painel ID do Microsoft Entra.
  5. No painel ID do Microsoft Entra, 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 para a página de administração do Microsoft Entra para sua instância gerenciada. O painel ID do Microsoft Entra mostra todos os membros e grupos dentro do diretório atual. Não é possível selecionar utilizadores ou grupos acinzentados porque não são suportados como administradores do Microsoft Entra. Selecione a identidade que deseja atribuir como administrador.
  6. Na barra de navegação da página de administração do Microsoft Entra para sua instância gerenciada, selecione Salvar para confirmar o administrador do Microsoft Entra. Após a conclusão da operação de alteração de administrador, o novo administrador aparece no campo admin do Microsoft Entra. A ID do objeto é exibida ao lado do nome do administrador para usuários e grupos do Microsoft Entra. Para aplicações (entidades de serviço), o identificador da aplicação é mostrado.

Sugestão

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

Atribuir permissões do Microsoft Graph

A Instância SQL Gerida necessita de permissões para ler o Microsoft Entra ID em cenários como autorizar utilizadores que se conectam através da associação a grupos de segurança e a criação de novos utilizadores. 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 nas permissões do Microsoft Graph. O Banco de Dados SQL do Azure e o Azure Synapse Analytics oferecem suporte a permissões de Gráfico refinadas para esses cenários, enquanto a Instância Gerenciada do 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ágina Microsoft Entra ID para a Instância Gerenciada do SQL no portal do Azure exibe um banner conveniente quando não lhe são atribuídas as permissões de Leitor de Diretório.

  1. Selecione o banner na parte superior da página ID do Microsoft Entra e conceda permissão à identidade gerenciada atribuída pelo sistema ou pelo usuário que representa sua instância. Somente um Administrador de Função Privilegiada ou uma função superior em seu locatário pode executar essa operação.
  2. Quando a operação é bem-sucedida, uma notificação de Êxito é exibida no canto superior direito:

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

Criar entidades do Microsoft Entra em SQL

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

Permissões de 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 que também tenha permissões atribuídas no servidor.
  • Se o usuário for criado a partir de um login, ele herdará as permissões atribuídas ao servidor do login aplicável 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 (ID do Microsoft Entra, autenticação SQL, etc.). Recomendamos conceder permissões para 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 permissões apropriadas. Isso simplifica o gerenciamento de permissões de longo prazo e reduz a probabilidade de uma identidade reter o acesso após o momento apropriado.

Para obter mais informações, consulte:

Utilizadores contidos na base de dados

Um usuário de banco de dados contido é um tipo de usuário SQL que não está conectado a um logon no banco de dados mestre. Para criar um usuário de banco de dados contido do 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 T-SQL a seguir cria uma entidade de banco de dados Microsoft_Entra_principal_name a partir do Microsoft Entra ID.

SQL

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;


SQL

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;


SQL

CREATE USER [appName] FROM EXTERNAL PROVIDER;


SQL

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


Utilizadores baseados em login

Observação

As entidades de servidor (logons) do 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 geralmente disponíveis para a Instância Gerenciada SQL do Azure e o SQL Server 2022.

Os principais de servidor (ou logins) do Microsoft Entra são suportados, o que significa que não são necessários usuários contidos no banco de dados. As entidades de banco de dados (usuários) podem ser criadas com base em uma entidade principal de servidor, o que significa que os usuários do Microsoft Entra podem herdar permissões atribuídas ao nível do servidor a partir de um login.

SQL

CREATE USER [appName] FROM LOGIN [appName];


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

Utilizadores externos

Não se pode criar diretamente um utilizador de base de dados para uma identidade gerida num locatário do Microsoft Entra diferente daquele ao qual está associada a 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 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 contido representando um usuário de domínio federado ou gerenciado do Microsoft Entra:

SQL

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


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

Considerações sobre nomenclatura

Caracteres especiais como dois-pontos ":" ou e comercial "&" não têm suporte quando incluídos como nomes de usuário nas instruções T-SQL CREATE LOGIN e CREATE USER.

O Microsoft Entra ID e o Azure SQL divergem em seu design de gerenciamento de usuários de uma maneira fundamental: o Microsoft Entra ID permite que nomes de exibição sejam duplicados dentro de 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 principais, isso pode causar erros na criação de utilizadores. Para resolver este problema, o Azure SQL lançou a melhoria WITH OBJECT_ID, atualmente em pré-visualização, que permite aos utilizadores especificar o identificador de objeto Microsoft Entra da identidade que está a ser adicionada ao servidor ou instância.

Permissões do Microsoft Graph

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

  • 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 é negado, que o usuário deve se inscrever no MFA para acessar o recurso ou que o acesso entre aplicativos primários deve ser tratado por meio de pré-autorização. Nos dois primeiros casos, o problema geralmente é causado por políticas de Acesso Condicional definidas no locatário do Microsoft Entra do usuário: elas impedem que o usuário acesse o provedor externo. A atualização das políticas de Acesso Condicional para permitir o acesso ao aplicativo '00000003-0000-0000-c000-0000000000000' (a ID do aplicativo da API do Microsoft Graph) deve resolver o problema. Se o erro indicar que o acesso entre aplicações de primeira parte deve ser tratado por meio de pré-autorização, o problema é que o utilizador está registado como um principal de serviço. O comando deve ter êxito 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 false. 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 contidos com base em identidades do Microsoft Entra, consulte CREATE USER.

Configurar a autenticação multifator

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

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

Conecte-se com o Microsoft Entra

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

Solucionar problemas de autenticação do Microsoft Entra

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