Configurare e gestire l'autenticazione a Microsoft Entra con Azure SQL

Si applica a: Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics

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

Nota

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

In alternativa, è anche possibile configurare l'autenticazione Microsoft Entra per SQL Server su Macchine virtuali Azure.

Prerequisiti

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

Creare e popolare un tenant di Microsoft Entra

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

Per altre informazioni, vedi:

Configurazione di un amministratore Microsoft Entra

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

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

Database SQL di Azure e Azure Synapse Analytics

L'impostazione dell'amministratore di Microsoft Entra abilita l'autenticazione di Microsoft Entra per il server logico per database SQL di Azure e Azure Synapse Analytics. È possibile impostare un amministratore di Microsoft Entra per il server usando il portale di Azure, PowerShell, l’interfaccia della riga di comando di Azure o le API REST.

Il nome del server logico è disponibile nel portale di Azure

  • Nel campo nome del server della pagina di Panoramica del database SQL di Azure.
  • Nel campo Nome del server nella pagina di Panoramica del pool SQL autonomo dedicato in Azure Synapse Analytics.
  • Nell'endpoint SQL pertinente nella pagina di Panoramica dell'area di lavoro Azure Synapse Analytics.

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

  1. Nel riquadro portale di Azure Directory e sottoscrizioni, scegliere la directory che contiene la 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 Impostazioni per aprire il riquadro Microsoft Entra ID.

  4. Nel riquadro Microsoft Entra ID, selezionare Imposta amministratore per aprire il riquadro Microsoft Entra ID.

    Screenshot che mostra l'opzione per impostare l'amministratore di Microsoft Entra per i server SQL.

  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 di Microsoft Entra e selezionarla, quindi fare clic su Seleziona per chiudere il riquadro.

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

    Screenshot che mostra l'opzione per salvare un amministratore di Microsoft Entra.

    L'ID oggetto viene visualizzato accanto al nome amministratore per utenti e gruppi di Microsoft Entra. 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 Amministratore di Microsoft Entra.

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

Nota

L'amministratore di Microsoft Entra viene archiviato nel database del server master come utente (entità di sicurezza del database). Poiché i nomi delle entità di sicurezza 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 esiste già un utente con il nome, la configurazione dell'amministratore di Microsoft Entra ha esito negativo e esegue il rollback, a indicare che il nome è già in uso.

Istanza gestita di SQL di Azure

L'impostazione dell'amministratore di Microsoft Entra abilita l'autenticazione di Microsoft Entra per Istanza gestita di SQL di Azure. È possibile impostare un amministratore di Microsoft Entra per l'istanza gestita di SQL usando ol portale di Azure, PowerShell, l'interfaccia della riga di comando di Azure o le API REST.

Per concedere all'istanza gestita di SQL le autorizzazioni di lettura a Microsoft Entra ID utilizzando il portale Azure, accedere come amministratore globale o amministratore ruolo con privilegi e seguire questi passaggi:

  1. Nell'angolo superiore destro del portale di Azure selezionare l'account e quindi scegliere Cambia directory per verificare quale directory sia la Directory corrente. Se necessario, cambiare directory.

    Screenshot del portale di Azure che mostra dove cambiare la directory.

  2. Nel riquadro portale di Azure Directory e sottoscrizioni, scegliere 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 Impostazioni per aprire il riquadro MICROSOFT Entra ID per l'istanza.

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

  4. Nel riquadro Amministratore di Microsoft Entra, selezionare Imposta amministratore 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, quindi premere Seleziona per chiudere il riquadro e tornare alla pagina Amministratore di Microsoft Entra per l'istanza gestita.

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

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

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

    Al termine dell'operazione di modifica dell'amministratore, il nuovo amministratore verrà visualizzato nel campo Amministratore di Microsoft Entra.

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

Suggerimento

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

Assegnare le autorizzazioni per Microsoft Graph

Istanza gestita di SQL necessita di autorizzazioni per la lettura di Microsoft Entra ID per scenari quali l'autorizzazione degli utenti che si connettono tramite l'appartenenza a gruppi di sicurezza e la creazione di nuovi utenti. Per consentire il funzionamento dell'autenticazione di Microsoft Entra, è necessario assegnare l'identità dell'istanza gestita al ruolo Amministratori che leggono la directory. Questa operazione può essere eseguita tramite il portale di Azure o PowerShell.

Per alcune operazioni, Database SQL di Azure e Azure Synapse Analytics richiedono anche le autorizzazioni per eseguire query su Microsoft Graph, come illustrato in Autorizzazioni di Microsoft Graph. Ddatabase SQL di Azure e Azure Synapse Analytics supportano autorizzazioni specifiche Graph, per questi scenari, mentre Istanza gestita di SQL richiede il ruolo di Amministratore che legge la directory. Le autorizzazioni specifiche e la relativa assegnazione sono descritte in dettaglio in Abilitare le entità servizio per creare utenti di Microsoft Entra.

Ruolo con autorizzazioni di lettura nella directory

La pagina Microsoft Entra ID per Istanza gestita di SQL nel portale di Azure visualizza un banner pratico quando all'istanza non vengono assegnate le autorizzazioni di Amministratore che legge la 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 globale o da un Amministratore ruolo con privilegi nel tenant.

    Screenshot della finestra di dialogo per la concessione delle 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 di Microsoft Entra ID sono correttamente aggiornate per l'istanza gestita.

L'amministratore di Microsoft Entra può ora essere usato per creare entità di sicurezza del server (accessi) e entità di sicurezza del database (utenti) di Microsoft Entra. Per altre informazioni, vedere Integrazione di Microsoft Entra con Istanza gestita di SQL di Azure.

Creare entità di sicurezza di Microsoft Entra in SQL

Per connettersi a un database in database SQL o Azure Synapse Analytics con l'autenticazione di Microsoft Entra, è necessario configurare un'entità di sicurezza nel database per tale 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 Microsoft Entra a cui sono assegnate anche le autorizzazioni sul server.
  • Se l'utente viene creato da un accesso, eredita le autorizzazioni assegnate dal server dell'account di accesso applicabili nel database.

La gestione delle autorizzazioni per le entità di sicurezza del server e del database funziona allo stesso modo, indipendentemente dal tipo di entità di sicurezza (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 indipendente

Un utente del database indipendente è un tipo di utente SQL non connesso a un account di accesso nel database masterx. Per creare un utente di database indipendente di Microsoft Entra, connettersi al database con un'identità di Microsoft Entra con almeno l'autorizzazione ALTER ANY USER. Nell'esempio T-SQL seguente, viene creata un'entità di sicurezza 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 indipendente 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 di database indipendente per un utente di Microsoft Entra, immettere il nome dell'entità utente dell'identità:

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

Utenti basati su accesso

Nota

Le entità di sicurezza (accessi) di Microsoft Entra attualmente sono in anteprima pubblica per database SQL di Azure e Azure Synapse Analytics. Gli accessi di Microsoft Entra sono disponibili a livello generale per Istanza gestita di SQL di Azure e SQL Server 2022.

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

CREATE USER [appName] FROM LOGIN [appName];

Per altre informazioni, vedere Panoramica di Istanza gestita di SQL. Per la sintassi per la creazione di entità server (account di accesso) di Microsoft Entra, vedere CREATE LOGIN.

Utenti esterni

Non è possibile creare direttamente un utente del database per un'identità gestita in un tenant di Microsoft Entra diverso da quello associato alla sottoscrizione di 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 indipendente che possano accedere al database. Gli utenti esterni possono anche ottenere l'accesso tramite l'appartenenza ai gruppi Microsoft Entra.

Esempi: per creare un utente di database indipendente che rappresenta un utente di dominio gestito o federato di 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 sulla denominazione

I caratteri speciali, come i due punti : o la e commerciale &, 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 un modo chiave: Microsoft Entra ID consente di duplicare i nomi visualizzati all'interno di un tenant, mentre Azure SQL richiede che tutte le entità di sicurezza del server in un server o un'istanza e tutte le entità di sicurezza del database in un database abbiano un nome univoco. Poiché Azure SQL usa direttamente il nome visualizzato di Microsoft Entra dell'identità durante la creazione di entità di sicurezza, questo può causare errori durante la creazione di utenti. Per risolvere questo problema, Azure SQL ha rilasciato il miglioramento di 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 per Microsoft Graph

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

  • È possibile che venga visualizzato l'errore SQL 33134, che contiene il messaggio di errore specifico di 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-c000-000000000000" (ID applicazione dell'API Microsoft Graph) dovrebbe risolvere il problema. Se l'errore indica che l'accesso tra le applicazioni proprietarie deve essere gestito tramite pre-autorizzazione, il problema è dovuto al fatto che l'utente ha eseguito l'accesso come entità servizio. Il comando dovrebbe avere esito positivo se eseguito da un utente.
  • Se si riceve un messaggio di timeout della connessione scaduto, potrebbe essere necessario impostare il parametro TransparentNetworkIPResolution della stringa di connessione su false. Per altre informazioni, vedere Connection timeout issue with .NET Framework 4.6.1 - TransparentNetworkIPResolution (Problema di timeout della connessione con .NET Framework 4.6.1 - TransparentNetworkIPResolution).

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

Configurare l'autenticazione a più fattori

Per una maggiore sicurezza per la risorsa di Azure SQL, è consigliabile configurare l'autenticazione a più fattori (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 di Azure SQL, abilitare prima l'autenticazione a più fattori e quindi usare un criterio di accesso condizionale per applicare l'autenticazione a più fattori per la risorsa di 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 usando le identità di Microsoft Entra.

Risolvere i problemi di autenticazione di Microsoft Entra

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