Microsoft Entra authentication for Azure Synapse Analytics

Este artigo oferece uma visão geral aprofundada sobre a utilização da autenticação Microsoft Entra com Synapse SQL no Azure Synapse Analytics.

Note

Os principais de servidor do Microsoft Entra estão atualmente em pré-visualização para o Azure Synapse Analytics.

Para configurar a autenticação Microsoft Entra, consulte Configurar e gerir autenticação Microsoft Entra com Azure Synapse Analytics.

Overview

O Microsoft Entra ID permite-lhe gerir centralmente as identidades de seres humanos e serviços no seu património de dados. Ao integrar o Microsoft Entra com o Azure Synapse Analytics para autenticação, pode simplificar a gestão de identidades e permissões, ao mesmo tempo que permite acesso condicional detalhado e governação sobre as ligações aos seus dados.

Usar a autenticação do Microsoft Entra inclui os seguintes benefícios:

  • Substitui métodos de autenticação menos seguros, como nomes de usuário e senhas.
  • Elimina ou ajuda a impedir a proliferação de identidades de usuários entre servidores.
  • Os grupos do Microsoft Entra permitem que o gerenciamento de permissões de banco de dados seja abstraído de contas individuais e em grupos operacionais.
  • Permite a rotação de senhas num único local.
  • A autenticação Microsoft Entra somente fornece uma alternativa completa à autenticação SQL.
  • As identidades gerenciadas para recursos do Azure eliminam a necessidade de armazenar senhas para serviços que se conectam aos seus bancos de dados e conexões de seus bancos de dados com outros recursos do Azure.
  • Permite controles de segurança modernos, incluindo autenticação multifator forte com uma variedade de opções de verificação fáceis, como uma chamada telefônica, mensagem de texto, cartão inteligente com PIN ou notificação de aplicativo móvel.
  • O Microsoft Entra ID permite a integração com muitos protocolos de autenticação modernos, incluindo OpenID Connect, OAuth2.0, Delegação Restrita Kerberos e muito mais.
  • Permite o monitoramento centralizado de conexões com fontes de dados.
  • Permite controles de acesso condicional, como exigir dispositivos compatíveis ou métodos de autenticação para conexões bem-sucedidas.

Note

A autenticação do Microsoft Entra suporta apenas tokens de acesso originados da ID do Microsoft Entra e não tokens de acesso de terceiros. O Microsoft Entra ID também não oferece suporte ao redirecionamento de consultas do Microsoft Entra ID para pontos de extremidade de terceiros. Esta limitação aplica-se a todas as plataformas SQL e a todos os sistemas operativos que suportam autenticação Microsoft Entra.

Passos de configuração

As etapas gerais para configurar a autenticação do Microsoft Entra são:

  1. Crie e preencha um tenant do Microsoft Entra.
  2. Crie um espaço de trabalho Azure Synapse ou um pool SQL dedicado independente.
  3. Atribua um administrador Microsoft Entra ao espaço de trabalho ou servidor lógico.
  4. Crie entidades SQL em seu banco de dados que são mapeadas para identidades do Microsoft Entra.
  5. Configure as suas aplicações clientes para se conectarem usando bibliotecas do Azure Identity e métodos de autenticação.
  6. Conecte-se ao seu banco de dados com identidades do Microsoft Entra.

Identidades e métodos de autenticação suportados

O Azure Synapse Analytics suporta a utilização das seguintes identidades Microsoft Entra como logins e utilizadores (principais de segurança) no Synapse SQL:

  • Usuários do Microsoft Entra: qualquer tipo de usuário em um locatário do Microsoft Entra, que inclui usuários internos, usuários externos, convidados e membros. Membros de um domínio do Ative Directory federado com ID do Microsoft Entra também são suportados e podem ser configurados para logon único contínuo.
  • Aplicações: Aplicações que existem no Azure podem usar entidades de serviço ou identidades geridas para autenticar diretamente no Azure Synapse Analytics. O uso de identidades geridas é preferível porque a autenticação não requer palavra-passe e elimina a necessidade de credenciais que os programadores têm de gerir.
  • Grupos do Microsoft Entra, que podem simplificar o gerenciamento de acesso em toda a sua organização, gerenciando o acesso de usuários e aplicativos com base na associação ao grupo.

Para identidades de usuário, os seguintes métodos de autenticação são suportados:

  • Microsoft Entra Integrado (Autenticação do Windows) suportado pelo Microsoft Entra Identidades Híbridas com Active Directory [federação].
  • Microsoft Entra MFA, ou autenticação multifator, que requer verificações de segurança adicionais além do conhecimento do usuário.
  • Autenticação de senha do Microsoft Entra , que usa credenciais de usuário armazenadas e gerenciadas no Microsoft Entra ID.
  • Autenticação padrão do Microsoft Entra , que verifica vários caches de credenciais na máquina do aplicativo e pode usar tokens de usuário para autenticar em SQL.

Para identidades de serviço ou carga de trabalho, há suporte para os seguintes métodos de autenticação:

  • Identidades gerenciadas para recursos do Azure, atribuídos pelo usuário e pelo sistema. A autenticação de identidade gerenciada é baseada em token, na qual a identidade é atribuída ao recurso que deseja autenticar usando-a. A plataforma Azure Identity valida essa relação, o que permite a autenticação sem senha.
  • Nome principal do serviço Microsoft Entra e segredo do aplicativo (cliente). Esse método de autenticação não é recomendado devido ao risco associado a senhas que podem ser adivinhadas e vazadas.
  • Autenticação padrão do Microsoft Entra , que verifica vários caches de credenciais na máquina do aplicativo e pode usar tokens de aplicativo para autenticar no SQL.

Administrador do Microsoft Entra

Para ativar a autenticação Microsoft Entra, um administrador Microsoft Entra tem de estar definido para o seu espaço de trabalho ou servidor lógico do Azure Synapse. Este administrador coexiste com o administrador SQL. O administrador do Microsoft Entra pode ser um utilizador, grupo, principal de serviço ou identidade gerida no seu tenant do Azure. Apenas uma identidade pode ser configurada de cada vez. Remover o administrador do Microsoft Entra desativa as ligações baseadas em autenticação do Microsoft Entra, mesmo para utilizadores existentes do Microsoft Entra com permissões numa base de dados.

Tip

Os grupos do Microsoft Entra permitem que várias identidades atuem como o administrador do Microsoft Entra no servidor. Quando o administrador é definido como um grupo, todos os membros do grupo herdam a função de administrador do Microsoft Entra. Um administrador de grupo do Microsoft Entra aumenta a capacidade de gestão ao transferir a gestão administrativa das ações do plano de dados do servidor para o ID do Microsoft Entra e para os proprietários de grupos. Os grupos podem ser usados para todas as identidades do Microsoft Entra que se conectam ao SQL, permitindo a configuração de usuário único e permissão no servidor e bancos de dados, deixando todo o gerenciamento de usuários para os grupos.

O administrador do Microsoft Entra desempenha um papel especial: é a primeira conta que pode criar outros logins e utilizadores do Microsoft Entra, coletivamente referidos como princípios. O administrador é um usuário de banco de dados contido no master banco de dados do servidor. As contas de administrador são membros da função db_owner em cada banco de dados de utilizador, e cada banco de dados de utilizador está associado ao utilizador dbo. Para obter mais informações sobre contas de administrador, consulte Gerenciando bancos de dados e logons.

Principais do Microsoft Entra

Note

Os principais de servidor Microsoft Entra (logins) estão atualmente em pré-visualização para o Azure Synapse Analytics.

Pode criar identidades Microsoft Entra como entidades de segurança no Azure Synapse Analytics de três formas:

  • como principais de servidor ou logins
  • como usuários baseados em login (um tipo de entidade de banco de dados)
  • como usuários de banco de dados contidos

Importante

A autenticação do Microsoft Entra para SQL do Azure não se integra ao Azure RBAC. Para usar identidades Microsoft Entra para se ligar ao SQL do Azure e executar consultas, precisa de criar essas identidades como entidades de segurança Microsoft Entra nas bases de dados a que precisam de aceder. Os papéis SQL Server Contributor e SQL DB Contributor protegem as operações de implementação relacionadas com a gestão, não o acesso à conectividade da base de dados.

Logins (entidades de segurança do servidor) em pools SQL dedicados

Server principals (logins) para identidades Microsoft Entra estão em pré-visualização para pools SQL dedicados Azure Synapse Analytics.

O T-SQL a seguir mostra como criar um login do Microsoft Entra:

CREATE LOGIN [MSEntraUser] FROM EXTERNAL PROVIDER

Um login do Microsoft Entra tem os seguintes valores de propriedade em sys.server_principals:

Property Valor
SID (Identificador de Segurança) Representação binária do ID do objeto de identidade Microsoft Entra
tipo E = Login externo ou aplicativo do Microsoft Entra ID
X = Grupo externo do Microsoft Entra ID
type_desc EXTERNAL_LOGIN para o login ou aplicativo do Microsoft Entra
EXTERNAL_GROUP para o grupo Microsoft Entra

Usuários baseados em login

Os utilizadores baseados em login herdam as funções e permissões atribuídas ao seu login do Microsoft Entra a nível de servidor.

O T-SQL a seguir mostra como criar um usuário baseado em logon para uma identidade do Microsoft Entra:

CREATE USER [MSEntraUser] FROM LOGIN [MSEntraUser]

A tabela a seguir apresenta os valores das propriedades dos usuários com base no login do sistema Microsoft Entra em sys.database_principals:

Property Valor
SID (Identificador de Segurança) Representação binária do ID de objeto da identidade Microsoft Entra, mais 'AADE'
tipo E = Login externo ou aplicativo do Microsoft Entra ID
X = Grupo externo do Microsoft Entra ID
type_desc EXTERNAL_LOGIN para o login ou aplicativo do Microsoft Entra
EXTERNAL_GROUP para o grupo Microsoft Entra

Utilizadores contidos na base de dados

Os utilizadores do banco de dados contido são portáveis juntamente com o banco de dados. Não têm ligações a identidades definidas no servidor ou instância, e podem facilmente movê-las juntamente com a base de dados de um servidor ou instância para outro sem interrupções.

O T-SQL a seguir mostra como criar um usuário de banco de dados contido para uma identidade do Microsoft Entra:

CREATE USER [MSEntraUser] FROM EXTERNAL PROVIDER

Um utilizador do Microsoft Entra baseado em base de dados tem os mesmos valores de propriedade que os utilizadores baseados em logon no sys.database_principals, exceto a forma como o SID é construído:

Property Valor
SID (Identificador de Segurança) Representação binária do ID do objeto de identidade Microsoft Entra
tipo E = Login externo ou aplicativo do Microsoft Entra ID
X = Grupo externo do Microsoft Entra ID
type_desc EXTERNAL_LOGIN para o login ou aplicativo do Microsoft Entra
EXTERNAL_GROUP para o grupo Microsoft Entra

Para obter o GUID original do Microsoft Entra no qual o SID se baseia, use a seguinte conversão T-SQL:

SELECT CAST(sid AS UNIQUEIDENTIFIER) AS EntraID FROM sys.database_principals

Caution

Pode, sem querer, criar um utilizador de base de dados Microsoft Entra contido com o mesmo nome de um login Microsoft Entra ao nível do servidor ou instância. Como as entidades de segurança não estão ligadas entre si, o utilizador da base de dados não herda permissões do login do servidor. As identidades podem ser confundidas nos pedidos de conexão, resultando em comportamentos indefinidos.

Use a seguinte consulta T-SQL para determinar se um usuário de banco de dados é um usuário baseado em logon ou um usuário de banco de dados contido:

SELECT CASE
    WHEN CONVERT(VARCHAR(100), sid, 2) LIKE '%AADE' AND len(sid) = 18 THEN 'login-based user'
    ELSE 'contained database user'
    END AS user_type,
    *
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Use a seguinte consulta T-SQL para exibir todas as entidades do Microsoft Entra em um banco de dados:

SELECT
  name,
  CAST(sid AS UNIQUEIDENTIFIER) AS EntraID,
  CASE WHEN TYPE = 'E' THEN 'App/User' ELSE 'Group' AS user_type,
  sid
FROM sys.database_principals WHERE TYPE = 'E' OR TYPE = 'X'

Autenticação exclusiva do Microsoft Entra

Quando ativa a autenticação apenas Microsoft Entra, desativa a autenticação SQL. Não podes usar autenticação SQL para te ligares ao espaço de trabalho, pool SQL ou base de dados.

Para começar, consulte Configurar autenticação exclusiva da Microsoft Entra.

Autenticação multifator (MFA)

A autenticação multifator Microsoft Entra é um recurso de segurança fornecido pelo serviço de gerenciamento de identidade e acesso baseado em nuvem da Microsoft. A autenticação multifator aumenta a segurança dos logins do usuário, exigindo que os usuários forneçam etapas de verificação adicionais além de uma senha.

A autenticação multifator do Microsoft Entra ajuda a proteger o acesso a dados e aplicativos e, ao mesmo tempo, atende à demanda do usuário por um processo de entrada simples. O MFA adiciona uma camada extra de segurança aos logins do usuário, exigindo que os usuários forneçam dois ou mais fatores de autenticação. Esses fatores geralmente incluem algo que o usuário sabe (senha), algo que o usuário possui (smartphone ou token de hardware) e/ou algo que o usuário é (dados biométricos). Ao combinar vários fatores, a MFA reduz significativamente a probabilidade de acesso não autorizado.

A autenticação multifator é um método de autenticação suportado para o Azure Synapse Analytics.

Para começar, consulte Configurar autenticação multifator Microsoft Entra.

Suporte ao Microsoft Entra B2B

A autenticação do Microsoft Entra em todos os produtos SQL também oferece suporte à colaboração B2B do Microsoft Entra, que permite que as empresas convidem usuários convidados para colaborar com sua organização. Os usuários convidados podem se conectar a bancos de dados como usuários individuais ou membros de um grupo do Microsoft Entra.

Arquitetura de confiança da federação do Microsoft Entra para o Ative Directory

O Microsoft Entra ID também se integra com soluções familiares de gerenciamento de identidade e acesso, como o Ative Directory. Ao juntar híbridamente o seu Active Directory no local, permite que identidades Windows federadas através do Microsoft Entra ID usem credenciais de login único para se ligar ao Azure Synapse Analytics.

Para a federação, o Microsoft Entra ID fornece dois métodos de autenticação segura: autenticação de passagem direta e autenticação de hash de senha. Se você estiver pensando em federar seu Ative Directory local à ID do Microsoft Entra, consulte Escolha o método de autenticação certo para sua solução de identidade híbrida do Microsoft Entra.

Para obter mais informações sobre a instalação e sincronização de identidades híbridas do Microsoft Entra, consulte os seguintes artigos:

O Microsoft Entra ID autentica o token, e o banco de dados confia nele e valida o emissor e outros detalhes. O Cliente 1 pode representar o Microsoft Entra ID com usuários nativos ou o Microsoft Entra ID com usuários federados. O Cliente 2 representa uma possível solução incluindo usuários importados, neste exemplo proveniente de uma ID federada do Microsoft Entra com ADFS sendo sincronizado com a ID do Microsoft Entra. É importante perceber que o acesso a uma base de dados através da autenticação Microsoft Entra requer que a subscrição de alojamento esteja associada ao Microsoft Entra ID. Deve usar a mesma subscrição para criar os recursos SQL do Azure ou Azure Synapse.

Permissions

As permissões atribuídas ao administrador do Microsoft Entra diferem das permissões atribuídas a outras entidades de segurança no Azure Synapse Analytics. Em alguns cenários, o Azure Synapse Analytics também precisa de permissões do Microsoft Graph para usar a autenticação Microsoft Entra.

Permissões de administrador

As seguintes permissões e funções são atribuídas ao administrador da Microsoft Entra quando é criado:

  • db_owner de cada base de dados

Permissões do Azure Synapse Analytics

Um principal precisa da ALTER ANY USER permissão na base de dados para criar um utilizador.

Por defeito, as contas de administrador do servidor, utilizadores de base de dados com CONTROL ON DATABASE, e membros da função de base de dados db_owner têm a permissão ALTER ANY USER.

Para criar um principal Microsoft Entra no SQL do Azure, a identidade solicitante deve consultar o Microsoft Graph para detalhes sobre o principal. Na implementação inicial, a única identidade que pode consultar o Microsoft Graph é o administrador do Microsoft Entra. Portanto, o administrador deve ser a primeira identidade a criar outras entidades de segurança do Microsoft Entra. Depois disso, o administrador pode atribuir ALTER ANY USER a outras entidades de segurança para que possam criar outras entidades de segurança do Microsoft Entra.

Implantações sem intervenção com autenticação do Microsoft Entra

Como o administrador do Microsoft Entra deve ser a primeira identidade a ligar-se à base de dados e criar outros utilizadores do Microsoft Entra, pode ser útil adicionar a identidade da sua infraestrutura de implementação como administrador. Suas implantações podem então fazer a configuração inicial, como criar outras entidades do Microsoft Entra e atribuir-lhes permissões. Para implementações, use ferramentas como templates ARM do PowerShell para programar a criação automática de principal. Atualmente, o SQL do Azure não suporta APIs nativas para configurar a criação de utilizadores e a gestão de permissões. Só pode realizar estas operações usando uma ligação direta à instância SQL.

Permissões do Microsoft Graph

Para criar entidades do Microsoft Entra e alguns outros cenários, o SQL do Azure precisa fazer chamadas do Microsoft Graph para recuperar informações e validar a existência da identidade na ID do Microsoft Entra. Para isso, o processo SQL deve ter ou obter acesso às permissões de leitura do Microsoft Graph dentro do tenant do cliente. Pode obter este acesso de várias formas:

  • Se o principal SQL que executa o comando for uma identidade de utilizador, não precisa de conceder permissões adicionais à instância SQL para consultar o Microsoft Graph.
  • Se o principal SQL que executa o comando for uma identidade de serviço, como um principal de serviço ou identidade gerida, a instância SQL do Azure necessita das suas próprias permissões para consultar o Microsoft Graph.
    • Atribuir permissões de aplicação à identidade do servidor principal (identidade gerida) do servidor lógico ou instância gerida. O processo SQL pode usar a identidade principal do servidor para autenticar noutros serviços do Azure num tenant, como o Microsoft Graph. A tabela seguinte explica vários cenários e as permissões do Microsoft Graph necessárias para que o comando seja executado com sucesso.
Scenario Permissão mínima
CREATE USERou CREATE LOGIN para um Microsoft Entra service principal ou identidade gerida Application.Read.All
CREATE USERou CREATE LOGIN para um utilizador do Microsoft Entra Utilizador.Read.All
CREATE USERou CREATE LOGIN para um grupo Microsoft Entra GroupMember.Read.All

Tip

A função Directory Readers é a função com o menor âmbito que pode ser atribuída a uma identidade e abrange todas as permissões necessárias. Ao usar funções, pode atribuí-las a grupos de segurança da Microsoft Entra, o que afasta a gestão das entidades individuais e passa-a para grupos conceptuais.

Suporte de ferramentas

O SQL Server Management Studio (SSMS) oferece suporte a várias opções de conexão de autenticação do Microsoft Entra, incluindo autenticação multifator.

O SSDT (SQL Server Data Tools) para Visual Studio, a partir de 2015, oferece suporte à autenticação de senha, integrada e interativa com o Microsoft Entra ID. Para obter mais informações, consulte Suporte ao Microsoft Entra ID no SSDT (SQL Server Data Tools).

  • Atualmente, o SSDT Object Explorer não mostra utilizadores do Microsoft Entra. Como solução alternativa, exiba os usuários no sys.database_principals.

Versões mínimas

Para usar autenticação Microsoft Entra com Azure Synapse Analytics, precisa das seguintes versões mínimas ao utilizar estas ferramentas:

Ligue o Microsoft Entra ao Azure Synapse Analytics

Depois de configurar a autenticação Microsoft Entra para o seu recurso SQL do Azure, pode ligar-se usando o SQL Server Management Studio, SQL Server Data Tools e uma aplicação cliente.

Limitations

Ao utilizar autenticação Microsoft Entra com Azure Synapse Analytics, considere as seguintes limitações:

  • Os usuários e entidades de serviço do Microsoft Entra (aplicativos Microsoft Entra) que são membros de mais de 2048 grupos de segurança do Microsoft Entra não são suportados e não podem fazer logon no banco de dados.

  • As seguintes funções do sistema não são suportadas e devolvem valores NULL quando executadas por entidades do Microsoft Entra.

    • SUSER_ID()
    • SUSER_NAME(<ID>)
    • SUSER_SNAME(<SID>)
    • SUSER_ID(<name>)
    • SUSER_SID(<name>)
  • Recomendamos definir o tempo limite de conexão para 30 segundos.

  • Os utilizadores do Microsoft Entra que fazem parte de um grupo que é membro da db_owner função de base de dados podem encontrar o seguinte erro ao tentar usar CREATE DATABASE SCOPED CREDENTIAL no Azure Synapse Analytics:

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

    Para atenuar o CREATE DATABASE SCOPED CREDENTIAL problema, adicione a identidade do usuário do Microsoft Entra diretamente à db_owner função.

  • O Azure Synapse Analytics não cria utilizadores implícitos para utilizadores com sessão iniciada através da pertença a um grupo Microsoft Entra. Por causa disso, operações que exigem atribuir a propriedade podem falhar, mesmo que o grupo Microsoft Entra seja membro de uma função com essas permissões.

    Por exemplo, um usuário conectado a um banco de dados por meio de um grupo do Microsoft Entra com a função db_ddladmin não pode executar CREATE SCHEMA, ALTER SCHEMAe outras instruções de criação de objeto sem um esquema explicitamente definido (como tabela, exibição ou tipo, por exemplo). Para resolver isso, um usuário do Microsoft Entra deve ser criado para esse usuário ou o grupo Microsoft Entra deve ser alterado para atribuir um DEFAULT_SCHEMA tal como dbo.

  • Remover o administrador do Microsoft Entra impede as ligações de autenticação do Microsoft Entra.