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.
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 suas versões locais do SQL Server 2022 e posteriores. A autenticação do Microsoft Entra é um serviço de gerenciamento de identidade baseado em nuvem que fornece acesso seguro aos 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 anteriormente conhecido como Azure Active Directory (Azure AD).
Neste tutorial, você aprenderá como:
- Adicione um certificado para o SQL Server.
- Instale adal.dll, usado para se conectar ao SQL Server.
- Crie e registre um aplicativo de ID do Microsoft Entra.
- Conceda permissões de aplicativo.
- Carregue o certificado no aplicativo.
- Adicione valores de registro para habilitar a autenticação do Microsoft Entra para SQL Server.
Pré-requisitos
- Uma versão local do SQL Server 2022 ou posterior.
- Um assinante ativo da ID do Microsoft Entra.
- Essa configuração usa um registro de aplicativo para associar o SQL Server à ID do Microsoft Entra. Siga o guia para registrar um aplicativo na ID do Microsoft Entra.
- Verifique se o SQL Server tem conectividade de rede com o Azure, especificamente para o seguinte serviço e endereços da ID do Microsoft Entra:
- 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 são necessárias, mas podem ser encontradas 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 repositório de certificados do computador. Recomendamos um certificado assinado pela AC.
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 repositório de certificados do computador. Para obter mais informações, consulte Importar o certificado para o repositório de computadores local.
Adicione
Readpermissões para a conta de serviço do SQL Server no certificado.
Instalar adal.dll
Instale adal.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 da instalação mais recente do Microsoft OLE DB Driver for SQL Server .
Depois de instalar o Microsoft OLE DB Driver for SQL Server, verifique se adal.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. Crie um se ele não existir.
Para obter mais informações sobre o Registro do Windows, consulte as informações do Registro do Windows para usuários avançados.
Criar e registrar um aplicativo de ID do Microsoft Entra
- Acesse o portal do Azure, selecione Microsoft Entra ID>Registros de Aplicativo>Novo Registro.
- Especificar um nome – o exemplo neste artigo usa SQLServer.
- Selecione Tipos de contas com suporte e use Contas somente no diretório desta organização
- Não defina um URI de redirecionamento
- Escolha Registrar
Veja o registro de aplicativo abaixo:
Conceder permissões de aplicativo
Selecione o aplicativo recém-criado e, no menu à esquerda, selecione Permissões de API.
Selecione Adicionar uma permissão>Microsoft Graph>Permissões de aplicativo
- Marque Directory.Read.All
- Selecione Adicionar permissões
Ou
Selecione Adicionar uma permissão>Microsoft Graph>Permissões de aplicativo
Marque Application.Read.All
Marque Group.Read.All
Marque User.Read.All
Selecione Adicionar permissões
Selecione Conceder consentimento do administrador
Observação
Para dar Consentimento do administrador às permissões acima, sua conta do Microsoft Entra requer a função de Administrador de funções com privilégios ou permissões superiores.
Carregar o certificado
Carregue o certificado que você criou na seção Obter um certificado no formato .cer ou .pem no registro do aplicativo no portal do Azure.
Adicionar valores do Registro para habilitar a autenticação do Microsoft Entra para 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 SQL Server. Um exemplo do caminho da chave do Registro para SQL Server 2022 é HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.
Aviso
Problemas sérios podem ocorrer se você modificar o registro incorretamente usando o Editor do Registro ou outro método. Talvez esses problemas exijam que você reinstale o sistema operacional. A Microsoft não garante que esses problemas possam ser solucionados. Modifique o registro por sua própria conta e risco.
- Se a
FederatedAuthenticationchave não existir, crie-a com todos os valores a seguir. - 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 de aplicativo (cliente) do aplicativo que você criou na seção Criar e registrar um aplicativo de ID do aplicativo Microsoft Entra. Para obter mais informações sobre como localizar a ID do cliente, consulte a ID do cliente. - O
<tenant-id>é o ID do locatário do seu locatário do Azure. Você pode encontrar o ID do locatário no portal do Azure em Microsoft Entra ID, >.
[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 as 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 configuração criando logons usando os seguintes comandos T-SQL:
CREATE LOGIN [<admin@___domain.com>] FROM EXTERNAL PROVIDER
Problemas comuns
Você pode ver os seguintes erros:
Keyset does not exist (AdalDll) with error code: 21
Esse 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, verifique se o certificado tem um nome CN exclusivo que não corresponde a nenhum outro certificado no repositório de certificados.