Tożsamość zarządzana dla usługi Azure Data Factory

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Ten artykuł pomaga zrozumieć tożsamość zarządzaną (wcześniej znaną jako tożsamość usługi zarządzanej/tożsamość usługi zarządzanej) i sposób jej działania w usłudze Azure Data Factory.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Omówienie

Tożsamości zarządzane eliminują potrzebę zarządzania poświadczeniami. Tożsamości zarządzane zapewniają tożsamość wystąpienia usługi podczas nawiązywania połączenia z zasobami obsługującymi uwierzytelnianie usługi Microsoft Entra. Na przykład usługa może używać tożsamości zarządzanej do uzyskiwania dostępu do zasobów, takich jak Azure Key Vault, gdzie administratorzy danych mogą bezpiecznie przechowywać poświadczenia lub uzyskiwać dostęp do kont magazynu. Usługa używa tożsamości zarządzanej do uzyskiwania tokenów usługi Microsoft Entra.

Istnieją dwa typy obsługiwanych tożsamości zarządzanych:

  • Przypisane przez system: tożsamość zarządzaną można włączyć bezpośrednio w wystąpieniu usługi. Gdy zezwalasz na tożsamość zarządzaną przypisaną przez system podczas tworzenia usługi, tożsamość jest tworzona w usłudze Microsoft Entra powiązanej z cyklem życia tego wystąpienia usługi. Zgodnie z projektem tylko ten zasób platformy Azure może używać tej tożsamości do żądania tokenów z usługi Microsoft Entra ID. Dlatego po usunięciu zasobu platforma Azure automatycznie usuwa tożsamość.
  • Przypisana przez użytkownika: możesz również utworzyć tożsamość zarządzaną jako autonomiczny zasób platformy Azure. Tożsamość zarządzaną przypisaną przez użytkownika można utworzyć i przypisać ją do co najmniej jednego wystąpienia fabryki danych. W tożsamościach zarządzanych przypisanych przez użytkownika tożsamość jest zarządzana oddzielnie od zasobów, które z niej korzystają.

Tożsamość zarządzana zapewnia następujące korzyści:

  • Przechowywanie poświadczeń w usłudze Azure Key Vault, gdzie tożsamość zarządzana jest używana do uwierzytelniania w usłudze Azure Key Vault.
  • Uzyskiwanie dostępu do magazynów danych lub obliczeń przy użyciu uwierzytelniania tożsamości zarządzanej, a w tym usług 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, działania usługi Databricks, aktywności internetowej i nie tylko. Aby uzyskać szczegółowe informacje, zapoznaj się z artykułami dotyczącymi łącznika i działań.
  • Tożsamość zarządzana jest również używana do szyfrowania/odszyfrowywania danych i metadanych przy użyciu klucza zarządzanego przez klienta przechowywanego w usłudze Azure Key Vault, zapewniając podwójne szyfrowanie.

Tożsamość zarządzana przypisana przez system

Uwaga

Tożsamość zarządzana przypisana przez system jest również nazywana "tożsamością zarządzaną" w innym miejscu w dokumentacji i w narzędziu Data Factory Studio w celu zapewnienia zgodności z poprzednimi wersjami. Podczas odwoływania się do niej jawnie będziemy wspominać "Tożsamość zarządzana przypisana przez użytkownika".

Generowanie tożsamości zarządzanej przypisanej przez system

Tożsamość zarządzana przypisana przez system jest generowana w następujący sposób:

  • Podczas tworzenia fabryki danych za pośrednictwem witryny Azure Portal lub programu PowerShell tożsamość zarządzana będzie zawsze tworzona automatycznie.
  • Podczas tworzenia fabryki danych za pomocą zestawu SDK tożsamość zarządzana zostanie utworzona tylko wtedy, gdy określisz wartość "Identity = new FactoryIdentity()" w obiekcie fabryki do utworzenia. Zobacz przykład w przewodniku Szybki start platformy .NET — tworzenie fabryki danych.
  • Podczas tworzenia fabryki danych za pomocą interfejsu API REST tożsamość zarządzana zostanie utworzona tylko wtedy, gdy określisz sekcję "tożsamość" w treści żądania. Zobacz przykład w przewodniku Szybki start REST — tworzenie fabryki danych.

Jeśli wystąpienie usługi nie ma tożsamości zarządzanej skojarzonej po pobraniu instrukcji tożsamości zarządzanej, możesz je jawnie wygenerować, aktualizując je za pomocą inicjatora tożsamości programowo:

Uwaga

  • Nie można zmodyfikować tożsamości zarządzanej. Aktualizowanie wystąpienia usługi, które ma już tożsamość zarządzaną, nie będzie miało żadnego wpływu, a tożsamość zarządzana pozostaje niezmieniona.
  • Jeśli zaktualizujesz wystąpienie usługi, które ma już tożsamość zarządzaną bez określenia parametru "identity" w obiektach fabryki lub bez określania sekcji "tożsamość" w treści żądania REST, zostanie wyświetlony błąd.
  • Usunięcie wystąpienia usługi spowoduje również usunięcie skojarzonej tożsamości zarządzanej.

Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu programu PowerShell

Wywołaj polecenie Set-AzDataFactoryV2 , a następnie zobaczysz pola "Identity" nowo wygenerowane:

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

Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu interfejsu API REST

Uwaga

Jeśli spróbujesz zaktualizować wystąpienie usługi, które ma już tożsamość zarządzaną bez określenia parametru tożsamości w obiekcie fabryki lub udostępnienia sekcji tożsamości w treści żądania REST, zostanie wyświetlony błąd.

Wywołaj poniższy interfejs API za pomocą sekcji "identity" w treści żądania:

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

Treść żądania: dodaj "identity": { "type": "SystemAssigned" }.

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

Odpowiedź: tożsamość zarządzana jest tworzona automatycznie, a sekcja "tożsamość" jest wypełniana odpowiednio.

{
    "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>"
}

Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu szablonu usługi Azure Resource Manager

Szablon: dodaj "identity": { "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"
        }
    }]
}

Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu zestawu SDK

Wywołaj funkcję create_or_update za pomocą polecenia Identity=new FactoryIdentity(). Przykładowy kod korzystający z platformy .NET:

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

Pobieranie tożsamości zarządzanej przypisanej przez system

Tożsamość zarządzaną można pobrać z witryny Azure Portal lub programowo. W poniższych sekcjach przedstawiono kilka przykładów.

Napiwek

Jeśli tożsamość zarządzana nie jest widoczna, wygeneruj tożsamość zarządzaną, aktualizując wystąpienie usługi.

Pobieranie tożsamości zarządzanej przypisanej przez system przy użyciu witryny Azure Portal

Informacje o tożsamości zarządzanej można znaleźć w witrynie Azure Portal —> twoja fabryka danych —> właściwości.

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

  • Identyfikator obiektu tożsamości zarządzanej
  • Dzierżawa tożsamości zarządzanej

Informacje o tożsamości zarządzanej będą również wyświetlane podczas tworzenia połączonej usługi, która obsługuje uwierzytelnianie tożsamości zarządzanej, takie jak Azure Blob, Azure Data Lake Storage, Azure Key Vault itp.

Aby udzielić uprawnień, wykonaj następujące kroki. Aby uzyskać szczegółowe instrukcje, zobacz Przypisywanie ról platformy Azure przy użyciu witryny Azure Portal.

  1. Wybierz pozycję Kontrola dostępu (IAM) .

  2. Wybierz pozycję Dodaj>Dodaj przypisanie roli.

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

  3. Na karcie Członkowie wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków.

  4. Wybierz subskrypcję platformy Azure.

  5. W obszarze Tożsamość zarządzana przypisana przez system wybierz pozycję Fabryka danych, a następnie wybierz fabrykę danych. Możesz również użyć identyfikatora obiektu lub nazwy fabryki danych (jako nazwy tożsamości zarządzanej), aby znaleźć tę tożsamość. Aby uzyskać identyfikator aplikacji tożsamości zarządzanej, użyj programu PowerShell.

  6. Na karcie Przeglądanie i przypisywanie wybierz pozycję Przejrzyj i przypisz, aby przypisać rolę.

Pobieranie tożsamości zarządzanej przypisanej przez system przy użyciu programu PowerShell

Identyfikator jednostki tożsamości zarządzanej i identyfikator dzierżawy zostaną zwrócone po otrzymaniu określonego wystąpienia usługi w następujący sposób. Użyj identyfikatora PrincipalId , aby udzielić dostępu:

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

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

Identyfikator aplikacji można uzyskać, kopiując powyższy identyfikator podmiotu zabezpieczeń, a następnie uruchamiając poniższe polecenie Microsoft Entra ID z identyfikatorem podmiotu zabezpieczeń jako parametrem.

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

Pobieranie tożsamości zarządzanej przy użyciu interfejsu API REST

Identyfikator jednostki tożsamości zarządzanej i identyfikator dzierżawy zostaną zwrócone po otrzymaniu określonego wystąpienia usługi w następujący sposób.

Wywołaj poniższy interfejs API w żądaniu:

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

Odpowiedź: otrzymasz odpowiedź, jak pokazano w poniższym przykładzie. Sekcja "tożsamość" jest wypełniana odpowiednio.

{
    "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":{

    }
}

Napiwek

Aby pobrać tożsamość zarządzaną z szablonu usługi ARM, dodaj sekcję danych wyjściowych w formacie JSON usługi ARM:

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

Tożsamość zarządzana przypisana przez użytkownika

Tożsamości zarządzane przypisane przez użytkownika można tworzyć, usuwać i zarządzać nimi w usłudze Microsoft Entra ID. Aby uzyskać więcej informacji, zobacz Tworzenie, wyświetlanie listy, usuwanie lub przypisywanie roli do tożsamości zarządzanej przypisanej przez użytkownika przy użyciu witryny Azure Portal.

Aby użyć tożsamości zarządzanej przypisanej przez użytkownika, musisz najpierw utworzyć poświadczenia w wystąpieniu usługi dla interfejsu użytkownika.

Zapoznaj się z następującymi tematami, które przedstawiają, kiedy i jak używać tożsamości zarządzanej:

Zobacz Tożsamości zarządzane dla zasobów platformy Azure — omówienie , aby uzyskać więcej informacji na temat tożsamości zarządzanych dla zasobów platformy Azure, na których oparta jest tożsamość zarządzana w usłudze Azure Data Factory.

Zobacz Ograniczenia tożsamości zarządzanych, które mają zastosowanie również do tożsamości zarządzanych w usłudze Azure Data Factory.