Utilizzare Autenticazione Microsoft Entra
Si applica a: Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Questo articolo offre una panoramica dell'uso di Microsoft Entra ID (precedentemente Azure Active Directory) per l'autenticazione a database SQL di Azure, Istanza gestita di SQL di Azure, SQL Server in VM di Windows Azure, Synapse SQL in Azure Synapse Analytics e SQL Server per Windows e Linux.
Per informazioni su come creare e popolare l'ID Microsoft Entra e quindi configurare Microsoft Entra ID con database SQL di Azure, Istanza gestita di SQL di Azure e Synapse SQL in Azure Synapse Analytics, vedere Configurare Microsoft Entra ID e Microsoft Entra ID con SQL Server in VM di Azure.
Nota
Microsoft Entra ID era precedentemente conosciuto come Azure Active Directory (Azure AD).
Panoramica
Con l'autenticazione di Microsoft Entra è possibile gestire centralmente le identità degli utenti del database e altri servizi Microsoft. La gestione centrale degli ID consente di gestire gli utenti del database da un unico punto e semplifica la gestione delle autorizzazioni. Ecco alcuni vantaggi:
Offre un'alternativa all'autenticazione di SQL Server.
Contribuisce ad arrestare la proliferazione delle identità utente nei server.
Consente la rotazione delle password in un'unica posizione.
I clienti possono gestire le autorizzazioni del database tramite gruppi Microsoft Entra.
Può eliminare l'archiviazione delle password abilitando l'autenticazione integrata di Windows e altre forme di autenticazione supportate da Microsoft Entra ID.
L'autenticazione di Microsoft Entra usa gli utenti di un database indipendente per autenticare le identità a livello di database.
Microsoft Entra ID supporta l'autenticazione basata su token per le applicazioni che si connettono al database SQL e a Istanza gestita di SQL.
L'autenticazione di Microsoft Entra supporta:
- Identità solo cloud di Microsoft Entra.
- Identità ibride Microsoft Entra che supportano:
- L'autenticazione cloud con due opzioni abbinate all'autenticazione pass-through dell'accesso Single Sign-On (SSO) facile e all'autenticazione tramite hash delle password.
- Autenticazione federata.
- Per altre informazioni sui metodi di autenticazione di Microsoft Entra e su quale scegliere, vedere il seguente articolo:
SQL Server Management Studio supporta connessioni che usano Microsoft Entra con autenticazione a più fattori. L'autenticazione a più fattori include funzionalità avanzate di autenticazione con una serie di opzioni di verifica, tra cui chiamata telefonica, SMS, smart card con PIN o notifica tramite app per dispositivi mobili. Per altre informazioni, vedere Supporto di SSMS per l'autenticazione a più fattori di Microsoft Entra con database SQL di Azure, Istanza gestita di SQL e Azure Synapse
SQL Server Data Tools (SSDT) supporta inoltre un'ampia gamma di opzioni di autenticazione con Microsoft Entra ID. Per altre informazioni, vedere Supporto di Microsoft Entra ID in SQL Server Data Tools (SSDT).
I passaggi di configurazione includono le procedure seguenti per configurare e usare l'autenticazione di Microsoft Entra.
- Creare e popolare un tenant di Microsoft Entra.
- Facoltativo: associare o modificare la directory corrente associata alla sottoscrizione di Azure.
- Creare un amministratore di Microsoft Entra.
- Configurare i computer client.
- Creare utenti di database indipendente nel proprio database mappati alle identità di Microsoft Entra.
- Connettersi al database con identità di Microsoft Entra.
Nota
Per SQL di Azure, VM di Azure e SQL Server 2022, l'autenticazione di Microsoft Entra supporta solo i token di accesso che hanno origine da Microsoft Entra ID e non supporta i token di accesso di terze parti. Inoltre, Microsoft Entra ID non supporta il reindirizzamento delle query di Microsoft Entra ID a endpoint di terze parti. Ciò vale per tutte le piattaforme SQL e tutti i sistemi operativi che supportano l'autenticazione di Microsoft Entra.
Architettura di attendibilità
- Solo la parte cloud di Microsoft Entra ID, database SQL, Istanza gestita di SQL, SQL Server in VM di Windows Azure e Azure Synapse sono considerati in grado di supportare le password utente native di Microsoft Entra.
- Per supportare le credenziali Single Sign-On di Windows (o utente/password per le credenziali di Windows), usare le credenziali di Microsoft Entra da un dominio federato o gestito configurato per l'accesso Single Sign-On facile per l'autenticazione pass-through e l'hash delle password. Per altre informazioni, vedere Single Sign-On facile di Microsoft Entra.
- Per supportare l'autenticazione federata o l'autenticazione utente/password per le credenziali di Windows, è necessaria la comunicazione con il blocco AD FS.
Per altre informazioni sulle identità ibride di Microsoft Entra, la configurazione e la sincronizzazione, vedere i seguenti articoli:
- Autenticazione con hash delle password: implementare la sincronizzazione dell'hash delle password con il servizio di sincronizzazione di Microsoft Entra Connect
- Autenticazione pass-through: autenticazione pass-through di Microsoft Entra
- Autenticazione federata: implementazione di Active Directory Federation Services in Azure e Microsoft Entra Connect e federazione
Per un'autenticazione federata di esempio con l'infrastruttura ADFS (o utente/password per le credenziali di Windows), vedere il seguente diagramma. Le frecce indicano i percorsi di comunicazione.
Il diagramma seguente indica le relazioni federative, di trust e di hosting che consentono a un client di connettersi a un database inviando un token, che viene autenticato da Azure Active Directory e considerato attendibile dal database. Il token è autenticato da Microsoft Entra ID ed è considerato attendibile dal database. Il cliente 1 può rappresentare Microsoft Entra ID con utenti nativi o Microsoft Entra ID con utenti federati. Il cliente 2 rappresenta una possibile soluzione che include utenti importati, in questo esempio provenienti da un Microsoft Entra ID federato con ADFS sincronizzato con Microsoft Entra ID. È importante comprendere che l'accesso a un database con l'autenticazione di Microsoft Entra richiede che la sottoscrizione di hosting sia associata a Microsoft Entra ID. La stessa sottoscrizione deve essere usata per creare le risorse di database SQL di Azure, di Istanza gestita di SQL o di Azure Synapse.
Struttura dell'account amministratore
Quando si usa l'autenticazione di Microsoft Entra, sono disponibili due account amministratore: l'amministratore database SQL di Azure originale e l'amministratore di Microsoft Entra. Si applicano gli stessi concetti ad Azure Synapse. Solo l'amministratore basato su un account Microsoft Entra può creare il primo utente di database indipendente di Microsoft Entra ID in un database utente. L'account di accesso dell'amministratore di Microsoft Entra può essere un utente di Microsoft Entra o un gruppo Microsoft Entra. Quando l'amministratore è un account di gruppo, può essere usato da qualsiasi membro del gruppo, abilitando quindi più amministratori di Microsoft Entra per il server. L'uso dell'account di gruppo come amministratore migliora la gestibilità, perché consente di aggiungere e rimuovere a livello centrale i membri del gruppo in Microsoft Entra ID senza apportare modifiche a utenti o autorizzazioni nel database SQL o in Azure Synapse. È possibile configurare un solo amministratore di Microsoft Entra (utente o gruppo) alla volta.
Nota
L'autenticazione di Microsoft Entra con Azure SQL supporta solo il singolo tenant di Microsoft Entra in cui si trova al momento la risorsa SQL di Azure. È possibile configurare tutti gli oggetti Microsoft Entra di questo tenant come utenti che consentono l'accesso ad Azure SQL in questo tenant. L'amministratore di Microsoft Entra deve appartenere anche al tenant della risorsa di Azure SQL. L'autenticazione multi-tenant di Microsoft Entra per l'accesso ad Azure SQL da tenant diversi non è supportata.
Autorizzazioni
Per creare nuovi utenti, è necessario avere l'autorizzazione ALTER ANY USER
sul database. L'autorizzazione ALTER ANY USER
può esser concessa a qualsiasi utente di database. L'autorizzazione ALTER ANY USER
è assegnata anche agli account amministratore del server, agli utenti di database con l'autorizzazione CONTROL ON DATABASE
o ALTER ON DATABASE
per tale database e ai membri del ruolo del database db_owner
.
Per creare un utente di database indipendente nel database SQL di Azure, in Istanza gestita di SQL di Azure o in Azure Synapse, è necessario connettersi al database o all'istanza con un'identità di Microsoft Entra. Per creare il primo utente di database indipendente, è necessario connettersi al database tramite un amministratore di Microsoft Entra (che corrisponde al proprietario del database). Ciò è illustrato in Configurare e gestire l'autenticazione di Microsoft Entra con database SQL o Azure Synapse. L'autenticazione di Microsoft Entra è possibile solamente se l'amministratore di Microsoft Entra è stato creato per database SQL di Azure, Istanza gestita di SQL di Azure o Azure Synapse. Se l'amministratore di Microsoft Entra è stato rimosso dal server, gli utenti esistenti di Microsoft Entra creati in precedenza all'interno del server non possono più connettersi al database usando le credenziali di Microsoft Entra.
Funzionalità e limitazioni di Microsoft Entra
È possibile effettuare il provisioning dei seguenti membri di Microsoft Entra ID per database SQL di Azure:
- Utenti di Microsoft Entra: qualsiasi tipo di utente in un tenant di Microsoft Entra, inclusi utenti interni, esterni, guest e membri. Anche i membri di un dominio Active Directory configurati per la federazione con Microsoft Entra ID sono supportati e possono essere configurati per l’accesso Single Sign-On facile.
- Applicazioni: le applicazioni esistenti in Azure possono usare entità servizio o identità gestite per l'autenticazione diretta a database SQL di Azure. L'uso di identità gestite per l'autenticazione è preferibile perché avviene senza password ed elimina la necessità di credenziali gestite dallo sviluppatore.
- Gruppi di Microsoft Entra, che possono semplificare la gestione degli accessi all'interno dell'organizzazione gestendo l'accesso appropriato di utenti e applicazioni in base all'appartenenza al gruppo.
Gli utenti di Microsoft Entra che fanno parte di un gruppo membro del ruolo del database
db_owner
non possono usare la sintassi CREATE DATABASE SCOPED CREDENTIAL nel database SQL di Azure e in Azure Synapse. Verrà visualizzato l'errore seguente:SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either doesn't exist or you do not have permission to use it.
Per prevenire il problema CREATE DATABASE SCOPED CREDENTIAL, assegnare il ruolo
db_owner
direttamente al singolo utente di Microsoft Entra.Queste funzioni di sistema non sono supportate e restituiscono valori NULL quando vengono eseguite dalle entità di sicurezza di Microsoft Entra:
SUSER_ID()
SUSER_NAME(<ID>)
SUSER_SNAME(<SID>)
SUSER_ID(<name>)
SUSER_SID(<name>)
Database SQL di Azure non crea utenti impliciti per gli utenti che hanno effettuato l'accesso come parte di un'appartenenza a gruppi di Microsoft Entra. Per questo motivo varie operazioni che richiedono l'assegnazione della titolarità avranno esito negativo anche se il gruppo Microsoft Entra viene aggiunto come membro a un ruolo con tali autorizzazioni.
Ad esempio, un utente che ha effettuato l'accesso a un database tramite un gruppo Microsoft Entra con il ruolo db_ddladmin non sarà in grado di eseguire CREATE SCHEMA, ALTER SCHEMA e altre istruzioni di creazione di oggetti senza uno schema definito in modo esplicito (ad esempio tabella, vista o tipo). Per risolvere questo problema è necessario creare un utente di Microsoft Entra per tale utente oppure il gruppo Microsoft Entra deve essere modificato in modo da assegnare il DEFAULT_SCHEMA a dbo.
Istanza gestita di SQL
Istanza gestita di SQL supporta le entità server (account di accesso) e gli utenti di Microsoft Entra.
L'impostazione degli account di accesso di Microsoft Entra mappati a un gruppo di Microsoft Entra come proprietario del database non è supportata in Istanza gestita di SQL.
- Un'estensione di questo scenario si verifica quando un gruppo viene aggiunto come parte del ruolo del server
dbcreator
; in questo caso, gli utenti del gruppo possono connettersi a Istanza gestita di SQL e creare nuovi database, ma non possono accedere al database. Il nuovo proprietario del database, infatti, è SA e non l'utente di Microsoft Entra. Questo problema non si verifica se al ruolo del serverdbcreator
si aggiunge il singolo utente.
- Un'estensione di questo scenario si verifica quando un gruppo viene aggiunto come parte del ruolo del server
Per gli account di accesso di Microsoft Entra sono supportate l'esecuzione di processi e le operazioni di gestione di SQL Agent.
Le operazioni di backup e ripristino del database possono essere eseguite dalle entità server (account di accesso) di Microsoft Entra.
È supportato il controllo di tutte le istruzioni relative agli eventi di autenticazione e alle entità server (account di accesso) di Microsoft Entra.
È supportata la connessione amministrativa dedicata per le entità server (account di accesso) di Microsoft Entra membri del ruolo del server sysadmin.
- È supportata tramite l'utilità SQLCMD e SQL Server Management Studio.
Sono supportati i trigger di accesso per gli eventi di accesso provenienti dalle entità server (account di accesso) di Microsoft Entra.
Usando un'entità server (account di accesso) di Microsoft Entra è possibile configurare Service Broker e la posta elettronica del database.
Connessione usando le identità di Microsoft Entra
L'autenticazione di Microsoft Entra supporta i seguenti metodi per la connessione a un database usando le identità di Microsoft Entra:
- Password di Microsoft Entra
- Integrato in Microsoft Entra
- Microsoft Entra Universal con autenticazione a più fattori
- Con l'autenticazione del token dell'applicazione
Per le entità server (account di accesso) di Microsoft Entra sono supportati i metodi di autenticazione seguenti:
- Password di Microsoft Entra
- Integrato in Microsoft Entra
- Microsoft Entra Universal con autenticazione a più fattori
Considerazioni aggiuntive
- Per migliorare la gestibilità, è consigliabile effettuare il provisioning di un gruppo di Microsoft Entra dedicato come amministratore.
- È possibile configurare un solo amministratore di Microsoft Entra (utente o gruppo) alla volta per un server in database SQL o Azure Synapse.
- L'aggiunta di entità server (account di accesso) di Microsoft Entra per Istanza gestita di SQL offre la possibilità di creare più entità server (account di accesso) di Microsoft Entra che possono essere aggiunte al ruolo
sysadmin
.
- L'aggiunta di entità server (account di accesso) di Microsoft Entra per Istanza gestita di SQL offre la possibilità di creare più entità server (account di accesso) di Microsoft Entra che possono essere aggiunte al ruolo
- Inizialmente, solo un amministratore di Microsoft Entra per il server può connettersi al server o all'istanza gestita usando un account Microsoft Entra. L'amministratore di Microsoft Entra può configurare gli utenti del database Microsoft Entra successivi.
- Gli utenti e le entità servizio di Microsoft Entra (applicazioni di Microsoft Entra) che fanno parte di più di 2048 gruppi di sicurezza di Microsoft Entra non sono supportati per l'accesso al database in database SQL, Istanza gestita di SQL o Azure Synapse.
- È consigliabile impostare il timeout di connessione su 30 secondi.
- SQL Server 2016 Management Studio e SQL Server Data Tools per Visual Studio 2015, versione 14.0.60311.1 di aprile 2016 o successiva, supportano l'autenticazione di Microsoft Entra. L'autenticazione di Microsoft Entra è supportata dal provider di dati .NET Framework per server SQL a partire da .NET Framework versione 4.6. Di conseguenza, le versioni più recenti di questi strumenti e applicazioni del livello dati (DAC e BACPAC) possono usare l'autenticazione di Microsoft Entra.
- A partire dalla versione 15.0.1, l'utilità sqlcmd e l'utilità bcp supportano l'autenticazione interattiva di Active Directory con autenticazione a più fattori.
- SQL Server Data Tools per Visual Studio 2015 richiede almeno la versione 14.0.60311.1 di aprile 2016. Gli utenti di Microsoft Entra non sono attualmente visualizzati in Esplora oggetti di SSDT. Come soluzione alternativa è possibile visualizzare gli utenti in sys.database_principals.
- Microsoft JDBC Driver 6.0 per SQL Server supporta l'autenticazione di Microsoft Entra. Vedere anche l'argomento su come impostare le proprietà della connessione.
- PolyBase non può eseguire l'autenticazione di Microsoft Entra.
- L'autenticazione di Microsoft Entra è supportata per il database SQL di Azure e per Azure Synapse tramite i pannelli Importa database ed Esporta database del portale di Azure. L'importazione e l'esportazione tramite l'autenticazione di Microsoft Entra è supportata anche da un comando PowerShell.
- L'autenticazione di Microsoft Entra è supportata per il database SQL, Istanza gestita di SQL e Azure Synapse usando l'interfaccia della riga di comando. Per altre informazioni, vedere Configurare e gestire l'autenticazione di Microsoft Entra con il database SQL oppure con Azure Synapse e SQL Server - az sql server.
Passaggi successivi
- Per informazioni su come creare e popolare un tenant di Microsoft Entra e quindi configurarlo con database SQL di Azure, Istanza gestita di SQL di Azure o Azure Synapse, vedere Configurare e gestire l'autenticazione di Microsoft Entra con il database SQL, Istanza gestita di SQL o Azure Synapse.
- Per un'esercitazione sull'uso delle entità server (account di accesso) di Microsoft Entra con Istanza gestita di SQL, vedere Entità server (account di accesso) di Microsoft Entra con Istanza gestita di SQL
- Per una panoramica degli account di accesso, degli utenti, dei ruoli del database e delle autorizzazioni nel database SQL, vedere l'articolo relativo ad account di accesso, utenti, ruoli del database e autorizzazioni.
- Per altre informazioni sulle entità di database, vedere Entità.
- Per altre informazioni sui ruoli del database, vedere Ruoli a livello di database.
- Per la sintassi sulla creazione di entità server (account di accesso) di Microsoft Entra per Istanza gestita di SQL, vedere CREATE LOGIN.
- Per informazioni generali sulle regole del firewall, vedere l'articolo relativo alle regole del firewall per il database SQL.