Usar a autenticação do Azure Active Directory

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

Este artigo fornece uma visão geral do uso do Azure Active Directory para autenticar no Banco de Dados SQL do Azure, Instância Gerenciada de SQL do Azure, SQL Server em VMs do Windows Azure, SQL do Synapse no Azure Synapse Analytics e SQL Server para Windows e Linux usando identidades no Azure AD.

Para saber como criar e preencher o Azure AD e configurar o Azure AD com o Banco de Dados SQL do Azure, a Instância Gerenciada de SQL do Azure e o SQL do Synapse, no Azure Synapse Analytics, confira Configurar o Azure AD e o Azure AD com SQL Server nas VMs do Azure.

Visão geral

A Autenticação de Senha do Active Directory é um mecanismo de conexão com o recurso do SQL usando identidades no Azure AD.

Com a autenticação do Azure AD, é possível gerenciar centralmente as identidades de usuários do banco de dados e outros serviços da Microsoft em uma única localização central. O gerenciamento central de IDs fornece um único local para gerenciar os usuários do banco de dados e simplifica o gerenciamento de permissões. Os benefícios incluem o seguinte:

  • Ele fornece uma alternativa para autenticação do SQL Server.

  • Ajuda a impedir a proliferação de identidades de usuário entre servidores.

  • Permite o rodízio de senhas em um único lugar.

  • Os clientes podem gerenciar permissões de banco de dados usando grupos (Azure AD) externos.

  • Pode eliminar o armazenamento de senhas, permitindo a autenticação integrada do Windows e outras formas de autenticação às quais o Active Directory do Azure dá suporte.

  • A autenticação do Azure AD usa usuários de banco de dados independente para autenticar identidades no banco de dados.

  • O Azure AD dá suporte à autenticação baseada em token em aplicativos que se conectam ao Banco de Dados SQL e à Instância Gerenciada de SQL.

  • A autenticação do Azure AD dá suporte a:

  • O Azure AD dá suporte a conexões do SQL Server Management Studio que usam a Autenticação Universal do Active Directory, que inclui Autenticação Multifator. A autenticação multifator fornece autenticação forte com uma variedade de opções de fácil verificação - chamada telefônica, mensagem de texto, cartões inteligentes com pin ou notificação por aplicativos móveis. Para obter mais informações, confira Suporte do SSMS para autenticação multifator do Azure AD com Banco de Dados SQL do Azure, Instância Gerenciada de SQL e Azure Synapse

  • O Azure AD dá suporte a conexões semelhantes do SSDT (SQL Server Data Tools) que usa a Autenticação Interativa do Active Directory. Para obter mais informações, confira Suporte do Azure Active Directory no SQL Server Data Tools (SSDT)

As etapas de configuração incluem os procedimentos a seguir para configurar e usar a autenticação do Active Directory do Azure.

  1. Criar e popular o Azure AD.
  2. Opcional: associe ou altere o Active Directory que está associado atualmente à sua Assinatura do Azure.
  3. Crie um administrador do Azure Active Directory.
  4. Configure os computadores cliente.
  5. Crie usuários de banco de dados independente em seu banco de dados, mapeados para identidades do Azure AD.
  6. Conecte-se ao banco de dados usando identidades do Azure AD.

Observação

Para o SQL do Azure, as VMs do Azure e o SQL Server 2022, a autenticação do Azure AD dá suporte apenas a tokens de acesso originados do Azure AD e não dão suporte a tokens de acesso de terceiros. O Azure AD também não dá suporte ao redirecionamento de consultas do Azure AD para pontos de extremidade de terceiros. Isso se aplica a todas as plataformas SQL e a todos os sistemas operacionais que dão suporte à autenticação do Azure AD.

Confiar na arquitetura

  • Somente a parte da nuvem do Azure AD, Banco de Dados SQL, da Instância Gerenciada de SQL [SQL Server nas VMs do Windows Azure] e do Azure Synapse é considerada para dar suporte a senhas de usuários nativos do Azure AD.
  • Para dar suporte a credenciais de logon único do Windows (ou usuário/senha para credencial do Windows), use as credenciais do Azure Active Directory de um domínio federado ou gerenciado configurado para o logon único contínuo para autenticação por hash de senha e passagem. Para saber mais, confira Logon Único Contínuo do Azure Active Directory.
  • Para dar suporte à Autenticação federada (ou a usuário/senha para as credenciais do Windows), será necessária a comunicação com o bloco do ADFS.

Para obter mais informações sobre identidades, configuração e sincronização híbridas do Azure AD, confira os seguintes artigos:

Para ver um exemplo de autenticação federada com a infraestrutura de ADFS (ou usuário/senha para credenciais do Windows), consulte o diagrama abaixo. As setas indicam caminhos para comunicação.

diagrama de autenticação do aad

O diagrama a seguir indica as relações de federação, confiança e hospedagem que permitem que um cliente se conecte a um banco de dados enviando um token. O token é autenticado pelo Azure AD e é considerado confiável pelo banco de dados. O Cliente 1 pode representar um Azure Active Directory com usuários nativos ou um Azure AD com usuários federados. O Cliente 2 representa uma solução possível, incluindo os usuários importados; neste exemplo, provenientes de um Azure Active Directory federado com o ADFS sendo sincronizado com o Azure Active Directory. É importante entender que o acesso a um banco de dados com a autenticação do Azure AD exige que a assinatura de hospedagem esteja associada ao Azure AD. A mesma assinatura deve ser usada para criar os recursos do Banco de Dados SQL do Azure, da Instância Gerenciada de SQL ou do Azure Synapse.

relação de assinatura

Estrutura do administrador

Ao usar a autenticação do Azure AD, haverá duas contas de administrador: o administrador original do Banco de Dados SQL do Azure e do administrador do Azure AD. Os mesmos conceitos se aplicam ao Azure Synapse. Somente o administrador com base em uma conta do AD do Azure pode criar o primeiro usuário de banco de dados do AD do Azure contido em um banco de dados de usuário. O logon de administrador do AD do Azure pode ser um usuário ou um grupo do AD do Azure. Quando o administrador é uma conta de grupo, ele pode ser usado por qualquer membro do grupo, permitindo vários administradores do Azure AD para o servidor. Usar a conta de grupo como um administrador aprimora a capacidade de gerenciamento, permitindo a adição e remoção central de membros do grupo no Azure AD sem alterar os usuários ou permissões no Banco de Dados SQL ou no Azure Synapse. Somente um administrador do AD do Azure (um usuário ou grupo) pode ser configurado por vez, a qualquer momento.

estrutura de administrador

Permissões

Para criar novos usuários, você deve ter a permissão ALTER ANY USER no banco de dados. A permissão ALTER ANY USER pode ser concedida a qualquer usuário do banco de dados. A permissão ALTER ANY USER também é mantida pelas contas de administrador do servidor e usuários de banco de dados com a permissão CONTROL ON DATABASE ou ALTER ON DATABASE para esse banco de dados e por membros da função de banco de dados db_owner.

Para criar um usuário de banco de dados independente no Banco de Dados SQL do Azure, na Instância Gerenciada de SQL ou no Azure Synapse, é necessário se conectar ao banco de dados ou à instância usando uma identidade do Azure AD. Para criar o primeiro usuário de banco de dados independente, você deve se conectar ao banco de dados usando o administrador do AD do Azure (que é o proprietário do banco de dados). Isso é demonstrado em Configurar e gerenciar a autenticação do Azure Active Directory com o Banco de Dados SQL ou o Azure Synapse. Qualquer autenticação do Azure AD só será possível se o administrador do Azure AD tiver sido criado para o Banco de Dados SQL do Azure, a Instância Gerenciada de SQL ou o Azure Synapse. Se o administrador do Azure Active Directory tiver sido removido do servidor, os usuários existentes do Azure Active Directory criados anteriormente dentro do SQL Server não poderão mais se conectar ao banco de dados usando suas credenciais do Azure Active Directory.

Limitações e recursos do AD do Azure

  • Os seguintes membros do Azure AD podem ser provisionados para o Banco de Dados SQL do Azure:

  • Os usuários do Azure AD que fazem parte de um grupo que tenha a função de servidor db_owner não podem usar a sintaxe CREATE DATABASE SCOPED CREDENTIAL no Banco de Dados SQL do Azure nem no Azure Synapse. Você verá o seguinte erro:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either does not exist or you do not have permission to use it.

    Conceda a função db_owner diretamente ao usuário individual do Azure AD para atenuar o problema de CREATE DATABASE SCOPED CREDENTIAL.

  • Estas funções do sistema retornam valores NULL quando executadas em entidades de segurança do Azure AD:

    • SUSER_ID()
    • SUSER_NAME(<admin ID>)
    • SUSER_SNAME(<admin SID>)
    • SUSER_ID(<admin name>)
    • SUSER_SID(<admin name>)

Instância Gerenciada de SQL

  • Entidades de servidor do Azure AD (logons) e usuários têm suporte para Instância Gerenciada de SQL.
  • Definir entidades de segurança do servidor do Azure AD (logons) mapeadas para um grupo do Azure AD como proprietário do banco de dados não tem suporte na Instância Gerenciada de SQL.
    • Uma extensão disso é que, quando um grupo é adicionado como parte da função de servidor dbcreator, os usuários desse grupo podem se conectar à Instância Gerenciada de SQL e criar bancos de dados, mas não poderão acessar o banco de dados. Isso ocorre porque o novo proprietário do banco de dados é SA e não o usuário do Azure AD. Esse problema não se manifesta se o usuário individual é adicionado à função de servidor dbcreator.
  • A execução de trabalhos e o gerenciamento do SQL Agent têm suporte para as entidades de segurança do servidor do Azure AD (logons).
  • As operações de restauração e backup do banco de dados podem ser executadas pelas entidades de segurança do servidor do Azure AD (logons).
  • A auditoria de todas as instruções relacionadas às entidades de segurança do servidor do Azure AD (logons) e aos eventos de autenticação tem suporte.
  • Há suporte para a conexão de administrador dedicada para as entidades de segurança do servidor do Azure AD (logons) que são membros da função do servidor sysadmin.
    • Compatível por meio do utilitário sqlcmd e do SQL Server Management Studio.
  • Os gatilhos de logon têm suporte para os eventos de logon que vêm das entidades de segurança do servidor do Azure AD (logons).
  • Os emails do Service Broker e do banco de dados podem ser configurados usando uma entidade de segurança do servidor do Azure AD (logon).

Conectar-se usando as identidades do Azure AD

A autenticação do Active Directory do Azure dá suporte aos seguintes métodos de conexão a um banco de dados usando identidades do AD do Azure:

  • Senha do Azure Active Directory
  • Integrada do Azure Active Directory
  • Azure Active Directory Universal com autenticação multifator
  • Uso da autenticação de token do aplicativo

Os seguintes métodos de autenticação têm suporte para as entidades de segurança do servidor do Azure AD (logons):

  • Senha do Azure Active Directory
  • Integrada do Azure Active Directory
  • Azure Active Directory Universal com autenticação multifator

Considerações adicionais

  • Para aumentar a capacidade de gerenciamento, é recomendável que você provisione um grupo dedicado do Microsoft Azure AD como administrador.
  • Somente um administrador do Azure AD (um usuário ou grupo) pode ser configurado para um servidor do Banco de Dados SQL ou no Azure Synapse a qualquer momento.
    • A adição de entidades de segurança do servidor do Azure AD (logons) para Instância Gerenciada de SQL permite a possibilidade de criar várias entidades de segurança do Azure AD (logons) que podem ser adicionadas à função sysadmin.
  • Somente um administrador do Azure AD para o servidor pode conectar-se inicialmente ao server ou à instância gerenciada usando uma conta do Azure Active Directory. O administrador do Active Directory pode configurar os próximos usuários do banco de dados do Azure AD.
  • Os usuários e as entidades de serviço do Azure AD (aplicativos do Azure AD) que são membros de mais de 2048 grupos de segurança do Azure AD não podem fazer logon no banco de dados na Instância Gerenciada, no Banco de Dados SQL nem no Azure Synapse.
  • É recomendável configurar o tempo limite da conexão para 30 segundos.
  • O SQL Server 2016 Management Studio e o SQL Server Data Tools para Visual Studio 2015 (versão 14.0.60311.1 de abril de 2016 ou posterior) dão suporte à autenticação do Azure Active Directory. (Há suporte para a autenticação do Azure AD no Provedor de Dados .NET Framework para SqlServer; é necessária, no mínimo, a versão 4.6 do .NET Framework). Portanto, as versões mais recentes dessas ferramentas e desses aplicativos da camada de dados (DAC e .BACPAC) podem usar a autenticação do Azure AD.
  • Da versão 15.0.1 em diante, o utilitário sqlcmd e o utilitário bcp dão suporte à autenticação Interativa do Active Directory com a autenticação multifator.
  • O SQL Server Data Tools para Visual Studio 2015 requer pelo menos a versão de abril de 2016 do Data Tools (versão 14.0.60311.1). Atualmente, os usuários do Azure AD não são mostrados no Pesquisador de Objetos do SSDT. Como alternativa, exiba os usuários em sys.database_principals.
  • O Microsoft JDBC Driver 6.0 para SQL Server dá suporte à autenticação do Azure AD. Confira também Configuração das propriedades de conexão.
  • O PolyBase não pode ser autenticado com a autenticação do Azure AD.
  • Há suporte para a autenticação do Azure AD no Banco de Dados SQL e no Azure Synapse usando as folhas Importar banco de dados e Exportar banco de dados do portal do Azure. Também há suporte para importação e exportação usando a autenticação do Azure AD em um comando do PowerShell.
  • A autenticação do Azure AD tem suporte para o Banco de Dados SQL, a Instância Gerenciada de SQL e o Azure Synapse com o uso da CLI. Para saber mais, consulte Configurar e gerenciar a autenticação do Azure AD com o Banco de Dados SQL ou o Azure Synapse e SQL Server – az sql server.

Próximas etapas