Condividi tramite


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:

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:

  1. Aprire i ruoli e gli amministratori di Microsoft Entra ID nel portale di Azure:

  2. 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:

    Screenshot della pagina Ruoli e amministratori del portale di Azure, cercare e selezionare il ruolo Lettori directory.

  3. Nella pagina amministratori che leggono la directory | Assegnazioni, selezionare + Aggiungi assegnazioni per aprire la pagina Aggiungi assegnazione.

    Screenshot della pagina Ruoli con autorizzazioni di lettura nella directory del portale di Azure.

  4. Nella pagina Aggiungi assegnazione scegliere Nessun membro selezionato in Seleziona membri per aprire la pagina Seleziona un membro.

    Screenshot della pagina aggiungi assegnazione del portale di Azure, con Nessun membro selezionato evidenziato.

  5. 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.

    Screenshot che cerca i membri da selezionare nella portale di Azure.

  6. Verificare che l'identità scelta sia visualizzata in Seleziona membri e quindi selezionare Avanti.

    Screenshot della pagina Aggiungi assegnazione nella portale di Azure, con VM2 aggiunta come assegnazione.

  7. 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.

    Screenshot delle impostazioni nell'opzione Aggiungi assegnazione nel portale di Azure.

  8. Nei lettori della pagina amministratori che leggono la directory | Assegnazioni, verificare che venga visualizzata l'identità appena aggiunta in amministratori che leggono la directory.

    Screenshot della pagina delle autorizzazioni di lettura del portale di Azure che mostra l'assegnazione della macchina virtuale aggiunta al ruolo.

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.

  1. Connettersi a Microsoft Graph

    Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All" -TenantId "<tenant id>"
    
  2. Recuperare l'identità gestita:

    $Graph_SP = Get-MgServicePrincipal -Filter "DisplayName eq 'Microsoft Graph'"
    $MSI = Get-MgServicePrincipal -Filter "displayName eq '<your managed identity display name>'"
    
  3. 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}
    
  4. 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}
    
  5. 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:

  1. Nel portale Azure, andare su Microsoft Entra ID.
  2. Selezionare Applicazioni aziendali e quindi Tutte le applcazioni sotto Gestisci.
  3. Filtrare il tipo di applicazione in base a Managed identities.
  4. 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:

  1. Nel portale di Azure passare alla navigazione sulla risorsa macchina virtuale SQL.

  2. Selezionare Configurazione di sicurezza sotto Sicurezza.

  3. Scegliere Abilitare sotto autenticazione Microsoft Entra.

  4. 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.

    Screenshot della pagina di configurazione della sicurezza per la macchina virtuale SQL nella portale di Azure, con l'opzione Autenticazione Di Microsoft Entra selezionata.

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 e Application.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: