Identità gestita per Data FactoryManaged identity for Data Factory

Questo articolo aiuta a comprendere che cos'è l'identità gestita per Data Factory (precedentemente noto come Managed Service Identity/MSI) e il relativo funzionamento.This article helps you understand what is managed identity for Data Factory (formerly known as Managed Service Identity/MSI) and how it works.

Nota

Questo articolo è stato aggiornato per usare il nuovo modulo Az di Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. È comunque possibile usare il modulo AzureRM, che continuerà a ricevere correzioni di bug almeno fino a dicembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Per altre informazioni sul nuovo modulo Az e sulla compatibilità di AzureRM, vedere Introduzione del nuovo modulo Az di Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Per istruzioni sull'installazione del modulo Az, vedere Installare Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

PanoramicaOverview

Quando si crea una data factory, è possibile creare un'identità gestita e la creazione della factory.When creating a data factory, a managed identity can be created along with factory creation. L'identità gestita è un'applicazione gestita registrata in Azure Activity Directory e rappresenta la data factory specifica.The managed identity is a managed application registered to Azure Activity Directory, and represents this specific data factory.

Identità gestita per Data Factory vantaggi le funzionalità seguenti:Managed identity for Data Factory benefits the following features:

Generare l'identità gestitaGenerate managed identity

Identità gestita per Data Factory viene generato come indicato di seguito:Managed identity for Data Factory is generated as follows:

  • Durante la creazione di data factory tramite portale di Azure o PowerShellgestiti, identità verrà sempre creata automaticamente.When creating data factory through Azure portal or PowerShell, managed identity will always be created automatically.
  • Durante la creazione di data factory tramite SDKgestiti, identità verrà creata solo se si specifica "Identity = new factoryidentity ()" nell'oggetto factory per la creazione.When creating data factory through SDK, managed identity will be created only if you specify "Identity = new FactoryIdentity()" in the factory object for creation. Vedere l'esempio nella guida introduttiva di .NET per la creazione di una data factory.See example in .NET quickstart - create data factory.
  • Durante la creazione di data factory tramite API RESTgestiti, identità verrà creata solo se si specifica sezione "identity" nel corpo della richiesta.When creating data factory through REST API, managed identity will be created only if you specify "identity" section in request body. Vedere l'esempio nella guida introduttiva di REST per la creazione di una data factory.See example in REST quickstart - create data factory.

Se si trova alla data factory non è un'identità gestita associata seguendo recuperare l'identità gestita (istruzione), è possibile generarne esplicitamente una aggiornando la data factory con l'iniziatore di identità a livello di codice:If you find your data factory doesn't have a managed identity associated following retrieve managed identity instruction, you can explicitly generate one by updating the data factory with identity initiator programmatically:

Nota

  • Identità gestita non può essere modificato.Managed identity cannot be modified. L'aggiornamento di una data factory che ha già un'identità gestita non avrà alcun impatto, l'identità gestita resta invariata.Updating a data factory which already have a managed identity won't have any impact, the managed identity is kept unchanged.
  • Se si aggiorna una data factory che ha già un'identità gestita senza specificare il parametro "identity" nell'oggetto factory o sezione "identity" nel corpo della richiesta REST, si otterrà un errore.If you update a data factory which already have a managed identity without specifying "identity" parameter in the factory object or without specifying "identity" section in REST request body, you will get an error.
  • Quando si elimina una data factory, l'identità gestita associato verrà eliminato insieme.When you delete a data factory, the associated managed identity will be deleted along.

Generare l'identità gestita tramite PowerShellGenerate managed identity using PowerShell

Chiamare Set-AzDataFactoryV2 nuovo il comando è visualizzare campi "Identity" generati:Call Set-AzDataFactoryV2 command again, then you see "Identity" fields being newly generated:

PS C:\WINDOWS\system32> Set-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName> -Location <region>

DataFactoryName   : ADFV2DemoFactory
DataFactoryId     : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/ADFV2DemoFactory
ResourceGroupName : <resourceGroupName>
Location          : East US
Tags              : {}
Identity          : Microsoft.Azure.Management.DataFactory.Models.FactoryIdentity
ProvisioningState : Succeeded

Generare l'identità gestita tramite l'API RESTGenerate managed identity using REST API

Chiamare l'API seguente con la sezione "identity" nel corpo della richiesta:Call below API with "identity" section in the request body:

PATCH https://management.azure.com/subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<data factory name>?api-version=2018-06-01

Corpo della richiesta: aggiungere "identity": { "type": "SystemAssigned" }.Request body: add "identity": { "type": "SystemAssigned" }.

{
    "name": "<dataFactoryName>",
    "location": "<region>",
    "properties": {},
    "identity": {
        "type": "SystemAssigned"
    }
}

Risposta: identità gestita viene creata automaticamente e sezione "identity" viene popolata di conseguenza.Response: managed identity is created automatically, and "identity" section is populated accordingly.

{
    "name": "<dataFactoryName>",
    "tags": {},
    "properties": {
        "provisioningState": "Succeeded",
        "loggingStorageAccountKey": "**********",
        "createTime": "2017-09-26T04:10:01.1135678Z",
        "version": "2018-06-01"
    },
    "identity": {
        "type": "SystemAssigned",
        "principalId": "765ad4ab-XXXX-XXXX-XXXX-51ed985819dc",
        "tenantId": "72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "id": "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/ADFV2DemoFactory",
    "type": "Microsoft.DataFactory/factories",
    "location": "<region>"
}

Generare l'identità gestita tramite un modello Azure Resource ManagerGenerate managed identity using an Azure Resource Manager template

Modello: aggiungere "identity": { "type": "SystemAssigned" }.Template: add "identity": { "type": "SystemAssigned" }.

{
    "contentVersion": "1.0.0.0",
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "resources": [{
        "name": "<dataFactoryName>",
        "apiVersion": "2018-06-01",
        "type": "Microsoft.DataFactory/factories",
        "location": "<region>",
        "identity": {
            "type": "SystemAssigned"
        }
    }]
}

Generare l'identità gestita tramite SDKGenerate managed identity using SDK

Chiamare la funzione di creazione o aggiornamento di data factory con Identity=new FactoryIdentity().Call the data factory create_or_update function with Identity=new FactoryIdentity(). Di seguito è riportato codice di esempio con .NET:Sample code using .NET:

Factory dataFactory = new Factory
{
    Location = <region>,
    Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);

Recuperare l'identità gestitaRetrieve managed identity

È possibile recuperare l'identità gestita dal portale di Azure o a livello di codice.You can retrieve the managed identity from Azure portal or programmatically. Le sezioni seguenti illustrano alcuni esempi.The following sections show some samples.

Suggerimento

Se non viene visualizzata l'identità gestita generare l'identità gestita aggiornando la factory.If you don't see the managed identity, generate managed identity by updating your factory.

Recuperare l'identità gestita tramite il portale di AzureRetrieve managed identity using Azure portal

È possibile trovare le informazioni sull'identità gestito dal portale di Azure -> data factory -> proprietà:You can find the managed identity information from Azure portal -> your data factory -> Properties:

  • ID oggetto identità gestitaManaged Identity Object ID
  • Tenant identità gestitaManaged Identity Tenant
  • Managed Identity Application ID > copiare questo valoreManaged Identity Application ID > copy this value

Recuperare l'identità gestita

Recuperare l'identità gestita usando PowerShellRetrieve managed identity using PowerShell

Verrà restituito l'identità gestita ID dell'entità e l'ID tenant quando si riceve una data factory specificata come indicato di seguito:The managed identity principal ID and tenant ID will be returned when you get a specific data factory as follows:

PS C:\WINDOWS\system32> (Get-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity

PrincipalId                          TenantId
-----------                          --------
765ad4ab-XXXX-XXXX-XXXX-51ed985819dc 72f988bf-XXXX-XXXX-XXXX-2d7cd011db47

Copiare l'ID entità, quindi eseguire il comando di Azure Active Directory seguente con l'ID entità come parametro per ottenere il valore di ApplicationId, usato per concedere l'accesso:Copy the principal ID, then run below Azure Active Directory command with principal ID as parameter to get the ApplicationId, which you use to grant access:

PS C:\WINDOWS\system32> Get-AzADServicePrincipal -ObjectId 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc

ServicePrincipalNames : {76f668b3-XXXX-XXXX-XXXX-1b3348c75e02, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId         : 76f668b3-XXXX-XXXX-XXXX-1b3348c75e02
DisplayName           : ADFV2DemoFactory
Id                    : 765ad4ab-XXXX-XXXX-XXXX-51ed985819dc
Type                  : ServicePrincipal

Passaggi successiviNext steps

Vedere gli argomenti seguenti che presentano quando e come usare data factory identità gestito:See the following topics which introduce when and how to use data factory managed identity:

Visualizzare identità gestite per la panoramica delle risorse di Azure per altre informazioni sull'identità gestita per le risorse di Azure, quali data factory di identità gestita in base al momento.See Managed Identities for Azure Resources Overview for more background on managed identities for Azure resources, which data factory managed identity is based upon.