Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2022 (16.x) e versioni successive.
Questo articolo descrive come eseguire l'autenticazione con Microsoft Entra ID senza configurare Azure Arc per SQL Server 2022 locale e versioni successive. L'autenticazione di Microsoft Entra è un servizio di gestione delle identità basato sul cloud che fornisce accesso sicuro ai database di SQL Server. Questa esercitazione illustra il processo di configurazione dell'autenticazione di Microsoft Entra per SQL Server in Windows senza Azure Arc.
Annotazioni
Microsoft Entra ID era noto in precedenza come Azure Active Directory (Azure AD).
In questa esercitazione si apprenderà come:
- Aggiungere un certificato per SQL Server.
- Installare adal.dll usato per la connessione a SQL Server.
- Creare e registrare un'applicazione Microsoft Entra ID.
- Concedere le autorizzazioni per l'applicazione.
- Caricare il certificato nell'applicazione.
- Aggiungere valori del Registro di sistema per abilitare l'autenticazione di Microsoft Entra per SQL Server.
Prerequisiti
- Una versione locale di SQL Server 2022 o successiva.
- Un tenant attivo di Microsoft Entra ID.
- Questa configurazione usa una registrazione dell'applicazione per associare SQL Server a Microsoft Entra ID. Seguire la guida per registrare un'applicazione in Microsoft Entra ID.
- Verificare che SQL Server disponga della connettività di rete ad Azure, in particolare al servizio e agli indirizzi Microsoft Entra ID seguenti:
- login.windows.net.
- login.microsoftonline.com.
- graph.microsoft.com.
- graph.windows.net.
- database.windows.net.
- L'elenco completo di indirizzi IP e URL non è necessario, ma è disponibile nell'articolo URL e intervalli di indirizzi IP di Microsoft 365.
Ottenere un certificato
- Ottenere un certificato da usare per SQL Server e importarlo nell'archivio certificati del computer. È consigliabile un certificato firmato dalla CA.
Usare un nome CN univoco per il certificato che non corrisponde ad alcun certificato installato nell'archivio certificati.
Installare il certificato nell'archivio certificati del computer. Per altre informazioni, vedere Importare il certificato nell'archivio computer locale.
Aggiungere
Readautorizzazioni per l'account del servizio SQL Server sul certificato.
Installare adal.dll
Installare adal.dll per SQL Server. Questa libreria è necessaria per la connessione a SQL Server con l'autenticazione Microsoft Entra. È possibile ottenere adal.dll dall'installazione più recente di Microsoft OLE DB Driver per SQL Server .
Dopo aver installato Microsoft OLE DB Driver per SQL Server, assicurarsi che adal.dll si trova nella cartella
C:\windows\system32.È anche necessario avere la chiave
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSADALSQL\TargetDirdel Registro di sistema con il valoreC:\windows\system32\adal.dll. Se non esiste, crearlo.
Per altre informazioni sul Registro di sistema di Windows, vedere Informazioni sul Registro di sistema di Windows per utenti avanzati.
Creare e registrare un'applicazione Microsoft Entra ID
- Andare al portale di Azure, selezionare Microsoft Entra ID>Registrazioni app>Nuova registrazione.
- Specificare un nome: l'esempio in questo articolo usa SQLServer.
- Selezionare Tipi di account supportati e usare Account solo in questo elenco dell'organizzazione
- Non impostare un URI di reindirizzamento
- Selezionare Registra
Vedere la registrazione dell'applicazione di seguito:
Concedere le autorizzazioni per le applicazioni
Selezionare l'applicazione appena creata e, nel menu a sinistra, selezionare Autorizzazioni API.
Selezionare Aggiungi un'autorizzazione>Microsoft Graph>Autorizzazioni dell'applicazione
- Selezionare Directory.Read.All
- Selezionare Aggiungi autorizzazioni
Oppure
Selezionare Aggiungi un'autorizzazione>Microsoft Graph>Autorizzazioni dell'applicazione
Verificare Application.Read.All
Verifica Group.Read.All
Selezionare User.Read.All
Selezionare Aggiungi autorizzazioni
Selezionare Concedi consenso amministratore
Annotazioni
Per concedere consenso amministratore per le autorizzazioni sopra elencate, l'account Microsoft Entra richiede il ruolo Amministratore dei ruoli con privilegi o autorizzazioni superiori.
Caricare il certificato
Caricare il certificato creato nella sezione Ottenere un certificato nel .cer formato o .pem nella registrazione dell'applicazione nel portale di Azure.
Aggiungere valori del Registro di sistema per abilitare l'autenticazione di Microsoft Entra per SQL Server
Aggiornare la chiave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL<version-number>.<instance-name>\MSSQLServer\FederatedAuthentication del Registro di sistema con i valori seguenti per abilitare l'autenticazione di Microsoft Entra per SQL Server. Un esempio del percorso della chiave del Registro di sistema per SQL Server 2022 è HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQLServer\FederatedAuthentication.
Avvertimento
Potrebbero verificarsi gravi problemi se si modifica il Registro di sistema in modo non corretto utilizzando l'editor del Registro di sistema o utilizzando un altro metodo. Questi problemi potrebbero richiedere la reinstallazione del sistema operativo. Microsoft non è in grado di garantire la soluzione di tali problemi. La modifica del Registro di sistema è a esclusivo rischio dell'utente.
- Se la
FederatedAuthenticationchiave non esiste, crearla con tutti i valori seguenti. - Le prime cinque voci elencate devono essere aggiornate con i valori dell'applicazione creata nella sezione precedente. Le altre voci sono valori predefiniti.
-
<sql-server-certificate-name>è il nome del certificato creato nella sezione Ottenere un certificato e caricato in Azure. -
<application-client-id>è l'ID applicazione (client) dell'applicazione creata nella sezione Creare e registrare un'applicazione Microsoft Entra ID. Per altre informazioni su come trovare l'ID client, vedere ID client. -
<tenant-id>è l'ID tenant del tenant di Azure. È possibile trovare l'ID tenant nel portale di Azure in Microsoft Entra ID>Panoramica.
[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"=""
Per altre informazioni sul Registro di sistema di Windows, incluso il backup, la modifica e il ripristino delle chiavi del Registro di sistema, vedere Informazioni sul Registro di sistema di Windows per gli utenti avanzati.
Test dell'autenticazione
Dopo aver configurato il server e modificato i valori del Registro di sistema, l'autenticazione di Microsoft Entra deve essere funzionale. Testare la configurazione creando account di accesso usando i comandi T-SQL seguenti:
CREATE LOGIN [<admin@domain.com>] FROM EXTERNAL PROVIDER
Problemi comuni
Potrebbe essere visualizzato l'errore seguente:
Keyset does not exist (AdalDll) with error code: 21
Questo errore potrebbe essere dovuto a problemi di autorizzazione per il certificato. Assicurarsi che l'account del servizio SQL Server disponga Read delle autorizzazioni per il certificato. Se il problema persiste, assicurarsi che il certificato abbia un nome CN univoco che non corrisponda ad altri certificati nell'archivio certificati.