Abilitare l'autenticazione di Microsoft Entra per SQL Server nelle macchine virtuali di Azure
Si applica a: SQL Server su VM di Azure
Questo articolo illustra come abilitare l'autenticazione con Microsoft Entra ID (in precedenza Azure Active Directory) per SQL Server in macchine virtuali (VM) di Azure.
Panoramica
A partire da SQL Server 2022, è possibile connettersi a SQL Server in macchine virtuali di Azure usando uno dei seguenti metodi di autenticazione di Microsoft Entra:
- Password offre l'autenticazione con le credenziali di Microsoft Entra
- Universal con MFA aggiunge l'autenticazione a più fattori
- L'integrazione usa provider federatici come Active Directory Federation Services (ADFS) per abilitare le esperienze di Single Sign-On (SSO)
- Entità servizio abilita l'autenticazione con le applicazioni Azure
- Identità gestita abilita l'autenticazione dalle applicazioni assegnate alle identità di Microsoft Entra
Quando si crea un account di accesso Microsoft Entra per SQL Server e quando un utente si connette usando tale account di accesso, SQL Server usa un'identità gestita per eseguire query su Microsoft Graph. Quando si abilita l'autenticazione di Microsoft Entra per SQL Server nella macchina virtuale di Azure, è necessario fornire un'identità gestita che SQL Server può usare per comunicare con Microsoft Entra ID. Questa identità gestita deve avere le autorizzazioni necessarie per eseguire query su Microsoft Graph.
Quando si abilita un'identità gestita per una risorsa in Azure, il limite di sicurezza dell'identità è la risorsa a cui è associata. Ad esempio, il limite di sicurezza per una macchina virtuale con le identità gestite per le risorse di Azure abilitate è la macchina virtuale. Qualsiasi codice in esecuzione su tale macchina virtuale può chiamare l'endpoint delle identità gestite e richiedere i token. Quando si abilita un'identità gestita per SQL Server in macchine virtuali di Azure, l'identità viene collegata alla macchina virtuale, quindi il limite di sicurezza è la macchina virtuale. L'esperienza è simile a quella di lavorare con altre risorse che supportano le identità gestite. Per altre informazioni, vedere Domande frequenti sulle identità gestite.
Le identità gestite assegnate dal sistema e assegnate dall'utente usate per l'autenticazione di Microsoft Entra con SQL Server in macchine virtuali di Azure offrono i vantaggi seguenti:
- L'identità gestita assegnata dal sistema offre un processo di configurazione semplificato. Poiché l'identità gestita ha la stessa durata della macchina virtuale, non è necessario eliminarla separatamente quando viene eliminata la macchina virtuale.
- L'identità gestita assegnata dall'utente offre scalabilità perché può essere collegata e usata per l'autenticazione di Microsoft Entra per più SQL Server in macchine virtuali di Azure.
Per iniziare a usare le identità gestite, vedere Configurare le identità gestite usando il portale di Azure.
Prerequisiti
Per abilitare l'autenticazione di Microsoft Entra in SQL Server, sono necessari i seguenti prerequisiti:
- Usare SQL Server 2022.
- Registrare una macchina virtuale di SQL Server con l'estensione SQL Server Iaas Agent in qualsiasi cloud.
- Disporre di un'identità gestita assegnata dal sistema o assegnata dall'utente nello stesso tenant di Microsoft Entra della macchina virtuale di SQL Server. Configurare le identità gestite usando il portale di Azure per saperne di più.
- Interfaccia della riga di comando di Azure 2.48.0 o versione successiva se si intende usare l'interfaccia della riga di comando di Azure per configurare l'autenticazione di Microsoft Entra per la macchina virtuale di SQL Server.
Concedere le autorizzazioni
L'identità gestita scelta per facilitare l'autenticazione tra SQL Server e Microsoft Entra ID deve disporre delle tre autorizzazioni dell'applicazione Microsoft Graph seguenti (ruoli dell'app): User.Read.All
, GroupMember.Read.All
e Application.Read.All
.
In alternativa, l'aggiunta dell'identità gestita al ruolo di amministratori che leggono la directory di Microsoft Entra concede autorizzazioni sufficienti. Un altro modo per assegnare il ruolo di amministratori che leggono la directory a un'identità gestita consiste nell'assegnare il ruolo di amministratori che leggono la directory a un gruppo in Microsoft Entra ID. I proprietari del gruppo possono quindi aggiungere l'identità gestita della macchina virtuale come membro di questo gruppo. Ciò riduce al minimo il coinvolgimento degli amministratori globali di Microsoft Entra e delega la responsabilità ai proprietari del gruppo.
Aggiungere l'identità gestita al ruolo
Questa sezione illustra come aggiungere l'identità gestita al ruolo di amministratori che leggono la directory in Microsoft Entra ID. Per apportare modifiche alle assegnazioni di ruolo di amministratori che leggono la directory, è necessario disporre dei privilegi di Amministratore globale. Se non si dispone di autorizzazioni sufficienti, rivolgersi all'amministratore di Microsoft Entra per seguire questa procedura.
Per concedere all'identità gestita il ruolo di amministratori che leggono la directory, seguire questa procedura:
Aprire i ruoli e gli amministratori di Microsoft Entra ID nel portale di Azure:
Digitare amministratori che leggono la directory nella casella di ricerca e quindi selezionare il ruoloamministratori che leggono la directory per aprire la pagina amministratori che leggono la directory|Assegnazioni:
Nella pagina amministratori che leggono la directory | Assegnazioni, selezionare + Aggiungi assegnazioni per aprire la pagina Aggiungi assegnazione.
Nella pagina Aggiungi assegnazione scegliere Nessun membro selezionato in Seleziona membri per aprire la pagina Seleziona un membro.
Nella pagina Selezionare un membro cercare il nome dell'identità gestita da usare con la macchina virtuale di SQL Server e aggiungerla al ruolo di amministratori che leggono la directory. Per le identità gestite assegnate dal sistema, cercare il nome della macchina virtuale. Usare Seleziona per confermare l'identità e tornare alla pagina Aggiungi assegnazioni.
Verificare che l'identità scelta sia visualizzata in Seleziona membri e quindi selezionare Avanti.
Verificare che il tipo di assegnazione sia impostato su Attivo e che la casella accanto a Assegnata in modo permanente sia selezionata. Immettere una motivazione aziendale, ad esempio l'aggiunta di autorizzazioni del ruolo lettore directory all'identità assegnata dal sistema per VM2, quindi selezionare Assegna per salvare le impostazioni e tornare alla pagina amministratori che leggono la directory | Assegnazioni.
Nei lettori della pagina amministratori che leggono la directory | Assegnazioni, verificare che venga visualizzata l'identità appena aggiunta in amministratori che leggono la directory.
Aggiungere autorizzazioni per il ruolo dell'app
È possibile usare Azure PowerShell per concedere i ruoli dell'app a un'identità gestita. A tale scopo, effettuare i passaggi seguenti:
Nota
I moduli Azure AD e MSOnline PowerShell sono deprecati a partire dal 30 marzo 2024. Per maggiori informazioni, leggere l'aggiornamento sulla deprecazione. Dopo questa data, il supporto per questi moduli è limitato all'assistenza alla migrazione a Microsoft Graph PowerShell SDK e alle correzioni di sicurezza. I moduli deprecati continueranno a funzionare fino al 30 marzo 2025.
È consigliabile eseguire la migrazione a Microsoft Graph PowerShell per interagire con Microsoft Entra ID (in precedenza Azure AD). Per domande comuni sulla migrazione, consultare le Domande frequenti sulla migrazione. Nota: le versioni 1.0.x di MSOnline potrebbero subire interruzioni dopo il 30 giugno 2024.
Connettersi a Microsoft Graph
Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
Recuperare l'identità gestita:
$Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'" $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
Assegnare l'identità al ruolo
User.Read.All
:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "User.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Assegnare l'identità al ruolo
GroupMember.Read.All
:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "GroupMember.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
Assegnare l'identità al ruolo
Application.Read.All
:$AAD_AppRole = $Graph_SP.AppRoles | Where-Object {$_.Value -eq "Application.Read.All"} New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $MSI.Id -BodyParameter @{principalId=$MSI.Id; resourceId=$Graph_SP.Id; appRoleId=$AAD_AppRole.Id}
È possibile convalidare le autorizzazioni assegnate all'identità gestita eseguendo le operazioni seguenti:
- Nel portale Azure, andare su Microsoft Entra ID.
- Selezionare Applicazioni aziendali e quindi Tutte le applcazioni sotto Gestisci.
- Filtrare il tipo di applicazione in base a
Managed identities
. - Selezionare l'identità gestita e quindi scegliere Autorizzazioni in Sicurezza. Verranno visualizzate le autorizzazioni seguenti:
User.Read.All
,GroupMember.Read.All
,Application.Read.All
.
Abilita comunicazioni in uscita
Per consentire il funzionamento dell'autenticazione di Microsoft Entra, è necessario quanto segue:
- Comunicazione in uscita da SQL Server a Microsoft Entra ID e endpoint di Microsoft Graph.
- Comunicazione in uscita dal client SQL all'ID Microsoft Entra.
Le configurazioni predefinite delle macchine virtuali di Azure consentono la comunicazione in uscita all'endpoint di Microsoft Graph, oltre all'ID Microsoft Entra, ma alcuni utenti scelgono di limitare la comunicazione in uscita usando un firewall a livello di sistema operativo o il gruppo di sicurezza di rete di Rete virtuale di Azure.
I firewall nella macchina virtuale di SQL Server e qualsiasi client SQL devono consentire il traffico in uscita sulle porte 80 e 443.
La regola del gruppo di sicurezza di rete della rete virtuale di Azure per la rete virtuale che ospita la macchina virtuale di SQL Server deve avere quanto segue:
- Tag del servizio di
AzureActiveDirectory
. - Intervalli di porte di destinazione: 80, 443.
- Impostare Azione su Consenti.
- Una priorità alta (che è un numero basso).
Abilitare l'autenticazione di Microsoft Entra
È possibile abilitare l'autenticazione di Microsoft Entra nella macchina virtuale di SQL Server usando il portale di Azure o l'interfaccia della riga di comando di Azure.
Nota
Dopo aver abilitato l'autenticazione di Microsoft Entra, è possibile seguire la stessa procedura descritta in questa sezione per modificare la configurazione in modo da usare un'identità gestita diversa.
Abilita l'autenticazione di Microsoft Entra in macchine virtuali SQL Server:
Nel portale di Azure passare alla navigazione sulla risorsa macchina virtuale SQL.
Selezionare Configurazione di sicurezza sotto Sicurezza.
Scegliere Abilitare sotto autenticazione Microsoft Entra.
Scegliere il tipo di identità gestita dall'elenco a discesa: assegnato dal sistema o assegnato dall'utente. Se si sceglie l'assegnazione dell'utente, selezionare l'identità che si vuole usare per eseguire l'autenticazione a SQL Server nella macchina virtuale di Azure dall'elenco a discesa Identità gestita assegnata dall'utente visualizzato.
Dopo aver abilitato l'autenticazione di Microsoft Entra, è possibile seguire la stessa procedura per modificare l'identità gestita che può eseguire l'autenticazione nella macchina virtuale di SQL Server.
Nota
L'errore The selected managed identity does not have enough permissions for Microsoft Entra authentication
indica che le autorizzazioni non sono state assegnate correttamente all'identità selezionata. Controllare la sezione Concedi autorizzazioni per assegnare autorizzazioni appropriate.
Limiti
Tenere presente le limitazioni seguenti:
- L'autenticazione di Microsoft Entra è supportata solo con SQL Server 2022 in esecuzione in macchine virtuali Windows registrate con l'estensione SQL IaaS Agent, distribuite in qualsiasi cloud. Sono supportati solo gli scenari supportati dell'estensione SQL IaaS Agent, ad esempio un'istanza predefinita o una singola istanza denominata. Le istanze del cluster di Failover non sono supportate.
- Verificare che l'identità scelta per l'autenticazione a SQL Server disponga del ruolo di amministratori che leggono la directory di Microsoft Entra o delle tre autorizzazioni dell'applicazione Microsoft Graph (ruoli dell'app):
User.Read.All
,GroupMember.Read.All
eApplication.Read.All
. - Una volta abilitata l'autenticazione di Microsoft Entra, non è più possibile disabilitarla.
- Attualmente, l'autenticazione a SQL Server in macchine virtuali di Azure tramite l'autenticazione Di Microsoft Entra con il metodo FIDO2 non è supportata.
Passaggi successivi
Rivedere la procedura consigliata di sicurezza per SQL Server.
Per altri articoli relativi all'esecuzione di SQL Server nelle macchine virtuali di Azure, vedere Panoramica di SQL Server in Macchine virtuali di Azure. In caso di domande sulle macchine virtuali SQL Server, consultare le domande frequenti.
Per altre informazioni, vedere gli altri articoli di questa serie di procedure consigliate: