Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server 2022 (16.x) e posterior.
Este artigo descreve como autenticar com o Microsoft Entra ID sem configurar o Azure Arc para o SQL Server 2022 local e versões posteriores. A autenticação do Microsoft Entra é um serviço de gerenciamento de identidades baseado em nuvem que fornece acesso seguro a bancos de dados do SQL Server. Este tutorial orienta você pelo processo de configuração da autenticação do Microsoft Entra para SQL Server no Windows sem o Azure Arc.
Observação
O Microsoft Entra ID era conhecido anteriormente como Azure Ative Directory (Azure AD).
Neste tutorial, aprenderás como:
- Adicione um certificado para o SQL Server.
- Instalar adal.dll usado para se ligar ao SQL Server.
- Crie e registre um aplicativo Microsoft Entra ID.
- Conceda permissões de aplicativo.
- Carregue o certificado para o aplicativo.
- Adicione valores do Registro para habilitar a autenticação do Microsoft Entra para o SQL Server.
Pré-requisitos
- Um SQL Server 2022 local ou versão posterior.
- Um inquilino ativo do Microsoft Entra ID
- Essa instalação usa um registro de aplicativo para associar o SQL Server à ID do Microsoft Entra. Siga o guia para registrar um aplicativo no Microsoft Entra ID.
- Verifique se o SQL Server tem conectividade de rede com o Azure, especificamente com os seguintes endereços e serviço Microsoft Entra ID:
- login.windows.net.
- login.microsoftonline.com.
- graph.microsoft.com.
- graph.windows.net.
- database.windows.net.
- A lista completa de endereços IP e URLs não é necessária, mas pode ser encontrada no artigo, URLs do Microsoft 365 e intervalos de endereços IP.
Obter um certificado
- Obtenha um certificado a ser usado para o SQL Server e importe-o para o armazenamento de certificados do computador. Recomendamos um certificado assinado pela autoridade de certificação.
Use um nome CN exclusivo para o certificado que não corresponda a nenhum certificado instalado no repositório de certificados.
Instale o certificado no armazenamento de certificados do computador. Para obter mais informações, consulte Importar o certificado para o armazenamento do computador local.
Adicione
Readpermissões para a conta de serviço do SQL Server no certificado.
Instalar adal.dll
Instale oadal.dll para SQL Server. Essa biblioteca é necessária para se conectar ao SQL Server com a autenticação do Microsoft Entra. Você pode obter adal.dll a partir da instalação mais recente do Microsoft OLE DB Driver for SQL Server .
Depois de instalar o driver Microsoft OLE DB para SQL Server, certifique-se de queadal.dll está na pasta
C:\windows\system32.Você também deve ter a chave
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirdo Registro com o valorC:\windows\system32\adal.dll. Se não existir, crie-o.
Para obter mais informações sobre o registro do Windows, consulte Informações do registro do Windows para usuários avançados.
Criar e registrar um aplicativo Microsoft Entra ID
- Vá para o portal do Azure, selecione ID do Microsoft Entra>Registos de Aplicações>Novo Registo.
- Especifique um nome - O exemplo neste artigo usa SQLServer.
- Selecione Tipos de contas suportados e use Somente contas neste diretório da organização
- Não defina um URI de redirecionamento
- Selecione Registrar
Veja o registro do aplicativo abaixo:
Conceder permissões de aplicativo
Selecione o aplicativo recém-criado e, no menu do lado esquerdo, selecione Permissões de API.
Selecione Adicionar uma permissão>permissões de aplicação do Microsoft Graph>
- Verifique a permissão Directory.Read.All
- Selecione Adicionar permissões
Ou,
Selecione Adicionar uma permissão>permissões de aplicação do Microsoft Graph>
Verifique Application.Read.All
Verifique Group.Read.All
Verificar User.Read.All
Selecione Adicionar permissões
Selecione Conceder consentimento de administrador
Observação
Para conceder consentimento de Administrador às permissões acima, sua conta do Microsoft Entra requer a função de Administrador de Função Privilegiada ou permissões superiores.
Carregue o certificado
Carregue o certificado que você criou na seção Obter um certificado no .cer formato ou .pem para o registro do aplicativo no portal do Azure.
Adicionar valores do Registro para habilitar a autenticação do Microsoft Entra para o SQL Server
Atualize a chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication do Registro com os seguintes valores para habilitar a autenticação do Microsoft Entra para o SQL Server. Um exemplo do caminho da chave do Registro para o SQL Server 2022 é HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.
Advertência
Problemas sérios podem ocorrer se você modificar o registro incorretamente usando o Editor do Registro ou usando outro método. Esses problemas podem exigir que você reinstale o sistema operacional. A Microsoft não pode garantir que esses problemas possam ser resolvidos. Modifique o registo por sua conta e risco.
- Se a
FederatedAuthenticationchave não existir, crie-a com todos os seguintes valores. - As cinco primeiras entradas listadas precisam ser atualizadas com os valores do aplicativo que você criou na seção anterior. O restante das entradas são valores padrão.
- O
<sql-server-certificate-name>é o nome do certificado que você criou na seção Obter um certificado e carregou no Azure. - O
<application-client-id>é o ID do aplicativo (cliente) do aplicativo que você criou na seção Criar e registrar um aplicativo Microsoft Entra ID. Para obter mais informações sobre como localizar a ID do cliente, consulte ID do cliente. - O
<tenant-id>é a ID do locatário do seu locatário do Azure. Você pode encontrar a ID do locatário no portal do Azure em Microsoft Entra ID>Visão geral.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication]
"AADCertSubjectName"="<sql-server-certificate-name>"
"AADTenantSpecificSQLServicePrincipalCertSubjectName"="<sql-server-certificate-name>"
"ClientId"="<application-client-id>"
"AADTenantSpecificSQLServicePrincipalClientId"="<application-client-id>"
"PrimaryAADTenant"="<tenant-id>"
"AADChannelMaxBufferedMessageSize"="200000"
"AADGraphEndPoint"="graph.windows.net"
"AADGroupLookupMaxRetryAttempts"="10"
"AADGroupLookupMaxRetryDuration"="30000"
"AADGroupLookupRetryInitialBackoff"="100"
"AuthenticationEndpoint"="login.microsoftonline.com"
"CacheMaxSize"="300"
"FederationMetadataEndpoint"="login.windows.net"
"GraphAPIEndpoint"="graph.windows.net"
"IssuerURL"="https://sts.windows.net/"
"MsGraphEndPoint"="graph.microsoft.com"
"OnBehalfOfAuthority"="https://login.windows.net/"
"SendX5c"="false"
"ServicePrincipalName"="https://database.windows.net/"
"ServicePrincipalNameForArcadia"="https://sql.azuresynapse.net"
"ServicePrincipalNameForArcadiaDogfood"="https://sql.azuresynapse-dogfood.net"
"ServicePrincipalNameNoSlash"="https://database.windows.net"
"STSURL"="https://login.windows.net/"
"ClientCertBlackList"=""
Para obter mais informações sobre o Registro do Windows, incluindo backup, edição e restauração de chaves do Registro, consulte Informações do Registro do Windows para usuários avançados.
Testando a autenticação
Depois de configurar o servidor e editar os valores do Registro, a autenticação do Microsoft Entra deve ser funcional. Teste a instalação criando logons usando os seguintes comandos T-SQL:
CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER
Problemas comuns
Poderá ver o seguinte erro:
Keyset does not exist (AdalDll) with error code: 21
Este erro pode ser devido a problemas de permissão no certificado. Verifique se a conta de serviço do SQL Server tem Read permissões no certificado. Se o problema persistir, certifique-se de que o certificado tem um nome CN exclusivo que não corresponde a nenhum outro certificado no armazenamento de certificados.