Configurare e gestire l'autenticazione di Azure Active Directory con il database SQL, con Istanza gestita oppure con SQL Data WarehouseConfigure and manage Azure Active Directory authentication with SQL Database, Managed Instance, or SQL Data Warehouse

Questo articolo illustra come creare e popolare Azure Active Directory e quindi usare Azure Active Directory con il database SQL di Azure o con SQL Data Warehouse.This article shows you how to create and populate Azure AD, and then use Azure AD with Azure SQL Database and SQL Data Warehouse. Per una panoramica vedere Autenticazione di Azure Active Directory.For an overview, see Azure Active Directory Authentication.

Nota

La connessione a SQL Server in esecuzione in una VM di Azure non è supportata con un account Azure Active Directory.Connecting to SQL Server running on an Azure VM is not supported using an Azure Active Directory account. Usare un account Active Directory di dominio.Use a domain Active Directory account instead.

Creare e popolare un'istanza di Azure ADCreate and populate an Azure AD

Creare un'istanza di Azure AD e popolarla con utenti e gruppi.Create an Azure AD and populate it with users and groups. Azure AD può essere il dominio gestito di Azure AD iniziale.Azure AD can be the initial Azure AD managed domain. Azure AD può anche essere un set di servizi di dominio Active Directory locali federato con Azure AD.Azure AD can also be an on-premises Active Directory Domain Services that is federated with the Azure AD.

Per altre informazioni, consultare Integrazione delle identità locali con Azure Active Directory, Aggiungere un nome di dominio personalizzato ad Azure AD, Windows Azure now supports federation with Windows Server Active Directory (Nuovo supporto per la federazione con Active Directory di Windows Server in Windows Azure), Amministrazione della directory di Azure AD e Gestire Azure AD con Windows PowerShell e Porte e protocolli necessari per la soluzione ibrida di gestione delle identità.For more information, see Integrating your on-premises identities with Azure Active Directory, Add your own domain name to Azure AD, Microsoft Azure now supports federation with Windows Server Active Directory, Administering your Azure AD directory, Manage Azure AD using Windows PowerShell, and Hybrid Identity Required Ports and Protocols.

Associare o aggiungere una sottoscrizione di Azure ad Azure Active DirectoryAssociate or add an Azure subscription to Azure Active Directory

  1. Associare la sottoscrizione di Azure ad Azure Active Directory impostando la directory come directory attendibile per la sottoscrizione di Azure che ospita il database.Associate your Azure subscription to Azure Active Directory by making the directory a trusted directory for the Azure subscription hosting the database. Per altri dettagli, vedere Associare le sottoscrizioni di Azure ad Azure AD.For details, see How Azure subscriptions are associated with Azure AD.
  2. Usare il controllo per cambiare directory nel portale di Azure per passare alla sottoscrizione associata al dominio.Use the directory switcher in the Azure portal to switch to the subscription associated with domain.

    Altre informazioni: ogni sottoscrizione di Azure ha una relazione di trust con un'istanza di Azure AD.Additional information: Every Azure subscription has a trust relationship with an Azure AD instance. Ciò significa che considera attendibile quella directory per l'autenticazione di utenti, servizi e dispositivi.This means that it trusts that directory to authenticate users, services, and devices. Più sottoscrizioni possono considerare attendibile la stessa directory, ma una sottoscrizione considera attendibile una sola directory.Multiple subscriptions can trust the same directory, but a subscription trusts only one directory. Questa relazione di trust tra la sottoscrizione e la directory è diversa dalla relazione tra la sottoscrizione e tutte le altre risorse in Azure, ad esempio siti Web, database e così via, le quali sono da considerarsi più come risorse figlio di una sottoscrizione.This trust relationship that a subscription has with a directory is unlike the relationship that a subscription has with all other resources in Azure (websites, databases, and so on), which are more like child resources of a subscription. Se la sottoscrizione scade, non sarà più possibile accedere a tutte queste altre risorse associate alla sottoscrizioneIf a subscription expires, then access to those other resources associated with the subscription also stops. anche se la directory rimane in Azure, quindi sarà possibile associarvi un'altra sottoscrizione e continuare a gestire gli utenti della directory.But the directory remains in Azure, and you can associate another subscription with that directory and continue to manage the directory users. Per altre informazioni sulle risorse, vedere Informazioni sull'accesso alle risorse di Azure.For more information about resources, see Understanding resource access in Azure. Per altre informazioni su questa relazione attendibile, vedere Associare o aggiungere una sottoscrizione di Azure ad Azure Active Directory.To learn more about this trusted relationship see How to associate or add an Azure subscription to Azure Active Directory.

Creare un amministratore di Azure Active Directory per il server SQL di AzureCreate an Azure AD administrator for Azure SQL server

Ogni server di Azure SQL, che ospita un database SQL o SQL Data Warehouse, viene avviato con un singolo account amministratore del server, che è l'amministratore dell'intera istanza del server di Azure SQL.Each Azure SQL server (which hosts a SQL Database or SQL Data Warehouse) starts with a single server administrator account that is the administrator of the entire Azure SQL server. È necessario creare un secondo amministratore del server SQL, cioè un account Azure AD.A second SQL Server administrator must be created, that is an Azure AD account. Questa entità viene creata come un utente di database indipendente nel database master.This principal is created as a contained database user in the master database. Per quando riguarda gli amministratori, gli account amministratore del server sono membri del ruolo db_owner in ogni database utente e ogni database utente viene immesso come utente dbo.As administrators, the server administrator accounts are members of the db_owner role in every user database, and enter each user database as the dbo user. Per altre informazioni sugli account amministratore del server, vedere l'articolo relativo alla gestione di database e account di accesso nel database SQL di Azure.For more information about the server administrator accounts, see Managing Databases and Logins in Azure SQL Database.

Quando si usa Azure Active Directory con la replica geografica, l'amministratore di Azure Active Directory deve essere configurato sia per i server primari che per quelli secondari.When using Azure Active Directory with geo-replication, the Azure Active Directory administrator must be configured for both the primary and the secondary servers. Se un server non ha un amministratore di Azure Active Directory, gli utenti e gli account di accesso di Azure Active Directory ricevono un messaggio di errore "Impossibile connettersi al server".If a server does not have an Azure Active Directory administrator, then Azure Active Directory logins and users receive a "Cannot connect" to server error.

Nota

Gli utenti che non hanno un account Azure Active Directory, incluso l'account amministratore di Azure SQL Server, non possono creare utenti di Azure Active Directory, perché non hanno l'autorizzazione per convalidare con Azure Active Directory gli utenti di database proposti.Users that are not based on an Azure AD account (including the Azure SQL server administrator account), cannot create Azure AD-based users, because they do not have permission to validate proposed database users with the Azure AD.

Effettuare il provisioning di un amministratore di Azure Active Directory per l'istanza gestitaProvision an Azure Active Directory administrator for your Managed Instance

Importante

Seguire questi passaggi solo se si effettua il provisioning di un'istanza gestita.Only follow these steps if you are provisioning a Managed Instance. Questa operazione può essere eseguita solo dall'amministratore globale/aziendale in Azure AD.This operation can only be executed by Global/Company administrator in Azure AD. Di seguito viene descritta la procedura da seguire per concedere le autorizzazioni agli utenti con privilegi diversi nella directory.Following steps describe the process of granting permissions for users with different privileges in directory.

Per poter completare attività quali l'autenticazione degli utenti tramite l'appartenenza al gruppo di sicurezza o la creazione di nuovi utenti, l'istanza gestita deve disporre di autorizzazioni per la lettura di Azure AD.Your Managed Instance needs permissions to read Azure AD to successfully accomplish tasks such as authentication of users through security group membership or creation of new users. È quindi necessario concedere tali autorizzazioni all'istanza gestita.For this to work, you need to grant permissions to Managed Instance to read Azure AD. Per eseguire questa operazione sono disponibili due metodi. È possibile usare il portale e PowerShell.There are two ways to do it: from Portal and PowerShell. I passaggi seguenti illustrano entrambi i metodi.The following steps both methods.

  1. Nell'angolo in alto a destra del portale di Azure scegliere la connessione per visualizzare un elenco a discesa delle possibili directory di Active Directory.In the Azure portal, in the upper-right corner, select your connection to drop down a list of possible Active Directories.
  2. Scegliere la directory corretta come directory predefinita di Azure AD.Choose the correct Active Directory as the default Azure AD.

    Questo passaggio collega la sottoscrizione associata ad Active Directory con Istanza gestita, verificando che venga usata la stessa sottoscrizione per Azure AD e per l'istanza gestita.This step links the subscription associated with Active Directory with Managed Instance making sure that the same subscription is used for both Azure AD and the Managed Instance.

  3. Passare a Istanza gestita e selezionare l'istanza da usare per l'integrazione con Azure AD.Navigate to Managed Instance and select one that you want to use for Azure AD integration.

    aad

  4. Selezionare il banner nella parte superiore della pagina Amministratore di Active Directory.Select on banner on top of Active Directory admin page. Se si è connessi come amministratore globale/aziendale in Azure AD, è possibile eseguire questa operazione dal portale di Azure o tramite PowerShell.If you are logged in as Global/Company administrator in Azure AD, you can do it from Azure portal or using PowerShell.

    concessione di autorizzazioni-portale

    concessione di autorizzazioni-powershell

    Se si è connessi come amministratore globale/aziendale in Azure AD, è possibile eseguire questa operazione dal portale di Azure o tramite uno script di PowerShell.If you are logged in as Global/Company administrator in Azure AD, you can do it from the Azure portal or execute a PowerShell script.

  5. Al termine dell'operazione, nell'angolo in alto a destra verrà visualizzata la notifica seguente:After operation is successfully completed, following notification will show up in top right corner:

    esito positivo

  6. È ora possibile scegliere l'amministratore di Azure AD per l'istanza gestita.Now you can choose your Azure AD admin for your Managed Instance. Nella pagina Amministratore di Active Directory selezionare il comando Imposta amministratore.For that, on the Active Directory admin page, select Set admin command.

    set-admin

  7. Nella pagina Aggiungi amministratore cercare un utente, selezionare l'utente o il gruppo da impostare come amministratore e quindi scegliere Seleziona.In the Add admin page, search for a user, select the user or group to be an administrator, and then select Select.

    La pagina Amministratore di Active Directory mostra tutti i membri e i gruppi di Active Directory.The Active Directory admin page shows all members and groups of your Active Directory. Gli utenti e i gruppi non disponibili (in grigio) non possono essere selezionati, perché non sono supportati come amministratori di Azure AD.Users or groups that are grayed out cannot be selected because they are not supported as Azure AD administrators. Vedere l'elenco degli amministratori supportati in Funzionalità e limitazioni di Azure AD.See the list of supported admins in Azure AD Features and Limitations. Il controllo degli accessi in base al ruolo (RBAC) si applica solo al portale di Azure e non viene propagato a SQL Server.Role-based access control (RBAC) applies only to the Azure portal and is not propagated to SQL Server.

    add-admin

  8. Nella parte superiore della pagina Amministratore di Active Directory scegliere Salva.At the top of the Active Directory admin page, select Save.

    Salva

    Il processo di modifica dell'amministratore può richiedere alcuni minuti.The process of changing the administrator may take several minutes. Al termine del processo, nella casella Amministratore di Active Directory verrà visualizzato il nome del nuovo amministratore.Then the new administrator appears in the Active Directory admin box.

Importante

Quando si configura l'amministratore di Azure AD il nuovo nome dell'amministratore, utente o gruppo, non può essere già presente nel database master virtuale come un utente dell'autenticazione del server SQL.When setting up the Azure AD admin, the new admin name (user or group) cannot already be present in the virtual master database as a SQL Server authentication user. Se il nome è già presente, l'impostazione dell'amministratore di Azure AD avrà esito negativo. Verrà quindi eseguito il rollback del processo di creazione segnalando che il nome di amministratore specificato esiste già.If present, the Azure AD admin setup will fail and rolling back its creation, indicating that such an admin (name) already exists. Poiché tale utente dell'autenticazione del server SQL non è parte di Azure AD, qualsiasi tentativo di connettersi al server mediante l'autenticazione di Azure AD ha esito negativo.Since such a SQL Server authentication user is not part of the Azure AD, any effort to connect to the server using Azure AD authentication fails.

Suggerimento

Per rimuovere un amministratore in un secondo momento, nella parte superiore della pagina Amministratore di Active Directory scegliere Rimuovi amministratore e quindi Salva.To later remove an Admin, at the top of the Active Directory admin page, select Remove admin, and then select Save.

Effettuare il provisioning di un amministratore di Azure Active Directory per il server di database SQL di AzureProvision an Azure Active Directory administrator for your Azure SQL Database server

Importante

Seguire questi passaggi solo se si effettua il provisioning di un server di database SQL di Azure o di un data warehouse.Only follow these steps if you are provisioning an Azure SQL Database server or Data Warehouse.

Le due procedure seguenti illustrano come eseguire il provisioning di un amministratore di Azure Active Directory per il server SQL Azure usando il portale di Azure e PowerShell.The following two procedures show you how to provision an Azure Active Directory administrator for your Azure SQL server in the Azure portal and by using PowerShell.

Portale di AzureAzure portal

  1. Nell'angolo in alto a destra del portale di Azure scegliere la connessione per visualizzare un elenco a discesa delle possibili directory di Active Directory.In the Azure portal, in the upper-right corner, select your connection to drop down a list of possible Active Directories. Scegliere la directory corretta come directory predefinita di Azure AD.Choose the correct Active Directory as the default Azure AD. Questo passaggio collega la directory di Active Directory associata alla sottoscrizione con il server SQL di Azure, assicurando che la stessa sottoscrizione venga usata per Azure AD e per SQL Server.This step links the subscription-associated Active Directory with Azure SQL server making sure that the same subscription is used for both Azure AD and SQL Server. Il server SQL di Azure può ospitare il database SQL di Azure o Azure SQL Data Warehouse.(The Azure SQL server can be hosting either Azure SQL Database or Azure SQL Data Warehouse.)
    choose-adchoose-ad

  2. Nel banner a sinistra selezionare All services (Tutti i servizi) e il tipo di filtro in SQL server.In the left banner select All services, and in the filter type in SQL server. Selezionare SQL server.Select Sql Servers.

    sqlservers.png

    Nota

    In questa pagina, prima di selezionare SQL Server è possibile selezionare la stella accanto al nome per aggiungere ai preferiti la categoria e aggiungere SQL Serveralla barra di navigazione sinistra.On this page, before you select SQL servers, you can select the star next to the name to favorite the category and add SQL servers to the left navigation bar.

  3. Nella pagina SQL Server, selezionare Amministratore di Active Directory.On SQL Server page, select Active Directory admin.

  4. Nella pagina Amministratore di Active Directory selezionare Imposta amministratore.In the Active Directory admin page, select Set admin.
    Selezionare Active Directoryselect active directory

  5. Nella pagina Aggiungi amministratore cercare un utente, selezionare l'utente o il gruppo da impostare come amministratore e quindi scegliere Seleziona.In the Add admin page, search for a user, select the user or group to be an administrator, and then select Select. La pagina Amministratore di Active Directory mostra tutti i membri e i gruppi di Active Directory.(The Active Directory admin page shows all members and groups of your Active Directory. Gli utenti e i gruppi non disponibili (in grigio) non possono essere selezionati, perché non sono supportati come amministratori di Azure AD.Users or groups that are grayed out cannot be selected because they are not supported as Azure AD administrators. Per l'elenco degli amministratori supportati, vedere la sezione Funzionalità e limitazioni di Azure AD in Usare l'autenticazione di Azure Active Directory per l'autenticazione di un database SQL o di SQL Data Warehouse. Il controllo di accesso basata sui ruoli (RBAC) si applica solo al portale e non viene propagato a SQL Server.(See the list of supported admins in the Azure AD Features and Limitations section of Use Azure Active Directory Authentication for authentication with SQL Database or SQL Data Warehouse.) Role-based access control (RBAC) applies only to the portal and is not propagated to SQL Server.
    Selezionare l'amministratoreselect admin

  6. Nella parte superiore della pagina Amministratore di Active Directory scegliere SALVA.At the top of the Active Directory admin page, select SAVE.
    Salvare l'impostazione dell'amministratoresave admin

Il processo di modifica dell'amministratore può richiedere alcuni minuti.The process of changing the administrator may take several minutes. Il nuovo amministratore è quindi visualizzato nella casella Amministratore di Active Directory .Then the new administrator appears in the Active Directory admin box.

Nota

Quando si configura l'amministratore di Azure AD il nuovo nome dell'amministratore, utente o gruppo, non può essere già presente nel database master virtuale come un utente dell'autenticazione del server SQL.When setting up the Azure AD admin, the new admin name (user or group) cannot already be present in the virtual master database as a SQL Server authentication user. Se presente, l’impostazione dell’amministratore di Microsoft Azure avrà esito negativo; eseguire il rollback della creazione e indicare che tale (nome) di amministratore già esiste.If present, the Azure AD admin setup will fail; rolling back its creation and indicating that such an admin (name) already exists. Poiché tale utente dell'autenticazione del server SQL non è parte di Azure AD, qualsiasi tentativo di connettersi al server mediante l'autenticazione di Azure AD ha esito negativo.Since such a SQL Server authentication user is not part of the Azure AD, any effort to connect to the server using Azure AD authentication fails.

Per rimuovere un amministratore in un secondo momento, nella parte superiore della pagina Amministratore di Active Directory scegliere Rimuovi amministratore e quindi Salva.To later remove an Admin, at the top of the Active Directory admin page, select Remove admin, and then select Save.

PowerShellPowerShell

Per eseguire i cmdlet di PowerShell, è necessario che Azure PowerShell sia installato e in esecuzione.To run PowerShell cmdlets, you need to have Azure PowerShell installed and running. Per informazioni dettagliate, vedere Come installare e configurare Azure PowerShell.For detailed information, see How to install and configure Azure PowerShell.

Per eseguire il provisioning di un amministratore di Azure AD, eseguire i comandi di Azure PowerShell seguenti:To provision an Azure AD admin, execute the following Azure PowerShell commands:

  • Connect-AzureRmAccountConnect-AzureRmAccount
  • Select-AzureRmSubscriptionSelect-AzureRmSubscription

Cmdlet usati per il provisioning e la gestione dell'amministratore di Azure AD:Cmdlets used to provision and manage Azure AD admin:

Nome del cmdletCmdlet name DESCRIZIONEDescription
Set-AzureRmSqlServerActiveDirectoryAdministratorSet-AzureRmSqlServerActiveDirectoryAdministrator Esegue il provisioning di un amministratore di Azure Active Directory per il server di Azure SQL o per Azure SQL Data Warehouse.Provisions an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse. Deve far parte della sottoscrizione corrente.(Must be from the current subscription.)
Remove-AzureRmSqlServerActiveDirectoryAdministratorRemove-AzureRmSqlServerActiveDirectoryAdministrator Rimuove un amministratore di Azure Active Directory per il server di Azure SQL o per Azure SQL Data Warehouse.Removes an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse.
Get-AzureRmSqlServerActiveDirectoryAdministratorGet-AzureRmSqlServerActiveDirectoryAdministrator Restituisce informazioni sull'amministratore di Azure Active Directory attualmente configurato per il server di Azure SQL o Azure SQL Data Warehouse.Returns information about an Azure Active Directory administrator currently configured for the Azure SQL server or Azure SQL Data Warehouse.

Per visualizzare altre informazioni su ognuno di questi comandi, usare il comando get-help di PowerShell, ad esempio get-help Set-AzureRmSqlServerActiveDirectoryAdministrator.Use PowerShell command get-help to see more information for each of these commands, for example get-help Set-AzureRmSqlServerActiveDirectoryAdministrator.

Lo script seguente effettua il provisioning di un gruppo di amministratori di Azure AD denominato DBA_Group (ID oggetto 40b79501-b343-44ed-9ce7-da4c8cc7353f) per il server demo_server in un gruppo di risorse denominato Group-23:The following script provisions an Azure AD administrator group named DBA_Group (object id 40b79501-b343-44ed-9ce7-da4c8cc7353f) for the demo_server server in a resource group named Group-23:

Set-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23"
-ServerName "demo_server" -DisplayName "DBA_Group"

Il parametro di input DisplayName accetta il nome visualizzato di Azure AD o il nome dell'entità utente.The DisplayName input parameter accepts either the Azure AD display name or the User Principal Name. Ad esempio, DisplayName="John Smith" e DisplayName="johns@contoso.com".For example, DisplayName="John Smith" and DisplayName="johns@contoso.com". Per i gruppi di Azure AD è supportato solo il nome visualizzato di Azure AD.For Azure AD groups only the Azure AD display name is supported.

Nota

Il comando di Azure PowerShell Set-AzureRmSqlServerActiveDirectoryAdministrator non impedisce di eseguire il provisioning degli amministratori di Azure AD per gli utenti non supportati.The Azure PowerShell command Set-AzureRmSqlServerActiveDirectoryAdministrator does not prevent you from provisioning Azure AD admins for unsupported users. È possibile eseguire il provisioning di un utente non supportato il quale non può tuttavia connettersi a un database.An unsupported user can be provisioned, but can not connect to a database.

L'esempio seguente usa il valore ObjectIDopzionale:The following example uses the optional ObjectID:

Set-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23"
-ServerName "demo_server" -DisplayName "DBA_Group" -ObjectId "40b79501-b343-44ed-9ce7-da4c8cc7353f"

Nota

Il valore ObjectID di Azure AD è obbligatorio quando DisplayName non è univoco.The Azure AD ObjectID is required when the DisplayName is not unique. Per recuperare i valori ObjectID e DisplayName, usare la sezione Active Directory del portale di Azure classico e visualizzare le proprietà di un utente o di un gruppo.To retrieve the ObjectID and DisplayName values, use the Active Directory section of Azure Classic Portal, and view the properties of a user or group.

L'esempio seguente restituisce informazioni sull'amministratore di Azure AD corrente per Azure SQL Server:The following example returns information about the current Azure AD admin for Azure SQL server:

Get-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server" | Format-List

L'esempio seguente illustra come rimuovere un amministratore di Azure AD:The following example removes an Azure AD administrator:

Remove-AzureRmSqlServerActiveDirectoryAdministrator -ResourceGroupName "Group-23" -ServerName "demo_server"

È anche possibile effettuare il provisioning di un amministratore di Azure Active Directory usando le API REST.You can also provision an Azure Active Directory Administrator by using the REST APIs. Per altre informazioni informazioni di riferimento sull'API REST di gestione dei servizi e le operazioni per i database SQL di AzureFor more information, see Service Management REST API Reference and Operations for Azure SQL Databases Operations for Azure SQL Databases

CLICLI

È anche possibile eseguire il provisioning di un admin Azure AD chiamando i comandi dell'interfaccia della riga di comando seguenti:You can also provision an Azure AD admin by calling the following CLI commands:

ComandoCommand DESCRIZIONEDescription
az sql server ad-admin createaz sql server ad-admin create Esegue il provisioning di un amministratore di Azure Active Directory per il server di Azure SQL o per Azure SQL Data Warehouse.Provisions an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse. Deve far parte della sottoscrizione corrente.(Must be from the current subscription.)
az sql server ad-admin deleteaz sql server ad-admin delete Rimuove un amministratore di Azure Active Directory per il server di Azure SQL o per Azure SQL Data Warehouse.Removes an Azure Active Directory administrator for Azure SQL server or Azure SQL Data Warehouse.
az sql server ad-admin listaz sql server ad-admin list Restituisce informazioni sull'amministratore di Azure Active Directory attualmente configurato per il server di Azure SQL o Azure SQL Data Warehouse.Returns information about an Azure Active Directory administrator currently configured for the Azure SQL server or Azure SQL Data Warehouse.
az sql server ad-admin updateaz sql server ad-admin update Aggiornare l'amministratore di Azure Active Directory per un server di Azure SQL o per Azure SQL Data Warehouse.Updates the Active Directory administrator for an Azure SQL server or Azure SQL Data Warehouse.

Per altre informazioni sui comandi dell'interfaccia della riga di comando, vedere SQL - az sql.For more information about CLI commands, see SQL - az sql.

Configurare i computer clientConfigure your client computers

È necessario installare il software seguente in tutti i computer client da cui le applicazioni o gli utenti si connettono al database SQL di Azure o ad Azure SQL Data Warehouse con le identità di Azure AD:On all client machines, from which your applications or users connect to Azure SQL Database or Azure SQL Data Warehouse using Azure AD identities, you must install the following software:

È possibile soddisfare questi requisiti tramite:You can meet these requirements by:

Creare gli utenti di database indipendente nel database di cui è stato eseguito il mapping alle identità di Azure ADCreate contained database users in your database mapped to Azure AD identities

L'autenticazione di Azure Active Directory richiede la creazione di utenti del database come utenti di database indipendente.Azure Active Directory authentication requires database users to be created as contained database users. Un utente di database indipendente basato su un'identità di Azure AD è un utente di database che non può accedere al database master e del quale viene eseguito il mapping a un'identità nella directory di Azure AD associata al database.A contained database user based on an Azure AD identity, is a database user that does not have a login in the master database, and which maps to an identity in the Azure AD directory that is associated with the database. L'identità di Azure AD può essere un singolo account utente o un gruppo.The Azure AD identity can be either an individual user account or a group. Per altre informazioni sugli utenti di database indipendente, vedere Utenti di database indipendente: rendere portabile un database.For more information about contained database users, see Contained Database Users- Making Your Database Portable.

Nota

Gli utenti del database, tranne gli amministratori, non possono essere creati tramite il portale di Azure.Database users (with the exception of administrators) cannot be created using the Azure portal. I ruoli RBAC non vengono propagati a SQL Server, al database SQL o a SQL Data Warehouse.RBAC roles are not propagated to SQL Server, SQL Database, or SQL Data Warehouse. I ruoli Controllo degli accessi in base al ruolo di Azure vengono usati per la gestione delle risorse di Azure e non si applicano alle autorizzazioni di database.Azure RBAC roles are used for managing Azure Resources, and do not apply to database permissions. Ad esempio, il ruolo Collaboratore SQL Server non consente l'accesso per connettersi al database SQL oppure a SQL Data Warehouse.For example, the SQL Server Contributor role does not grant access to connect to the SQL Database or SQL Data Warehouse. L'autorizzazione di accesso deve essere concessa direttamente nel database tramite istruzioni Transact-SQL.The access permission must be granted directly in the database using Transact-SQL statements.

Per creare un utente di database indipendente basato su Azure AD, diverso dall'amministratore del server proprietario del database, connettersi al database con un'identità di Azure AD come utente con almeno l'autorizzazione ALTER ANY USER .To create an Azure AD-based contained database user (other than the server administrator that owns the database), connect to the database with an Azure AD identity, as a user with at least the ALTER ANY USER permission. Usare quindi la sintassi Transact-SQL seguente:Then use the following Transact-SQL syntax:

CREATE USER <Azure_AD_principal_name> FROM EXTERNAL PROVIDER;

Azure_AD_principal_name può essere il nome dell'entità utente di un utente di Azure AD o il nome visualizzato di un gruppo di Azure AD.Azure_AD_principal_name can be the user principal name of an Azure AD user or the display name for an Azure AD group.

Esempi: per creare un utente di database indipendente che rappresenta un utente di dominio gestito o federato di Azure AD:Examples: To create a contained database user representing an Azure AD federated or managed domain user:

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

Per creare un utente di database indipendente che rappresenta un gruppo di dominio federato o di Azure AD, specificare il nome visualizzato di un gruppo di sicurezza:To create a contained database user representing an Azure AD or federated domain group, provide the display name of a security group:

CREATE USER [ICU Nurses] FROM EXTERNAL PROVIDER;

Per creare un utente di database indipendente che rappresenta un'applicazione che si connette usando un token di Azure AD:To create a contained database user representing an application that connects using an Azure AD token:

CREATE USER [appName] FROM EXTERNAL PROVIDER;

Suggerimento

È possibile creare un utente direttamente da Azure Active Directory solo se si usa l'Azure Active Directory associata alla sottoscrizione di Azure.You cannot directly create a user from an Azure Active Directory other than the Azure Active Directory that is associated with your Azure subscription. Tuttavia, i membri di altre directory di Active Directory che sono utenti importati nell'Active Directory associata (chiamati utenti esterni) possono essere aggiunti a un gruppo Active Directory nell'Active Directory tenant.However, members of other Active Directories that are imported users in the associated Active Directory (known as external users) can be added to an Active Directory group in the tenant Active Directory. Tramite la creazione di un utente del database indipendente per il gruppo AD, gli utenti dell'Active Directory esterna possono ottenere l'accesso al database SQL.By creating a contained database user for that AD group, the users from the external Active Directory can gain access to SQL Database.

Per altre informazioni sulla creazione di utenti di database indipendente basati su identità di Azure Active Directory, vedere CREATE USER (Transact-SQL).For more information about creating contained database users based on Azure Active Directory identities, see CREATE USER (Transact-SQL).

Nota

La rimozione dell'amministratore di Azure Active Directory per il server di Azure SQL impedisce agli utenti dell'autenticazione di Azure AD di connettersi al server.Removing the Azure Active Directory administrator for Azure SQL server prevents any Azure AD authentication user from connecting to the server. Se necessario, un amministratore del database SQL può eliminare manualmente gli utenti di Azure AD inutilizzabili.If necessary, unusable Azure AD users can be dropped manually by a SQL Database administrator.

Nota

Se si riceve un messaggio di timeout della connessione scaduto, potrebbe essere necessario impostare il parametro TransparentNetworkIPResolution della stringa di connessione su false.If you receive a Connection Timeout Expired, you may need to set the TransparentNetworkIPResolution parameter of the connection string to 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).For more information, see Connection timeout issue with .NET Framework 4.6.1 - TransparentNetworkIPResolution.

Quando si crea un database utente, questo riceve l'autorizzazione CONNECT e può connettersi al database come membro del ruolo PUBLIC.When you create a database user, that user receives the CONNECT permission and can connect to that database as a member of the PUBLIC role. Inizialmente le sole autorizzazioni disponibili per l'utente sono quelle concesse al ruolo PUBLIC o quelle concesse a qualsiasi gruppo di Azure AD di cui è membro.Initially the only permissions available to the user are any permissions granted to the PUBLIC role, or any permissions granted to any Azure AD groups that they are a member of. Dopo avere effettuato il provisioning di un utente di database indipendente basato su Azure AD, è possibile concedere all'utente altre autorizzazioni, esattamente come si concede un'autorizzazione a qualsiasi altro tipo di utente.Once you provision an Azure AD-based contained database user, you can grant the user additional permissions, the same way as you grant permission to any other type of user. In genere si concedono autorizzazioni ai ruoli del database e si aggiungono gli utenti ai ruoli.Typically grant permissions to database roles, and add users to roles. Per altre informazioni, vedere l'articolo relativo alle nozioni di base delle autorizzazioni per il motore di database.For more information, see Database Engine Permission Basics. Per altre informazioni sui ruoli speciali del database SQL, vedere Gestione di database e account di accesso nel database SQL di Azure.For more information about special SQL Database roles, see Managing Databases and Logins in Azure SQL Database. Un account utente di dominio federato importato in un dominio gestito come utente esterno deve usare l'identità del dominio gestito.A federated domain user account that is imported into a managed domain as an external user, must use the managed domain identity.

Nota

Gli utenti di Azure AD sono contrassegnati nei metadati del database con il tipo E (EXTERNAL_USER). I gruppi sono contrassegnati con il tipo X (EXTERNAL_GROUPS).Azure AD users are marked in the database metadata with type E (EXTERNAL_USER) and for groups with type X (EXTERNAL_GROUPS). Per altre informazioni, vedere sys.database_principals.For more information, see sys.database_principals.

Connettersi al data warehouse o al database utente con SSMS o SSDTConnect to the user database or data warehouse by using SSMS or SSDT

Per verificare che l'amministratore di Azure AD sia configurato correttamente, connettersi al database master con l'account amministratore di Azure AD.To confirm the Azure AD administrator is properly set up, connect to the master database using the Azure AD administrator account. Per effettuare il provisioning di un utente di database indipendente basato su Azure AD, diverso dall'amministratore del server proprietario del database, connettersi al database con un'identità di Azure AD che abbia accesso al database.To provision an Azure AD-based contained database user (other than the server administrator that owns the database), connect to the database with an Azure AD identity that has access to the database.

Importante

Il supporto per l'autenticazione di Azure Active Directory è disponibile con SQL Server 2016 Management Studio e SQL Server Data Tools in Visual Studio 2015.Support for Azure Active Directory authentication is available with SQL Server 2016 Management Studio and SQL Server Data Tools in Visual Studio 2015. La versione di agosto 2016 di SQL Server Management Studio include anche il supporto per l'autenticazione universale di Active Directory, che consente agli amministratori di richiedere la Multi-Factor Authentication mediante chiamata telefonica, SMS, smart card con pin, o notifica dell'app per dispositivi mobili.The August 2016 release of SSMS also includes support for Active Directory Universal Authentication, which allows administrators to require Multi-Factor Authentication using a phone call, text message, smart cards with pin, or mobile app notification.

Uso di un'identità di Azure AD per la connessione con SSMS o SSDTUsing an Azure AD identity to connect using SSMS or SSDT

Le procedure seguenti mostrano come connettersi a un database SQL con un'identità di Azure Active Directory usando SQL Server Management Studio o SQL Server Database Tools.The following procedures show you how to connect to a SQL database with an Azure AD identity using SQL Server Management Studio or SQL Server Database Tools.

Autenticazione integrata di Active DirectoryActive Directory integrated authentication

Usare questo metodo se si è connessi a Windows con le credenziali di Azure Active Directory da un dominio federato.Use this method if you are logged in to Windows using your Azure Active Directory credentials from a federated domain.

  1. Avviare Management Studio o Data Tools e nella finestra di dialogo Connetti al server (o Connetti al motore di database) e selezionare Active Directory - Integrata nella casella Autenticazione.Start Management Studio or Data Tools and in the Connect to Server (or Connect to Database Engine) dialog box, in the Authentication box, select Active Directory - Integrated. La password non è necessaria e non può essere immessa, perché per la connessione vengono presentate le credenziali esistenti.No password is needed or can be entered because your existing credentials will be presented for the connection.

    Selezionare Autenticazione integrata di Active Directory

  2. Scegliere il pulsante Opzioni, quindi nella pagina Proprietà connessione digitare il nome del database utente a cui si desidera connettersi nella casella Connect to database (Connetti al database).Select the Options button, and on the Connection Properties page, in the Connect to database box, type the name of the user database you want to connect to. L'opzione ID tenant o nome di dominio AD è supportata solo per le opzioni di connessione Universale con supporto MFA. Negli altri casi non è disponibile.(The AD domain name or tenant ID” option is only supported for Universal with MFA connection options, otherwise it is greyed out.)

    Selezionare il nome del database

Autenticazione della password di Active DirectoryActive Directory password authentication

Usare questo metodo per connettersi con il nome dell'entità di Azure AD tramite il dominio gestito di Azure AD.Use this method when connecting with an Azure AD principal name using the Azure AD managed domain. Si può anche usarlo per account federati senza accesso al dominio, ad esempio quando si lavora in modalità remota.You can also use it for federated accounts without access to the domain, for example when working remotely.

Usare questo metodo per eseguire l'autenticazione al database/data warehouse SQL con Azure AD per utenti di Azure AD nativi o federati.Use this method to authenticate to SQL DB/DW with Azure AD for native of federated Azure AD users. Un utente nativo è un utente creato in modo esplicito in Azure AD e autenticato tramite nome utente e password, mentre un utente federato è un utente Windows il cui dominio è federato con Azure AD.A native user is one explicitly created in Azure AD and being authenticated using user name and password, while a federated user is a Windows user whose domain is federated with Azure AD. Quest'ultimo metodo (tramite utente e password) può essere usato quando un utente vuole usare le credenziali di Windows, ma il computer locale non è aggiunto al dominio (ad esempio tramite accesso remoto).The latter method (using user & password) can be used when a user wants to use his windows credential, but his local machine is not joined with the domain ( i.e. using a remote access). In questo caso un utente Windows può specificare il proprio account di dominio e la password ed eseguire l'autenticazione al database/data warehouse SQL tramite credenziali federate.In this case a Windows user can indicate his domain account and password and can authenticate to SQL DB/DW using federated credentials.

  1. Avviare Management Studio o Data Tools e nella finestra di dialogo Connetti al server (o Connetti al motore di database) e selezionare Active Directory - Password nella casella Autenticazione.Start Management Studio or Data Tools and in the Connect to Server (or Connect to Database Engine) dialog box, in the Authentication box, select Active Directory - Password.
  2. Nella casella Nome utente digitare il nome utente di Azure Active Directory nel formato username@domain.com.In the User name box, type your Azure Active Directory user name in the format username@domain.com. Deve essere un account di Azure Active Directory o un account di un dominio federato con Azure Active Directory.This must be an account from the Azure Active Directory or an account from a domain federate with the Azure Active Directory.
  3. Nella casella Password digitare la password utente dell'account Azure Active Directory o dell'account di dominio federato.In the Password box, type your user password for the Azure Active Directory account or federated domain account.

    Selezionare Autenticazione della password di Active Directory

  4. Scegliere il pulsante Opzioni, quindi nella pagina Proprietà connessione digitare il nome del database utente a cui si desidera connettersi nella casella Connect to database (Connetti al database).Select the Options button, and on the Connection Properties page, in the Connect to database box, type the name of the user database you want to connect to. Vedere il grafico nell'opzione precedente.(See the graphic in the previous option.)

Utilizzo di un'identità di Azure Active Directory per connettersi da un'applicazione clientUsing an Azure AD identity to connect from a client application

Le procedure seguenti mostrano come connettersi a un database SQL con un'identità di Azure Active Directory da un'applicazione client.The following procedures show you how to connect to a SQL database with an Azure AD identity from a client application.

Autenticazione integrata di Active DirectoryActive Directory integrated authentication

Per usare l'autenticazione integrata di Windows, l'Active Directory del dominio deve essere federato con Azure Active Directory.To use integrated Windows authentication, your domain’s Active Directory must be federated with Azure Active Directory. L'applicazione client (o un servizio) che si connette al database deve essere in esecuzione in un computer aggiunto al dominio con le credenziali di dominio dell'utente.Your client application (or a service) connecting to the database must be running on a domain-joined machine under a user’s domain credentials.

Per connettersi a un database usando l'autenticazione integrata e un'identità di Azure AD, la parola chiave Authentication nella stringa di connessione al database deve essere impostata su Active Directory Integrated.To connect to a database using integrated authentication and an Azure AD identity, the Authentication keyword in the database connection string must be set to Active Directory Integrated. L'esempio di codice C# seguente usa ADO .NET.The following C# code sample uses ADO .NET.

string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

La parola chiave Integrated Security=True della stringa di connessione non è supportata per la connessione al database SQL di Azure.The connection string keyword Integrated Security=True is not supported for connecting to Azure SQL Database. Quando si esegue una connessione ODBC, è necessario rimuovere gli spazi e impostare l'autenticazione su 'ActiveDirectoryIntegrated'.When making an ODBC connection, you will need to remove spaces and set Authentication to 'ActiveDirectoryIntegrated'.

Autenticazione della password di Active DirectoryActive Directory password authentication

Per connettersi a un database usando l'autenticazione integrata e un'identità di Azure AD, la parola chiave Authentication deve essere impostata su Active Directory Password.To connect to a database using integrated authentication and an Azure AD identity, the Authentication keyword must be set to Active Directory Password. La stringa di connessione deve contenere le parole chiave e i valori User ID/UID e Password/PWD.The connection string must contain User ID/UID and Password/PWD keywords and values. L'esempio di codice C# seguente usa ADO .NET.The following C# code sample uses ADO .NET.

string ConnectionString =
@"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Password; Initial Catalog=testdb;  UID=bob@contoso.onmicrosoft.com; PWD=MyPassWord!";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();

Per altre informazioni sui metodi di autenticazione di Azure AD, usare gli esempi di codice dimostrativo disponibili in Azure AD Authentication GitHub Demo(Dimostrazione GitHub dell'autenticazione di Azure AD).Learn more about Azure AD authentication methods using the demo code samples available at Azure AD Authentication GitHub Demo.

Token Azure ADAzure AD token

Questo tipo di autenticazione consente ai servizi di livello intermedio di connettersi al database SQL di Azure o ad Azure SQL Data Warehouse ottenendo un token da Azure Active Directory (AAD).This authentication method allows middle-tier services to connect to Azure SQL Database or Azure SQL Data Warehouse by obtaining a token from Azure Active Directory (AAD). Consente scenari complessi, tra cui l'autenticazione basata su certificato.It enables sophisticated scenarios including certificate-based authentication. Per usare l'autenticazione tramite token di Azure AD, è necessario completare quattro passaggi fondamentali:You must complete four basic steps to use Azure AD token authentication:

  1. Registrare l'applicazione in Azure Active Directory e ottenere l'ID client per il codice.Register your application with Azure Active Directory and get the client id for your code.
  2. Creare un utente del database che rappresenta l'applicazione.Create a database user representing the application. (Completato in precedenza al passaggio 6).(Completed earlier in step 6.)
  3. Creare un certificato nel computer client che esegue l'applicazione.Create a certificate on the client computer runs the application.
  4. Aggiungere il certificato come chiave per l'applicazione.Add the certificate as a key for your application.

Stringa di connessione di esempio:Sample connection string:

string ConnectionString =@"Data Source=n9lxnyuzhv.database.windows.net; Initial Catalog=testdb;"
SqlConnection conn = new SqlConnection(ConnectionString);
connection.AccessToken = "Your JWT token"
conn.Open();

Per altre informazioni, vedere SQL Server Security Blog(Blog sulla sicurezza del server SQL).For more information, see SQL Server Security Blog. Per informazioni sull'aggiunta di un certificato, vedere Introduzione all'autenticazione basata su certificati di Azure Active Directory.For information about adding a certificate, see Get started with certificate-based authentication in Azure Active Directory.

sqlcmdsqlcmd

Le istruzioni seguenti eseguono la connessione usando la versione 13.1 di sqlcmd disponibile in Download Center.The following statements, connect using version 13.1 of sqlcmd, which is available from the Download Center.

sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net  -G  
sqlcmd -S Target_DB_or_DW.testsrv.database.windows.net -U bob@contoso.com -P MyAADPassword -G -l 30

Passaggi successiviNext steps