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.
Notitie
Vertrouwde bypass kan geen door de gebruiker toegewezen beheerde identiteiten gebruiken. Het kan alleen door het systeem toegewezen beheerde identiteiten gebruiken om verbinding te maken met Azure Storage en Azure Key Vault.
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.
Vereiste rollen voor beheerde identiteiten
Als u beheerde identiteiten effectief wilt gebruiken in Azure Data Factory, moeten specifieke rollen worden toegewezen om de juiste toegang en functionaliteit te garanderen. Hieronder ziet u de vereiste rollen:
Door het systeem toegewezen beheerde identiteit
- Lezerrol: deze rol is nodig om de metagegevens van de resources te lezen.
- Rol inzender: deze rol is vereist voor het beheren van de resources waartoe de beheerde identiteit toegang nodig heeft.
Door de gebruiker toegewezen beheerde identiteit
- Rol beheerde identiteitsoperator: met deze rol kan de door de gebruiker toegewezen beheerde identiteit worden beheerd.
- Lezerrol: deze rol is nodig om de metagegevens van de resources te lezen.
- Rol inzender: deze rol is vereist voor het beheren van de resources waartoe de beheerde identiteit toegang nodig heeft.
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:
- Beheerde identiteit genereren met Behulp van PowerShell
- Beheerde identiteit genereren met rest API
- Beheerde identiteit genereren met behulp van een Azure Resource Manager-sjabloon
- Beheerde identiteit genereren met sdk
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": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"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.
- 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.
Klik op Toegangsbeheer (IAM) .
Selecteer Toevoegen>Roltoewijzing toevoegen.
Selecteer op het tabblad Leden, Beheerde identiteit en selecteer vervolgens Leden selecteren.
Selecteer uw Azure-abonnement.
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.
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
----------- --------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee
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 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
ServicePrincipalNames : {00001111-aaaa-2222-bbbb-3333cccc4444, https://identity.azure.net/P86P8g6nt1QxfPJx22om8MOooMf/Ag0Qf/nnREppHkU=}
ApplicationId : 00001111-aaaa-2222-bbbb-3333cccc4444
DisplayName : ADFV2DemoFactory
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
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":"bbbbbbbb-cccc-dddd-2222-333333333333",
"tenantId":"aaaabbbb-0000-cccc-1111-dddd2222eeee"
},
"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.
Gerelateerde inhoud
Zie de volgende onderwerpen waarin wordt geïntroduceerd wanneer en hoe u beheerde identiteit gebruikt:
- Sla referenties op in Azure Key Vault.
- Kopieer gegevens van/naar Azure Data Lake Store met behulp van beheerde identiteiten voor verificatie van Azure-resources.
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.