Condividi tramite


Configurare e gestire l'autenticazione Microsoft Entra con Azure SQL

Applies to:Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

Questo articolo illustra come usare Microsoft Entra ID per l'autenticazione con Azure SQL Database, Azure SQL Managed Instance e Azure Synapse Analytics.

Nota

Microsoft Entra ID era precedentemente noto come Azure Active Directory (Azure AD).

In alternativa, è anche possibile configurare l'autenticazione Microsoft Entra per SQL Server on Azure Virtual Machines.

Prerequisiti

Per usare l'autenticazione Microsoft Entra con la risorsa Azure SQL, sono necessari i prerequisiti seguenti:

Creare e popolare un tenant Microsoft Entra

Prima di poter configurare l'autenticazione Microsoft Entra per la risorsa Azure SQL, è necessario creare un tenant Microsoft Entra e popolarlo con utenti e gruppi. Microsoft Entra tenant possono essere gestiti interamente all'interno di Azure o usati per la federazione di un servizio Active Directory Domain locale.

Per altre informazioni, vedi:

Impostare l'amministratore di Microsoft Entra

Per usare l'autenticazione Microsoft Entra con la risorsa, è necessario impostare l'amministratore Microsoft Entra. Anche se concettualmente i passaggi sono gli stessi per Azure SQL Database, Azure Synapse Analytics e Azure SQL Managed Instance, questa sezione descrive in dettaglio le diverse API e le diverse esperienze del portale a tale scopo per ogni prodotto.

L'amministratore Microsoft Entra può essere configurato anche quando viene creata la risorsa Azure SQL. Se un amministratore Microsoft Entra è già configurato, ignorare questa sezione.

Azure SQL Database e Azure Synapse Analytics

L'impostazione dell'amministratore Microsoft Entra abilita l'autenticazione Microsoft Entra per il server Logical per Azure SQL Database e Azure Synapse Analytics. È possibile impostare un amministratore Microsoft Entra per il server usando il portale di Azure, PowerShell, Azure CLI o le API REST.

Nel portale di Azure è possibile trovare il nome del server logical

  • Nel campo server name nella pagina Overview di Azure SQL Database.
  • Nel campo server name nella pagina Overview del pool SQL dedicato autonomo in Azure Synapse Analytics.
  • Nell'endpoint SQL pertinente nella pagina Overview dell'area di lavoro Azure Synapse Analytics.

Per impostare l'amministratore Microsoft Entra per il server logico nel portale di Azure, seguire questa procedura:

  1. Nel riquadro del portale di Azure Directory e sottoscrizioni, scegli la directory che contiene la tua risorsa Azure SQL come directory corrente.

  2. Cercare SQL Server e quindi selezionare il server logico per la risorsa di database per aprire il riquadro SQL Server.

    Screenshot che mostra come cercare e selezionare gli SQL Server.

  3. Nel riquadro SQL server per il server logico selezionare Microsoft Entra ID in Settings per aprire il riquadro Microsoft Entra ID.

  4. Nel riquadro Microsoft Entra ID selezionare Set admin per aprire il riquadro Microsoft Entra ID.

    Screenshot mostra l'opzione per impostare l'amministratore Microsoft Entra per SQL servers.

  5. Il riquadro Microsoft Entra ID mostra tutti gli utenti, i gruppi e le applicazioni nella directory corrente e consente di eseguire ricerche in base al nome, all'alias o all'ID. Trovare l'identità desiderata per l'amministratore Microsoft Entra e selezionarla, quindi selezionare Selezionare per chiudere il riquadro.

  6. Nella parte superiore della pagina Microsoft Entra ID per il server logico selezionare Salva.

    Screenshot mostra l'opzione per salvare un Microsoft Entra admin.

    L'ID Object viene visualizzato accanto al nome dell'amministratore per Microsoft Entra utenti e gruppi. Per le applicazioni (entità servizio), viene visualizzato l'ID applicazione.

Il processo di modifica dell'amministratore può richiedere alcuni minuti. Il nuovo amministratore viene quindi visualizzato nel campo Microsoft Entra admin.

Per rimuovere l'amministratore, nella parte superiore della pagina Microsoft Entra ID selezionare Amministratore , quindi selezionare Salva. La rimozione dell'amministratore Microsoft Entra disabilita l'autenticazione Microsoft Entra per il server logico.

Nota

L'amministratore Microsoft Entra viene archiviato nel database master del server come utente (entità di database). Poiché i nomi principali del database devono essere univoci, il nome visualizzato dell'amministratore non può essere uguale al nome di qualsiasi utente nel database del server master. Se un utente con questo nome esiste già, la configurazione dell'amministratore di Microsoft Entra fallisce ed esegue il rollback, indicando che il nome è già in uso.

Azure SQL Managed Instance (Istanza Gestita di SQL di Azure)

L'impostazione dell'amministratore Microsoft Entra abilita l'autenticazione Microsoft Entra per Azure SQL Managed Instance. È possibile impostare un amministratore di Microsoft Entra per l'istanza gestita di SQL usando il portale di Azure, PowerShell, Azure CLI o le API REST.

Per concedere all'istanza gestita di SQL le autorizzazioni di lettura per Microsoft Entra ID usando il portale di Azure, accedere come Amministratore di Ruolo Privilegiato e seguire i seguenti passaggi:

  1. Nell'angolo superiore destro del portale di Azure, selezionare il proprio account e quindi scegliere Cambia directory per confermare quale sia la propria directory corrente. Se necessario, cambiare directory.

    Screenshot del portale di Azure che mostra dove cambiare directory.

  2. Nel riquadro Azure portal Directory e abbonamenti scegli la directory che contiene l'istanza gestita come directory corrente.

  3. Cercare istanze gestite di SQL e quindi selezionare l'istanza gestita per aprire il riquadro Istanza gestita di SQL. Selezionare quindi Microsoft Entra ID in Settings per aprire il riquadro Microsoft Entra ID per l'istanza.

    Screenshot del portale di Azure che mostra la pagina di amministrazione Microsoft Entra aperta per l'istanza gestita di SQL selezionata.

  4. Nel riquadro Microsoft Entra admin selezionare Set admin dalla barra di spostamento per aprire il riquadro Microsoft Entra ID.

    Screenshot che mostra il comando Imposta amministratore evidenziato nella pagina di amministrazione di Microsoft Entra per l'istanza gestita di SQL selezionata.

  5. Nel riquadro Microsoft Entra ID cercare un utente, selezionare la casella accanto all'utente o al gruppo come amministratore e quindi premere Select per chiudere il riquadro e tornare alla pagina Microsoft Entra admin per l'istanza gestita.

    Il riquadro Microsoft Entra ID mostra tutti i membri e i gruppi all'interno della directory corrente. Gli utenti o i gruppi visualizzati in grigio non sono selezionabili perché non sono supportati come amministratori per Microsoft Entra. Selezionare l'identità da assegnare come amministratore.

  6. Nella barra di spostamento della pagina Microsoft Entra admin per l'istanza gestita, selezionare Salva per confermare l'amministratore di Microsoft Entra.

    Screenshot della pagina di amministrazione Microsoft Entra con il pulsante Salva nella riga superiore accanto ai pulsanti Imposta amministratore e Rimuovi pulsanti di amministrazione.

    Al termine dell'operazione di modifica dell'amministratore, il nuovo amministratore viene visualizzato nel campo Microsoft Entra admin.

    L'ID Object viene visualizzato accanto al nome dell'amministratore per Microsoft Entra utenti e gruppi. Per le applicazioni (entità servizio), viene visualizzato l'ID applicazione.

Suggerimento

Per rimuovere l'amministratore, selezionare Amministratore nella parte superiore della pagina Microsoft Entra ID, quindi selezionare Salva.

Assegnare autorizzazioni Microsoft Graph

SQL Managed Instance necessita delle autorizzazioni per leggere Microsoft Entra ID per scenari come autorizzare gli utenti che si connettono tramite l'appartenenza al gruppo di sicurezza e la creazione di nuovi utenti. Per consentire il funzionamento dell'autenticazione Microsoft Entra, è necessario assegnare l'identità dell'istanza gestita al ruolo Directory Reader. A tale scopo, è possibile usare il portale di Azure o PowerShell.

Per alcune operazioni, Azure SQL Database e Azure Synapse Analytics richiedono anche autorizzazioni per eseguire query Microsoft Graph, come illustrato in Microsoft Graph autorizzazioni. Azure SQL Database e Azure Synapse Analytics supportano autorizzazioni Graph con granularità fine per questi scenari, mentre SQL Managed Instance richiede il ruolo Directory Reader. I permessi a grana fine e la loro assegnazione sono descritti in dettaglio in abilitare i principali del servizio per creare utenti Microsoft Entra.

Importante

Azure SQL Database e SQL Managed Instance usano modelli di autorizzazione diversi per l'accesso Microsoft Graph:

  • Azure SQL Database e Azure Synapse Analytics: supportare autorizzazioni Graph API Microsoft con granularità fine (ad esempio User.Read.All, GroupMember.Read.All e Application.Read.All) assegnate direttamente all'identità del server. Questo approccio segue il principio dei privilegi minimi ed è consigliato. Per istruzioni dettagliate, vedere Abilitare i principali del servizio per creare utenti di Microsoft Entra. Il ruolo Lettori della directory può essere usato anche come alternativa più ampia.
  • SQL Managed Instance: richiede il ruolo Directory Readers o autorizzazioni equivalenti di Microsoft Graph definite assegnate all'identità dell'istanza. Il portale di Azure fornisce un pratico banner sulla pagina Microsoft Entra ID che ti invita ad assegnare il ruolo di Lettore directory. Seguire la procedura descritta nella sezione Ruolo Lettori della directory.

Se si configura Azure SQL Database, non è necessario assegnare il ruolo Directory Reader per la configurazione amministrativa di base di Microsoft Entra. Assegnare invece le autorizzazioni di Microsoft Graph con granularità fine all'identità del server, come descritto in Identità gestite in Microsoft Entra per Azure SQL.

Ruolo Lettori della Directory

Il ruolo Directory Reader e il banner del portale descritto in questa sezione si applicano principalmente a SQL Managed Instance. Per Azure SQL Database, è possibile assegnare autorizzazioni di Microsoft Graph dettagliate oppure usare facoltativamente i lettori di directory come alternativa più ampia.

La pagina Microsoft Entra ID per SQL Managed Instance nel portale di Azure visualizza un banner pratico quando all'istanza non vengono assegnate le autorizzazioni di lettura directory.

  1. Selezionare il banner nella parte superiore della pagina Microsoft Entra ID e concedere l'autorizzazione all'identità gestita assegnata dal sistema o assegnata dall'utente che rappresenta l'istanza. Questa operazione può essere eseguita solo da un Amministratore dei ruoli privilegiati o da un ruolo superiore nel tuo tenant.

    Nota

    Se il banner non viene visualizzato, l'istanza potrebbe avere già assegnato il ruolo Lettori della directory, oppure potresti non avere il ruolo Amministratore dei ruoli con privilegi richiesto. Se questo ruolo non è disponibile, chiedere all'amministratore tenant di concedere l'autorizzazione o usare il metodo PowerShell nella scheda PowerShell .

    Screenshot della finestra di dialogo per concedere le autorizzazioni a un'istanza gestita di SQL per l'accesso a Microsoft Entra ID con il pulsante Concedi autorizzazioni selezionato.

  2. Quando l'operazione ha esito positivo, viene visualizzata una notifica di operazione riuscita nell'angolo in alto a destra:

    Screenshot di una notifica che conferma che le autorizzazioni di lettura Microsoft Entra ID vengono aggiornate correttamente per l'istanza gestita.

L'amministratore Microsoft Entra può ora essere usato per creare Microsoft Entra entità server (account di accesso) e entità di database (utenti). Per altre informazioni, vedere integrazione Microsoft Entra con Azure SQL Managed Instance.

Creare entità di Microsoft Entra in SQL

Per connettersi a un database in SQL Database o in Azure Synapse Analytics con l'autenticazione Microsoft Entra, è necessario configurare un'entità nel database per quell'identità con almeno l'autorizzazione CONNECT.

Autorizzazioni per utenti di database

Quando viene creato un utente del database, riceve l'autorizzazione CONNECT per il database per impostazione predefinita. Un utente del database eredita le autorizzazioni anche in altre due circostanze:

  • Se l'utente è membro di un gruppo di Microsoft Entra a cui sono assegnate anche le autorizzazioni nel server.
  • Se l'utente viene creato da un login, eredita le autorizzazioni assegnate dal server al login applicabili nel database.

La gestione delle autorizzazioni per server e entità di database funziona allo stesso modo indipendentemente dal tipo di entità (Microsoft Entra ID, autenticazione SQL e così via). È consigliabile concedere autorizzazioni ai ruoli del database anziché concedere direttamente le autorizzazioni agli utenti. Gli utenti potranno quindi essere aggiunti ai ruoli con autorizzazioni appropriate. Ciò semplifica la gestione a lungo termine delle autorizzazioni e riduce la probabilità che un'identità mantenga l'accesso passato quando è appropriato.

Per altre informazioni, vedi:

Utenti del database contenuto

Un utente del database contenuto è un tipo di utente SQL che non è connesso a un login nel database master. Per creare un utente di database contenuto di Microsoft Entra, connettersi al database utilizzando un'identità Microsoft Entra che abbia almeno l'autorizzazione ALTER ANY USER**. Nell'esempio T-SQL seguente viene creata un'entità di database Microsoft_Entra_principal_name da Microsoft Entra ID.

CREATE USER [<Microsoft_Entra_principal_name>] FROM EXTERNAL PROVIDER;

Per creare un utente di database contenuto per un gruppo di Microsoft Entra, immettere il nome visualizzato del gruppo:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Per creare un utente di database indipendente per un'identità gestita o un'entità servizio, immettere il nome visualizzato dell'identità:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Per creare un utente del database specifico per un utente Microsoft Entra, immettere il nome principale utente dell'identità:

CREATE USER [adrian@contoso.com] FROM EXTERNAL PROVIDER;

Utenti autenticati tramite accesso

Nota

I principali del server Microsoft Entra (account di accesso) sono attualmente in public preview per Azure SQL Database e Azure Synapse Analytics. Microsoft Entra account di accesso sono disponibili a livello generale per Azure SQL Managed Instance e SQL Server 2022.

Principali del server Microsoft Entra (o account di accesso) sono supportati, il che significa che gli utenti del database contenuti non sono necessari. Le entità di database (utenti) possono essere create in base a un'entità server, il che significa che gli utenti di Microsoft Entra possono ereditare le autorizzazioni assegnate a livello di server di un login.

CREATE USER [appName] FROM LOGIN [appName];

Per ulteriori informazioni, vedere panoramica di SQL Managed Instance. Per la sintassi sulla creazione dei principali del server Microsoft Entra (logins), vedere CREATE LOGIN.

Utenti esterni

Non è possibile creare direttamente un utente di database per un'identità gestita in un tenant di Microsoft Entra diverso da quello associato alla sottoscrizione Azure. Tuttavia, gli utenti nelle altre directory possono essere importati nella directory associata come utenti esterni. Possono quindi essere usate per creare utenti di database contenuti che possano accedere al database. Gli utenti esterni possono anche ottenere l'accesso tramite l'appartenenza a gruppi di Microsoft Entra.

Examples: Per creare un utente contenuto del database che rappresenta un utente di dominio federato o gestito Microsoft Entra:

CREATE USER [alice@fabrikam.com] FROM EXTERNAL PROVIDER;

Un account utente di dominio federato importato in un dominio gestito come utente esterno deve usare l'identità del dominio gestito.

Considerazioni sul nome

I caratteri speciali, come i due punti : o i commerciali &, quando inclusi come nomi utente nelle istruzioni T-SQL CREATE LOGIN e CREATE USER, non sono supportati.

Microsoft Entra ID e Azure SQL divergono nella progettazione della gestione degli utenti in modo chiave: Microsoft Entra ID consente di duplicare i nomi visualizzati all'interno di un tenant, mentre Azure SQL richiede che tutte le entità server in un server o un'istanza e tutte le entità di database di un database abbiano un nome univoco. Poiché Azure SQL usa direttamente il nome visualizzato Microsoft Entra dell'identità quando si creano i principali, questo può causare errori durante la creazione di utenti. Per risolvere questo problema, Azure SQL ha rilasciato il miglioramento WITH OBJECT_ID attualmente in anteprima, che consente agli utenti di specificare l'ID oggetto Microsoft Entra dell'identità aggiunta al server o all'istanza.

autorizzazioni Microsoft Graph

Il comando CREATE USER ... FROM EXTERNAL PROVIDER richiede Azure SQL l'accesso a Microsoft Entra ID (il "provider esterno") per conto dell'utente connesso. In alcuni casi, si verificano circostanze che causano Microsoft Entra ID restituire un'eccezione a Azure SQL.

  • È possibile che venga visualizzato l'errore SQL 33134, che contiene il messaggio di errore specifico del Microsoft Entra ID. L'errore indica in genere che l'accesso è stato negato, che l'utente deve registrarsi con il metodo di autenticazione a più fattori per accedere alla risorsa o che l'accesso tra le applicazioni proprietarie deve essere gestito tramite pre-autorizzazione. Nei primi due casi, il problema è in genere causato dai criteri di accesso condizionale impostati nel tenant Microsoft Entra dell'utente: impediscono all'utente di accedere al provider esterno. L'aggiornamento dei criteri di accesso condizionale per consentire l'accesso all'applicazione '00000003-0000-0000-00000000000000' (ID applicazione del Graph API Microsoft) deve risolvere il problema. Se l'errore indica che l'accesso tra le applicazioni di prim'ordine deve essere gestito tramite pre-autorizzazione, il problema è dovuto al fatto che l'utente ha eseguito l'accesso come principale del servizio. Il comando dovrebbe avere esito positivo se eseguito da un utente.
  • Se viene visualizzato un timeout di connessione Scaduto, potrebbe essere necessario impostare il parametro TransparentNetworkIPResolution del connection string su false. Per altre informazioni, vedere Problema di timeout della connessione con .NET Framework 4.6.1 - TransparentNetworkIPResolution.

Per ulteriori informazioni sulla creazione di utenti contenuti di database basati su identità Microsoft Entra, vedere CREATE USER.

Configurare l'autenticazione a più fattori

Per una maggiore sicurezza per la risorsa Azure SQL, è consigliabile configurare multifactor authentication (MFA), che richiede all'utente di usare un secondo metodo alternativo per l'autenticazione al database, ad esempio una chiamata telefonica o un'app di autenticazione.

Per usare l'autenticazione a più fattori con la risorsa Azure SQL, usare prima abilitare l'autenticazione a più fattori e quindi usare un criterio di accesso Criteri di accesso condizionale per applicare l'autenticazione a più fattori per la risorsa Azure SQL.

Connettersi con Microsoft Entra

Dopo aver configurato l'autenticazione di Microsoft Entra, è possibile usarla per connettersi alla risorsa SQL con strumenti Microsoft come SQL Server Management Studio e SQL Server Data Tools, e configurare le applicazioni client per la connessione tramite identità di Microsoft Entra.

Risolvere i problemi di autenticazione Microsoft Entra

Per indicazioni sulla risoluzione dei problemi, vedere Blog: Risoluzione dei problemi relativi all'autenticazione Microsoft Entra con Azure SQL Database e Azure Synapse.