Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo mostra como usar o Microsoft Entra ID para autenticação com o Azure Synapse Analytics.
Observação
As entidades de segurança do servidor do Microsoft Entra estão atualmente em versão prévia para o Azure Synapse Analytics.
Prerequisites
Para usar autenticação Microsoft Entra com Azure Synapse Analytics, você precisa dos seguintes pré-requisitos:
- Um locatário Microsoft Entra preenchido com usuários e grupos.
- Um espaço de trabalho existente no Azure Synapse ou um pool SQL dedicado independente.
Criar e configurar um tenant do Microsoft Entra
Antes de configurar a autenticação Microsoft Entra para Azure Synapse Analytics, você precisa criar um tenant Microsoft Entra e preenchê-lo com usuários e grupos. Você pode gerenciar os tenants do Microsoft Entra inteiramente dentro do Azure ou usá-los para a federação de um Domínio do Active Directory Service on-premiss.
Para obter mais informações, consulte:
- O que é Microsoft Entra ID?
- Integrar suas identidades locais com o Microsoft Entra ID
- Add seu nome de domínio para Microsoft Entra ID
- O que é federação com Microsoft Entra ID?
- Sincronização de diretório com Microsoft Entra ID
- Manage Microsoft Entra ID usando Windows PowerShell
- Portas e Protocolos Requeridos para Identidade Híbrida
Definir administrador do Microsoft Entra
Para usar a autenticação Microsoft Entra, seu recurso Azure Synapse precisa de um administrador Microsoft Entra.
Você também pode configurar o administrador do Microsoft Entra ao criar o recurso. Se você já tem um administrador configurado, pule essa seção.
Azure Synapse workspace
Para um workspace do Azure Synapse, configure o administrador do Microsoft Entra no workspace. Para mais informações, veja a Estrutura do administrador.
pool de SQL dedicado autônomo
Quando você configura o administrador do Microsoft Entra, habilita a autenticação Microsoft Entra para o servidor lógico que hospeda um pool SQL dedicado independente. Você pode definir o administrador usando o portal Azure, PowerShell, CLI do Azure ou APIs REST.
No portal Azure, você pode encontrar o nome do servidor logical
- No campo de nome do servidor na página Visão Geral do pool de SQL dedicado autônomo no Azure Synapse Analytics.
Para definir o administrador do Microsoft Entra para o seu servidor lógico no portal do Azure, siga estas etapas:
No painel do portal Azure Diretórios + assinaturas, escolha o diretório que contém seu recurso Azure Synapse como Diretório atual.
Procure por servidores SQL e então selecione o servidor lógico para seu pool SQL dedicado para abrir o painel do servidor SQL .
No painel SQL server para o servidor lógico, selecione Microsoft Entra ID em Settings para abrir o painel Microsoft Entra ID.
No painel Microsoft Entra ID, selecione Set admin para abrir o painel Microsoft Entra ID.
O painel Microsoft Entra ID mostra todos os usuários, grupos e aplicativos no diretório atual e permite que você pesquise por nome, alias ou ID. Localize a identidade desejada para o administrador do Microsoft Entra e selecione-a e selecione Select para fechar o painel.
Na parte superior da página Microsoft Entra ID para o servidor lógico, selecione Save.
O ID do Objeto é exibido 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 Microsoft Entra administrador.
Para remover o administrador, na parte superior da página Microsoft Entra ID, selecione DminRemove e selecione Save. Remover o administrador do Microsoft Entra desabilita Microsoft Entra autenticação para seu servidor lógico.
Observação
O administrador do Microsoft Entra é armazenado no banco de dados master do servidor como um usuário (principal 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 administrativa do Microsoft Entra falhará e reverterá, indicando que o nome já está em uso.
Atribuir permissões de Microsoft Graph
Para algumas operações, o Azure Synapse Analytics exige permissões para consultar o Microsoft Graph, conforme explicado nas permissões do Microsoft Graph. O Azure Synapse Analytics suporta permissões granulares da API Microsoft Graph, como User.Read.All, GroupMember.Read.All e Application.Read.All na identidade do recurso. Essa abordagem segue o princípio do privilégio mínimo e é recomendada. Você também pode usar a função Leitores do Diretório como uma alternativa mais ampla. Para mais informações, veja Identidades gerenciadas no Microsoft Entra para Azure Synapse Analytics.
Função de leitores de diretório
Para um procedimento guiado, veja Atribuir a função de Leitores de Diretório a um grupo Microsoft Entra.
O script PowerShell a seguir adiciona uma identidade de recurso do Azure Synapse ao papel de Leitores de Diretório.
# This script grants "Directory Readers" permission to an Azure Synapse service principal.
# It can be executed only by a user who is a member of the **Privileged Roles Administrator** role.
Import-Module Microsoft.Graph.Authentication
$instanceName = "<InstanceName>" # Enter the name of your managed instance or server
$tenantId = "<TenantId>" # Enter your tenant ID
Connect-MgGraph -TenantId $tenantId -Scopes "RoleManagement.ReadWrite.Directory"
# Get Microsoft Entra "Directory Readers" role and create if it doesn't exist
$roleName = "Directory Readers"
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
if ($role -eq $null) {
# Instantiate an instance of the role template
$roleTemplate = Get-MgDirectoryRoleTemplate -Filter "DisplayName eq '$roleName'"
New-MgDirectoryRoleTemplate -RoleTemplateId $roleTemplate.Id
$role = Get-MgDirectoryRole -Filter "DisplayName eq '$roleName'"
}
# Get service principal for your logical server
$roleMember = Get-MgServicePrincipal -Filter "DisplayName eq '$instanceName'"
$roleMember.Count
if ($roleMember -eq $null) {
Write-Output "Error: No service principal with name '$($instanceName)' found, make sure that instanceName parameter was entered correctly."
exit
}
if (-not ($roleMember.Count -eq 1)) {
Write-Output "Error: Multiple service principals with name '$($instanceName)'"
Write-Output $roleMember | Format-List DisplayName, Id, AppId
exit
}
# Check if service principal is already member of Directory Readers role
$isDirReader = Get-MgDirectoryRoleMember -DirectoryRoleId $role.Id -Filter "Id eq '$($roleMember.Id)'"
if ($isDirReader -eq $null) {
# Add principal to Directory Readers role
Write-Output "Adding service principal '$($instanceName)' to 'Directory Readers' role..."
$body = @{
"@odata.id"= "https://graph.microsoft.com/v1.0/directoryObjects/{$($roleMember.Id)}"
}
New-MgDirectoryRoleMemberByRef -DirectoryRoleId $role.Id -BodyParameter $body
Write-Output "'$($instanceName)' service principal added to 'Directory Readers' role."
} else {
Write-Output "Service principal '$($instanceName)' is already member of 'Directory Readers' role."
}
O administrador do Microsoft Entra agora pode criar entidades de segurança no nível do servidor (logins) e entidades de segurança de banco de dados (usuários).
Criar identidades principais do Microsoft Entra no SQL Server
Para se conectar a um banco de dados no Azure Synapse Analytics com autenticação Microsoft Entra, você precisa configurar um principal no banco de dados para essa identidade, com pelo menos a CONNECT permissão.
Permissões do usuário do banco de dados
Quando você cria um usuário de banco de dados, ele recebe a permissão CONNECT no banco de dados por padrão. Um usuário de banco de dados também herda permissões em duas circunstâncias:
- O usuário é membro de um grupo Microsoft Entra ao qual também foram atribuídas permissões no servidor.
- Você cria o usuário a partir de um login, e o usuário herda as permissões atribuídas pelo servidor ao login que se aplicam ao banco de dados.
O gerenciamento de permissões para principais de servidores e bancos de dados funciona da mesma forma, independentemente do tipo de principal (Microsoft Entra ID, autenticação SQL, etc.). Conceda permissões às funções de banco de dados em vez de conceder permissões diretamente aos usuários. Depois, adicione usuários às funções com permissões apropriadas. Essa abordagem simplifica o gerenciamento de permissões de longo prazo e reduz a probabilidade de uma identidade manter o acesso quando ele não é mais apropriado.
Para obter mais informações, consulte:
- Permissões e exemplos do mecanismo de banco de dados
- Blog: Noções básicas de permissões do "Mecanismo de Banco de Dados"
- Autorizar o acesso ao banco de dados ao Azure Synapse Analytics
Usuários de banco de dados independente
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 master. Para criar um usuário contido do banco de dados no Microsoft Entra, conecte-se ao banco de dados com uma identidade Microsoft Entra que tenha pelo menos a permissão ALTER ANY USER. O exemplo a seguir em T-SQL cria um principal de banco de dados nomeado Microsoft_Entra_principal_name a partir 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 de Microsoft Entra, insira o nome de exibição do grupo:
CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;
Para criar um usuário de banco de dados contido para uma identidade gerenciada ou principal 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 contido para um usuário Microsoft Entra, insira o nome principal da identidade do usuário.
CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;
Usuários baseados em login
Observação
As entidades de segurança do servidor do Microsoft Entra (logins) estão atualmente em versão prévia para o Azure Synapse Analytics.
Principais do servidor do Microsoft Entra (ou logins) são suportados, o que significa que usuários de banco de dados contidos não são necessários. As entidades de banco de dados (usuários) podem ser criadas com base em uma entidade de segurança do servidor, o que significa que usuários do Microsoft Entra podem herdar permissões atribuídas no nível do servidor de um login.
CREATE USER [appName] FROM LOGIN [appName];
Para obter a sintaxe para a criação de principais do servidor Microsoft Entra (logins), consulte CREATE LOGIN.
Usuários externos
Você não pode criar um usuário de banco de dados diretamente para uma identidade gerenciada em um tenant Microsoft Entra diferente do associado à sua assinatura do Azure. No entanto, você pode importar usuários de outros diretórios para o diretório associado como usuários externos. Você pode então usá-los para criar usuários de banco de dados contidos que possam acessar o banco de dados. Usuários externos também podem obter acesso por meio da associação em grupos de Microsoft Entra.
Exemplos: Para criar um usuário de banco de dados contido que represente um usuário de domínio federado ou gerenciado do Microsoft Entra:
CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;
- Uma conta de usuário de domínio federado que você importa para um domínio gerenciado como usuário externo deve usar a identidade de domínio gerenciado.
Considerações de nome
Você não pode usar caracteres especiais como dois-pontos : ou ampersand & nos nomes de usuário nas instruções T-SQL CREATE LOGIN e CREATE USER.
Microsoft Entra ID e Azure Synapse Analytics diferem em seu design de gestão de usuários em um aspecto fundamental: o Microsoft Entra ID permite nomes de exibição duplicados dentro de um locatário, enquanto o Azure Synapse Analytics exige nomes exclusivos de entidades de segurança no servidor em um pool SQL dedicado e nomes exclusivos de entidades de segurança do banco de dados em um banco de dados.
Permissões do Microsoft Graph
O CREATE USER ... FROM EXTERNAL PROVIDER comando exige que o Azure Synapse Analytics acesse o Microsoft Entra ID (o provedor externo) em nome do usuário logado. Às vezes, o Microsoft Entra ID retorna uma exceção.
- Você pode encontrar o erro SQL 33134, que contém a mensagem de erro específica 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 por políticas de Acesso Condicional que são definidas no locatário 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(o ID do aplicativo da Microsoft API do Graph) deve resolver o problema. Se o erro indicar que o acesso entre aplicativos de primeira parte deve ser tratado por meio de pré-autorização, o problema ocorre porque o usuário está conectado como um principal 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 da cadeia de conexão
TransparentNetworkIPResolutioncomo "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 independentes com base em identidades Microsoft Entra, consulte CREATE USER.
Configurar a autenticação multifator
Para melhorar a segurança, considere configurar autenticação multifator (MFA), que solicita ao usuário o uso de um segundo método para autenticação no banco de dados, como uma ligação telefônica ou um aplicativo autenticador.
Para usar autenticação multifator com Azure Synapse Analytics, primeiro ative a autenticação multifator, e depois use uma política de Acesso Condicional para aplicar MFA.
Conectar-se com Microsoft Entra
Após a configuração da autenticação Microsoft Entra, você pode usá-la para se conectar ao Azure Synapse Analytics com SQL Server Management Studio ou SQL Server Data Tools, e configurar aplicações clientes para se conectarem usando identidades Microsoft Entra.
Solucionar problemas de autenticação Microsoft Entra
Para orientações, veja Solucionar problemas relacionados à autenticação Microsoft Entra.