Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
GÄLLER FÖR:
Azure Data Factory
Azure Synapse Analytics
Tips
Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.
Den här artikeln hjälper dig att förstå hanterad identitet (tidigare kallad hanterad tjänstidentitet/MSI) och hur den fungerar i Azure Data Factory.
Kommentar
Vi rekommenderar att du använder modulen Azure Az PowerShell för att interagera med Azure. Kom igång genom att läsa Installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.
Översikt
Med hanterade identiteter behöver du inte hantera autentiseringsuppgifter. Hanterade identiteter tillhandahåller en identitet för tjänstinstansen när du ansluter till resurser som stöder Microsoft Entra autentisering. Tjänsten kan till exempel använda en hanterad identitet för att komma åt resurser som Azure Key Vault, där dataadministratörer på ett säkert sätt kan lagra autentiseringsuppgifter eller komma åt lagringskonton. Tjänsten använder den hanterade identiteten för att hämta Microsoft Entra token.
Det finns två typer av hanterade identiteter som stöds:
- Systemtilldelad: Du kan aktivera en hanterad identitet direkt på en tjänstinstans. När du tillåter en systemtilldelad hanterad identitet när tjänsten skapas skapas en identitet i Microsoft Entra som är kopplad till tjänstinstansens livscykel. Avsiktligt kan endast den Azure resursen använda den här identiteten för att begära token från Microsoft Entra ID. När resursen tas bort tar Azure automatiskt bort identiteten åt dig.
- User-assigned: Du kan också skapa en hanterad identitet som en fristående Azure resurs. Du kan skapa en användartilldelad hanterad identitet och tilldela den till en eller flera instanser av en datafabrik. I användartilldelade hanterade identiteter hanteras identiteten separat från de resurser som använder den.
Kommentar
Säker förbikoppling kan inte använda hanterade identiteter som tilldelats av användare. Den kan bara använda systemtilldelade hanterade identiteter för att ansluta till Azure Storage och Azure Key Vault.
Med hanterad identitet får du följande fördelar:
- Lagra autentiseringsuppgifter i Azure Key Vault, i vilket fall som helst hanterad identitet används för Azure Key Vault-autentisering.
- Få åtkomst till datalager eller beräkningar med hjälp av hanterad identitetsautentisering, inklusive 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-aktivitet, webbaktivitet med mera. Mer information finns i artiklarna om anslutningar och aktiviteter.
- Hanterad identitet används också för att kryptera/dekryptera data och metadata med hjälp av den kundhanterade nyckeln som lagras i Azure Key Vault, vilket ger dubbel kryptering.
Nödvändiga roller för hanterade identiteter
För att effektivt använda hanterade identiteter i Azure Data Factory måste specifika roller tilldelas för att säkerställa korrekt åtkomst och funktionalitet. Nedan visas de roller som krävs:
Systemtilldelad hanterad identitet
- Läsarroll: Den här rollen är nödvändig för att läsa resursernas metadata.
- Deltagarroll: Den här rollen krävs för att hantera de resurser som den hanterade identiteten behöver åtkomst till.
Användartilldelad hanterad identitet
- Hanterad identitetsoperatorroll: Med den här rollen kan du hantera den användartilldelade hanterade identiteten.
- Läsarroll: Den här rollen är nödvändig för att läsa resursernas metadata.
- Deltagarroll: Den här rollen krävs för att hantera de resurser som den hanterade identiteten behöver åtkomst till.
Kommentar
- Användare med rollen Data Factory-deltagare kan skapa och köra pipelines som utnyttjar både den systemtilldelade hanterade identiteten (SAMI) samt alla användartilldelade hanterade identiteter (UAMI) kopplade till datafabriken. Dessa identiteter ärver alla behörigheter som redan har beviljats dem för externa resurser (till exempel lagringskonton, SQL-databaser, Key Vault Fabric Lakehouse).
- Tilldela bidragsroll endast till betrodda principaler och med minsta möjliga omfång. Granska och begränsa de behörigheter som beviljas till datafabrikens hanterade identiteter, använd RBAC med lägsta behörighet på underordnade resurser och granska regelbundet rolltilldelningar och aktivitetsloggar.
Systemtilldelad hanterad identitet
Kommentar
Systemtilldelad hanterad identitet kallas även "Hanterad identitet" någon annanstans i dokumentationen och i Data Factory Studio för bakåtkompatibilitet. Vi nämner uttryckligen "Användartilldelad hanterad identitet" när vi refererar till den.
Generera systemtilldelad hanterad identitet
Systemtilldelad hanterad identitet genereras på följande sätt:
- När du skapar en datafabrik via Azure-portalen eller PowerShell skapas alltid hanterade identiteter automatiskt.
- När du skapar en datafabrik via SDK skapas endast hanterad identitet om du anger "Identitet = ny FactoryIdentity()" i fabriksobjektet för skapande." Se exempel i .NET Snabbstart – Skapa datafabrik.
- När du skapar en datafabrik via REST API skapas endast hanterad identitet om du anger avsnittet "identitet" i begärandetexten. Se exempel i REST-snabbstart – skapa datafabrik.
Om du upptäcker att tjänstinstansen inte har någon associerad hanterad identitet efter instruktionen hämta hanterad identitet kan du uttryckligen generera en genom att uppdatera den med identitetsinitiatorn programmatiskt:
- Generera hanterad identitet med PowerShell
- Generera hanterad identitet med hjälp av REST API
- Generera hanterad identitet med hjälp av en Azure Resource Manager-mall
- Generera hanterad identitet med hjälp av SDK
Kommentar
- Det går inte att ändra den hanterade identiteten. Att uppdatera en tjänstinstans som redan har en hanterad identitet påverkar inte och den hanterade identiteten hålls oförändrad.
- Om du uppdaterar en tjänstinstans som redan har en hanterad identitet utan att ange parametern "identitet" i fabriksobjekten eller utan att ange "identitet" i REST-begärandetexten får du ett fel.
- När du tar bort en tjänstinstans tas även den associerade hanterade identiteten bort.
Generera systemtilldelad hanterad identitet med PowerShell
Anropa Kommandot Set-AzDataFactoryV2 och se sedan att "identitetsfält" nyligen har genererats:
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
Generera systemtilldelad hanterad identitet med hjälp av REST API
Kommentar
Om du försöker uppdatera en tjänstinstans som redan har en hanterad identitet utan att ange identitetsparametern i fabriksobjektet eller ange ett identitetsavsnitt i REST-begärandetexten får du ett fel.
Anropa API:et nedan med avsnittet "identitet" i begärandetexten:
PATCH https://management.azure.com/subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<data factory name>?api-version=2018-06-01
Begärandetext: Lägg till "identitet": { "type": "SystemAssigned" }.
{
"name": "<dataFactoryName>",
"location": "<region>",
"properties": {},
"identity": {
"type": "SystemAssigned"
}
}
Svar: Hanterad identitet skapas automatiskt och avsnittet "identitet" fylls i därefter.
{
"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>"
}
Generera systemtilldelad hanterad identitet med hjälp av en Azure Resource Manager mall
Mall: lägg till "identitet": { "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"
}
}]
}
Generera systemtilldelad hanterad identitet med SDK
Anropa funktionen create_or_update med Identity=new FactoryIdentity(). Exempelkod med .NET:
Factory dataFactory = new Factory
{
Location = <region>,
Identity = new FactoryIdentity()
};
client.Factories.CreateOrUpdate(resourceGroup, dataFactoryName, dataFactory);
Hämta systemtilldelad hanterad identitet
Du kan hämta den hanterade identiteten från Azure portalen eller programmatiskt. I följande avsnitt visas några exempel.
Tips
Om du inte ser den hanterade identiteten genererar du en hanterad identitet genom att uppdatera tjänstinstansen.
Hämta systemtilldelad hanterad identitet med hjälp av Azure-portalen
Du hittar den hanterade identitetsinformationen från Azure portalen -> din datafabrik -> Egenskaper.
- Objekt-ID för hanterad identitet
- Hanterad identitetsklient
Den hanterade identitetsinformationen visas också när du skapar en länkad tjänst som stöder hanterad identitetsautentisering, till exempel Azure Blob, Azure Data Lake Storage, Azure Key Vault osv.
Följ dessa steg om du vill bevilja behörigheter för datafabrikens hanterade identitet till dina Azure datakällor. Detaljerade steg finns i Tilldela Azure roller med hjälp av Azure-portalen.
Välj Access control (IAM) på sidan Azure portal för datakällan.
Välj Lägg till>Lägg till rolltilldelning.
Välj den roll som krävs för att bevilja nödvändig åtkomst till datakällan. Detta kan variera beroende på vilken datakälla och vilka behörigheter som krävs där av datafabriken. Om datafabriken till exempel bara behöver läsa från en Azure-SQL Server väljer du rollen Reader.
Från fliken Medlemmar väljer du Hanterad identitet och välj sedan Välj medlemmar.
Välj din Azure prenumeration.
Under Systemtilldelad hanterad identitet väljer du Data Factory och sedan en datafabrik. Du kan även använda objekt-ID:t eller datafabriksnamnet (som namnet på den hanterade identiteten) för att hitta den här identiteten. Om du vill hämta den hanterade identitetens program-ID använder du PowerShell.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Hämta systemtilldelad hanterad identitet med PowerShell
Huvud-ID:t och klient-ID:t för den hanterade identiteten returneras när du får en specifik tjänstinstans på följande sätt. Använd PrincipalId för att bevilja åtkomst:
PS C:\> (Get-AzDataFactoryV2 -ResourceGroupName <resourceGroupName> -Name <dataFactoryName>).Identity
PrincipalId TenantId
----------- --------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee
Du kan hämta program-ID:t genom att kopiera ovanstående principals-ID och sedan köra följande Microsoft Entra ID-kommando med principals-ID som 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
Hämta hanterad identitet med hjälp av REST API
Huvud-ID:t och klient-ID:t för den hanterade identiteten returneras när du får en specifik tjänstinstans på följande sätt.
Anropa API:et nedan i begäran:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataFactory/factories/{factoryName}?api-version=2018-06-01
Svar: Du får svar som du ser i exemplet nedan. Avsnittet "identitet" fylls i i enlighet med detta.
{
"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":{
}
}
Tips
Om du vill hämta den hanterade identiteten från en ARM-mall lägger du till ett utdataavsnitt i ARM JSON:
{
"outputs":{
"managedIdentityObjectId":{
"type":"string",
"value":"[reference(resourceId('Microsoft.DataFactory/factories', parameters('<dataFactoryName>')), '2018-06-01', 'Full').identity.principalId]"
}
}
}
Användartilldelad hanterad identitet
Du kan skapa, ta bort, hantera användartilldelade hanterade identiteter i Microsoft Entra ID. Mer information finns i Skapa, lista, ta bort eller tilldela en roll till en användartilldelad hanterad identitet med hjälp av Azure-portalen.
För att kunna använda en användartilldelad hanterad identitet måste du först skapa autentiseringsuppgifter i tjänstinstansen för UAMI.
Relaterat innehåll
Se följande avsnitt som introducerar när och hur du använder hanterad identitet:
- Arkivautentiseringsuppgifter i Azure Key Vault.
- Kopiera data från/till Azure Data Lake Store med hanterade identiteter för Azure resursautentisering.
Se Hanterade identiteter för Azure Resursöversikt för mer bakgrund om hanterade identiteter för Azure resurser, som hanterad identitet i Azure Data Factory baseras på.
Se Limitations för hanterade identiteter, som även gäller för hanterade identiteter i Azure Data Factory.