Usare l'autenticazione di Azure Active Directory

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

L'autenticazione di Azure Active Directory (Azure AD) è un meccanismo per la connessione a database Azure SQL, Istanza gestita di SQL di Azure e Synapse SQL inAzure Synapse Analytics usando identità in Azure AD.

Nota

Questo articolo si applica a database Azure SQL, Istanza gestita di SQL e Azure Synapse Analytics.

Con l'autenticazione di Azure AD è 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.

  • Consente di arrestare la proliferazione delle identità utente tra i server.

  • Consente la rotazione delle password in un'unica posizione.

  • I clienti possono gestire le autorizzazioni del database usando gruppi (Azure AD) esterni.

  • Può eliminare l'archiviazione delle password abilitando l'autenticazione integrata di Windows e altre forme di autenticazione supportate da Azure Active Directory.

  • L'autenticazione di Azure SD usa gli utenti di un database indipendente per autenticare le identità a livello di database.

  • Azure AD supporta l'autenticazione basata su token per le applicazioni che si connettono a database SQL e Istanza gestita di SQL.

  • L'autenticazione di Azure AD supporta:

  • Azure AD supporta le connessioni da SQL Server Management Studio che usano l'autenticazione universale di Active Directory, che include Multi-Factor Authentication. Multi-Factor Authentication include l'autenticazione avanzata con un'ampia gamma di opzioni di verifica semplici: chiamata telefonica, messaggio di testo, smart card con pin o notifica dell'app per dispositivi mobili. Per altre informazioni, vedere Supporto di SSMS per Azure AD Multi-Factor Authentication con database Azure SQL, Istanza gestita di SQL e Azure Synapse

  • Azure AD supporta connessioni analoghe da SQL Server Data Tools (SSDT) che usano l'autenticazione interattiva di Active Directory. Per altre informazioni, vedere Supporto di Azure Active Directory in SQL Server Data Tools (SSDT)

Nota

La connessione a un'istanza di SQL Server in esecuzione in una macchina virtuale di Azure non è supportata usando Azure Active Directory o Azure Active Directory Domain Services. Usare invece un account di dominio Active Directory.

I passaggi di configurazione includono le procedure seguenti per configurare e usare l'autenticazione di Azure Active Directory.

  1. Creare e popolare un'istanza di Azure AD.
  2. Facoltativo: associare o modificare l'istanza di Active Directory attualmente associata alla sottoscrizione di Azure.
  3. Creare un amministratore di Azure Active Directory.
  4. Configurare i computer client.
  5. Creare gli utenti di database indipendente nel database di cui è stato eseguito il mapping alle identità di Azure AD.
  6. Connettersi al database usando le identità di Azure AD.

Nota

Per informazioni su come creare e popolare Azure AD e quindi configurare Azure AD con database Azure SQL, Istanza gestita di SQL e Synapse SQL in Azure Synapse Analytics, vedere Configurare Azure AD con Azure SQL Database.

Architettura di attendibilità

  • Solo la parte cloud di Azure AD, database SQL, Istanza gestita di SQL e Azure Synapse viene considerata per supportare le password utente native di Azure AD.
  • Per supportare le credenziali di Accesso Single Sign-On di Windows (o user/password per le credenziali di Windows), usare le credenziali di Azure Active Directory da un dominio federato o gestito configurato per l'accesso Single Sign-On semplice per l'autenticazione hash pass-through e password. Per altre informazioni, vedere Accesso Single Sign-On facile di Azure Active Directory.
  • 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 Azure AD, la configurazione e la sincronizzazione, vedere gli articoli seguenti:

Per un'autenticazione federata di esempio con l'infrastruttura ADFS (o utente/password per le credenziali di Windows), vedere il diagramma seguente. Le frecce indicano i percorsi di comunicazione.

diagramma di autenticazione di aad

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 cliente 1 può rappresentare un'istanza di Azure Active Directory con utenti nativi o con utenti federati. Il cliente 1 può rappresentare una Azure Active Directory con utenti nativi o una Azure AD con utenti federati. Il cliente 2 rappresenta una possibile soluzione, inclusi gli utenti importati, in questo esempio proveniente da un'istanza federata di Azure Active Directory con ADFS sincronizzata con Azure Active Directory. È importante comprendere che l'accesso a un database con l'autenticazione di Azure AD richiede che la sottoscrizione di hosting sia associata ad Azure AD. La stessa sottoscrizione deve essere usata per creare le risorse Azure SQL Database, Istanza gestita di SQL o Azure Synapse.

relazione di sottoscrizione

Struttura dell'account amministratore

Quando si usa l'autenticazione di Azure AD, sono disponibili due account amministratore: l'amministratore del database di Azure SQL originale e l'amministratore di Azure AD. Gli stessi concetti si applicano alle Azure Synapse. Solo l'amministratore basato su un account Azure AD può creare il primo utente di database indipendente di Azure AD in un database utente. L'account di accesso dell'amministratore di Azure AD può essere un utente o un gruppo di Azure AD. Quando l'amministratore è un account di gruppo, può essere usato da qualsiasi membro del gruppo, abilitando più amministratori di Azure AD per il server. L'uso dell'account di gruppo come amministratore migliora la gestibilità consentendo di aggiungere e rimuovere in modo centralizzato i membri del gruppo in Azure AD senza modificare gli utenti o le autorizzazioni in database SQL o Azure Synapse. È possibile configurare un solo amministratore di Azure AD (utente o gruppo) alla volta.

struttura di amministrazione

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 in database Azure SQL, Istanza gestita di SQL o Azure Synapse, è necessario connettersi al database o all'istanza usando un'identità di Azure AD. Per creare il primo utente di database indipendente, è necessario connettersi al database tramite un amministratore di Azure AD (che corrisponde al proprietario del database). Viene illustrato in Configurare e gestire l'autenticazione di Azure Active Directory con database SQL o Azure Synapse. L'autenticazione di Azure AD è possibile solo se l'amministratore di Azure AD è stato creato per database Azure SQL, Istanza gestita di SQL o Azure Synapse. Se l'amministratore di Azure Active Directory è stato rimosso dal server, gli utenti di Azure Active Directory esistenti creati in precedenza all'interno di SQL Server non possono più connettersi al database con le credenziali di Azure Active Directory.

Funzionalità e limitazioni di Azure AD

  • È possibile effettuare il provisioning dei membri seguenti di Azure AD per Azure SQL Database:

  • Gli utenti di Azure AD che fanno parte di un gruppo con db_owner ruolo server non possono usare la sintassi CREATE DATABASE SCOPED CREDENTIAL su Azure SQL Database e Azure Synapse. Verrà visualizzato l'errore seguente:

    SQL Error [2760] [S0001]: The specified schema name 'user@mydomain.com' either does not exist or you do not have permission to use it.

    Assegnare il ruolo db_owner direttamente all'utente di Azure AD per mitigare il problema CREATE DATABASE SCOPED CREDENTIAL.

  • Queste funzioni di sistema restituiscono valori NULL quando vengono eseguite nell'ambito di entità di sicurezza di Azure AD:

    • SUSER_ID()
    • SUSER_NAME(<admin ID>)
    • SUSER_SNAME(<admin SID>)
    • SUSER_ID(<admin name>)
    • SUSER_SID(<admin name>)

Istanza gestita di SQL

  • Le entità server di Azure AD (account di accesso) e gli utenti sono supportati per Istanza gestita di SQL.
  • L'impostazione delle entità server di Azure AD (account di accesso) mappata a un gruppo di Azure AD come proprietario del database non è supportata in Istanza gestita di SQL.
    • Un'estensione di questo è che quando un gruppo viene aggiunto come parte del dbcreator ruolo server, gli utenti di questo gruppo possono connettersi alla Istanza gestita di SQL e creare nuovi database, ma non sarà in grado di accedere al database. Il nuovo proprietario del database, infatti, è SA e non l'utente di Azure AD. Questo problema non si verifica se al ruolo del server dbcreator si aggiunge il singolo utente.
  • L'esecuzione di gestione e processi di SQL Agent è supportata per le entità server di Azure AD (account di accesso).
  • Le operazioni di backup e ripristino del database possono essere eseguite dalle entità server (account di accesso) di Azure AD.
  • È supportato il controllo di tutte le istruzioni relative agli eventi di autenticazione e alle entità server (account di accesso) di Azure AD.
  • È supportata la connessione amministrativa dedicata per le entità server (account di accesso) di Azure AD 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 Azure AD.
  • Usando un'entità server (account di accesso) di Azure AD è possibile configurare Service Broker e la posta elettronica del database.

Connettersi usando le identità di Azure AD

L'autenticazione di Azure Active Directory supporta i metodi seguenti per la connessione a un database con le identità di Azure AD:

  • Password di Azure Active Directory
  • Autenticazione integrata di Azure Active Directory
  • Azure Active Directory Universale con Multi-Factor Authentication
  • Con l'autenticazione del token dell'applicazione

Per le entità server (account di accesso) di Azure AD sono supportati i metodi di autenticazione seguenti:

  • Password di Azure Active Directory
  • Autenticazione integrata di Azure Active Directory
  • Azure Active Directory Universale con Multi-Factor Authentication

Altre considerazioni

  • Per migliorare la gestibilità, è consigliabile effettuare il provisioning di un gruppo di Azure AD dedicato come amministratore.
  • È possibile configurare un solo amministratore di Azure AD (un utente o un gruppo) per un server in database SQL o Azure Synapse in qualsiasi momento.
    • L'aggiunta di entità server (account di accesso) di Azure AD per Istanza gestita di SQL consente di creare più entità server (account di accesso) di Azure AD che possono essere aggiunte al sysadmin ruolo.
  • Solo un amministratore di Azure AD per il server può inizialmente connettersi al server o all'istanza gestita usando un account Azure Active Directory. L'amministratore di Active Directory può configurare gli utenti del database di Azure AD successivi.
  • Gli utenti e le entità servizio di Azure AD (applicazioni di Azure AD) che sono membri di oltre 2048 gruppi di sicurezza di Azure AD non sono supportati per l'accesso al database nel database SQL, in Istanza gestita o in 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 Azure Active Directory. L'autenticazione di Azure AD è 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 livello dati (DAC e BACPAC) possono usare l'autenticazione di Azure AD.
  • A partire dalla versione 15.0.1, l'utilità sqlcmd e l'utilità bcp supportano l'autenticazione interattiva di Active Directory con Multi-Factor Authentication.
  • SQL Server Data Tools per Visual Studio 2015 richiede almeno la versione 14.0.60311.1 di aprile 2016. Attualmente, gli utenti di Azure AD non vengono visualizzati in SSDT Esplora oggetti. Come soluzione alternativa è possibile visualizzare gli utenti in sys.database_principals.
  • Microsoft JDBC Driver 6.0 per server SQL supporta l'autenticazione di Azure AD. Vedere anche l'argomento su come impostare le proprietà della connessione.
  • PolyBase non può eseguire l'autenticazione di Azure AD.
  • L'autenticazione di Azure AD è supportata per Azure SQL Database e Azure Synapse usando i pannelli portale di Azure Importa database ed Esporta database. L'importazione e l'esportazione tramite l'autenticazione di Azure AD sono supportate anche da un comando di PowerShell.
  • L'autenticazione di Azure AD è supportata per database SQL, Istanza gestita di SQL e Azure Synapse con l'interfaccia della riga di comando. Per altre informazioni, vedere Configurare e gestire l'autenticazione di Azure AD con database SQL o Azure Synapse e SQL Server - az sql server.

Passaggi successivi