Beheerde identiteit voor Azure Data Factory

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Dit artikel helpt u inzicht te krijgen in de beheerde identiteit (voorheen Managed Service Identity/MSI genoemd) en hoe deze werkt in Azure Data Factory.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Overzicht

Beheerde identiteiten nemen de noodzaak voor ontwikkelaars weg om referenties te beheren. Beheerde identiteiten bieden een identiteit voor het service-exemplaar wanneer er verbinding wordt gemaakt met resources die ondersteuning bieden voor Microsoft Entra-verificatie. De service kan bijvoorbeeld een beheerde identiteit gebruiken om toegang te krijgen tot resources zoals Azure Key Vault, waar gegevensbeheerders referenties op een veilige manier kunnen opslaan of toegang hebben tot opslagaccounts. De service gebruikt de beheerde identiteit om Microsoft Entra-tokens te verkrijgen.

Er zijn twee typen beheerde identiteit die worden ondersteund:

  • Door het systeem toegewezen: u kunt een beheerde identiteit rechtstreeks op een service-exemplaar inschakelen. Wanneer u een door het systeem toegewezen beheerde identiteit toestaat tijdens het maken van de service, wordt er een identiteit gemaakt in Microsoft Entra dat is gekoppeld aan de levenscyclus van dat service-exemplaar. Standaard kan alleen die Azure-resource deze identiteit gebruiken voor het aanvragen van tokens van Microsoft Entra ID. Als de resource wordt verwijderd, wordt de identiteit automatisch door Azure voor u verwijderd.
  • Door de gebruiker toegewezen: u kunt ook een beheerde identiteit maken als zelfstandige Azure-resource. U kunt een door de gebruiker toegewezen beheerde identiteit maken en deze toewijzen aan een of meer exemplaren van een data factory. Bij door de gebruiker toegewezen beheerde identiteiten wordt de identiteit afzonderlijk beheerd van de resources die er gebruik van maken.

Beheerde identiteit biedt de onderstaande voordelen:

  • Referenties opslaan in Azure Key Vault, waarbij een per geval beheerde identiteit wordt gebruikt voor Azure Key Vault-verificatie.
  • Toegang tot gegevensarchieven of berekeningen met behulp van verificatie via beheerde identiteiten, waaronder Azure Blob Storage, Azure Data Explorer, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics, REST, Databricks-activiteit, webactiviteit en meer. Raadpleeg artikelen over de connector en activiteiten voor meer informatie.
  • Beheerde identiteit wordt ook gebruikt voor het versleutelen/ontsleutelen van gegevens en metagegevens met behulp van een door de klant beheerde sleutel die is opgeslagen in Azure Key Vault, waardoor wordt voorzien in een dubbele versleuteling.

Door het systeem toegewezen beheerde identiteit

Notitie

Door het systeem toegewezen beheerde identiteit wordt ook wel 'Beheerde identiteit' genoemd elders in de documentatie en in Data Factory Studio voor achterwaartse compatibiliteit. We vermelden expliciet 'Door de gebruiker toegewezen beheerde identiteit' wanneer we ernaar verwijzen.

Door het systeem toegewezen beheerde identiteit genereren

Door het systeem toegewezen beheerde identiteit wordt als volgt gegenereerd:

  • Wanneer u een data factory maakt via Azure Portal of PowerShell, wordt er altijd automatisch een beheerde identiteit gemaakt.
  • Wanneer u data factory maakt via SDK, wordt de beheerde identiteit alleen gemaakt als u 'Identity = new FactoryIdentity()' opgeeft in het factory-object voor het maken. Zie het voorbeeld in .NET Quickstart : Data Factory maken.
  • Wanneer u een data factory maakt via REST API, wordt de beheerde identiteit alleen gemaakt als u de sectie 'identiteit' opgeeft in de aanvraagbody. Zie het voorbeeld in rest-quickstart: een data factory maken.

Als uw service-exemplaar geen beheerde identiteit heeft die is gekoppeld aan de volgende instructie voor het ophalen van beheerde identiteiten , kunt u er expliciet een genereren door deze programmatisch bij te werken met id-initiator:

Notitie

  • Beheerde identiteit kan niet worden gewijzigd. Het bijwerken van een service-exemplaar dat al een beheerde identiteit heeft, heeft geen invloed en de beheerde identiteit blijft ongewijzigd.
  • Als u een service-exemplaar bijwerkt dat al een beheerde identiteit heeft zonder de parameter 'identiteit' op te geven in de factory-objecten of zonder de sectie 'identiteit' op te geven in de hoofdtekst van de REST-aanvraag, krijgt u een foutmelding.
  • Wanneer u een service-exemplaar verwijdert, wordt ook de bijbehorende beheerde identiteit verwijderd.

Door het systeem toegewezen beheerde identiteit genereren met behulp van PowerShell

Roep de opdracht Set-AzDataFactoryV2 aan en u ziet dat de velden Identiteit worden gegenereerd:

PS C:\> 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

Door het systeem toegewezen beheerde identiteit genereren met rest API

Notitie

Als u een service-exemplaar probeert bij te werken dat al een beheerde identiteit heeft zonder de id-parameter op te geven in het factory-object of een identiteitssectie op te geven in de hoofdtekst van de REST-aanvraag, krijgt u een foutmelding.

Roep de onderstaande API aan met de sectie 'identiteit' in de aanvraagbody:

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

Aanvraagbody: voeg 'identiteit' toe: { "type": "SystemAssigned" }.

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

Antwoord: beheerde identiteit wordt automatisch gemaakt en de sectie 'identiteit' wordt dienovereenkomstig ingevuld.

{
    "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/<dataFactoryName>",
    "type": "Microsoft.DataFactory/factories",
    "location": "<region>"
}

Door het systeem toegewezen beheerde identiteit genereren met behulp van een Azure Resource Manager-sjabloon

Sjabloon: voeg 'identity' toe: { "type": "SystemAssigned" }.

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

Door het systeem toegewezen beheerde identiteit genereren met sdk

Roep de create_or_update-functie aan met Identity=new FactoryIdentity(). Voorbeeldcode met behulp van .NET:

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

Door het systeem toegewezen beheerde identiteit ophalen

U kunt de beheerde identiteit ophalen uit de Azure-portal of programmatisch. In de volgende secties ziet u enkele voorbeelden.

Tip

Als u de beheerde identiteit niet ziet, genereert u een beheerde identiteit door uw service-exemplaar bij te werken.

Door het systeem toegewezen beheerde identiteit ophalen met behulp van Azure Portal

U vindt de informatie over beheerde identiteiten in De Azure-portal -> uw data factory -> eigenschappen.

Shows the Azure portal with the system-managed identity object ID and Identity Tenant for an Azure Data Factory.

  • Object-id van beheerde identiteit
  • Tenant voor beheerde identiteit

De informatie over beheerde identiteiten wordt ook weergegeven wanneer u een gekoppelde service maakt, die ondersteuning biedt voor verificatie van beheerde identiteiten, zoals Azure Blob, Azure Data Lake Storage, Azure Key Vault, enzovoort.

Volg deze stappen om machtigingen te verlenen. Raadpleeg Azure-rollen toewijzen met Azure Portal voor informatie over het toewijzen van rollen.

  1. Klik op Toegangsbeheer (IAM) .

  2. Selecteer Toevoegen>Roltoewijzing toevoegen.

    Screenshot that shows Access control (IAM) page with Add role assignment menu open.

  3. Selecteer beheerde identiteit op het tabblad Leden en selecteer vervolgens Leden selecteren.

  4. Selecteer uw Azure-abonnement.

  5. Selecteer Data Factory onder Door het systeem toegewezen beheerde identiteit en selecteer vervolgens een data factory. U kunt ook de object-id of data factory-naam (als de naam van de beheerde identiteit) gebruiken om deze identiteit te vinden. Gebruik PowerShell om de toepassings-id van de beheerde identiteit op te halen.

  6. Selecteer op het tabblad Beoordelen en toewijzen de optie Beoordelen en toewijzen om de rol toe te wijzen.

Door het systeem toegewezen beheerde identiteit ophalen met behulp van PowerShell

De principal-id van de beheerde identiteit en de tenant-id worden als volgt geretourneerd wanneer u een specifiek service-exemplaar krijgt. Gebruik de PrincipalId om toegang te verlenen:

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

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

U kunt de toepassings-id ophalen door de bovenstaande principal-id te kopiëren en vervolgens de onderstaande Microsoft Entra ID-opdracht uit te voeren met principal-id als parameter.

PS C:\> 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

Beheerde identiteit ophalen met REST API

De principal-id van de beheerde identiteit en de tenant-id worden als volgt geretourneerd wanneer u een specifiek service-exemplaar krijgt.

Roep de onderstaande API aan in de aanvraag:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}?api-version=2018-06-01

Antwoord: U krijgt een antwoord zoals wordt weergegeven in het onderstaande voorbeeld. De sectie 'identiteit' wordt dienovereenkomstig ingevuld.

{
    "name":"<dataFactoryName>",
    "identity":{
        "type":"SystemAssigned",
        "principalId":"554cff9e-XXXX-XXXX-XXXX-90c7d9ff2ead",
        "tenantId":"72f988bf-XXXX-XXXX-XXXX-2d7cd011db47"
    },
    "id":"/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<dataFactoryName>",
    "type":"Microsoft.DataFactory/factories",
    "properties":{
        "provisioningState":"Succeeded",
        "createTime":"2020-02-12T02:22:50.2384387Z",
        "version":"2018-06-01",
        "factoryStatistics":{
            "totalResourceCount":0,
            "maxAllowedResourceCount":0,
            "factorySizeInGbUnits":0,
            "maxAllowedFactorySizeInGbUnits":0
        }
    },
    "eTag":"\"03006b40-XXXX-XXXX-XXXX-5e43617a0000\"",
    "location":"<region>",
    "tags":{

    }
}

Tip

Als u de beheerde identiteit wilt ophalen uit een ARM-sjabloon, voegt u een sectie uitvoer toe in de ARM JSON:

{
    "outputs":{
        "managedIdentityObjectId":{
            "type":"string",
            "value":"[reference(resourceId('Microsoft.DataFactory/factories', parameters('<dataFactoryName>')), '2018-06-01', 'Full').identity.principalId]"
        }
    }
}

Door de gebruiker toegewezen beheerde identiteit

U kunt door de gebruiker toegewezen beheerde identiteiten maken, verwijderen, beheren in Microsoft Entra-id. Raadpleeg voor meer informatie een rol maken, weergeven, verwijderen of toewijzen aan een door de gebruiker toegewezen beheerde identiteit met behulp van Azure Portal.

Als u een door de gebruiker toegewezen beheerde identiteit wilt gebruiken, moet u eerst referenties maken in uw service-exemplaar voor de UAMI.

  • Referenties maken.

Zie de volgende onderwerpen waarin wordt geïntroduceerd wanneer en hoe u beheerde identiteit gebruikt:

Zie Overzicht van beheerde identiteiten voor Azure-resources voor meer achtergrondinformatie over beheerde identiteiten voor Azure-resources, waarop beheerde identiteiten in Azure Data Factory zijn gebaseerd.

Zie Beperkingen van beheerde identiteiten, die ook van toepassing zijn op beheerde identiteiten in Azure Data Factory.