Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł pomaga zrozumieć tożsamość zarządzaną (wcześniej znaną jako tożsamość usługi zarządzanej/MSI) i sposób jej działania w usłudze Azure Synapse.
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ść dla instancji usługi podczas łączenia się z zasobami obsługującymi uwierzytelnianie 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: Można włączyć tożsamość zarządzaną bezpośrednio w wystąpieniu usługi. Kiedy zezwalasz na użycie tożsamości zarządzanej nadanej przez system podczas tworzenia usługi, w usłudze Microsoft Entra zostaje utworzona tożsamość, która jest powiązana 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ść za Ciebie. Azure Synapse Analytics wymaga, aby tożsamość zarządzana przypisana przez system była tworzona razem z obszarem roboczym Synapse.
- Przypisane przez użytkownika: możesz również utworzyć tożsamość zarządzaną jako autonomiczny zasób platformy Azure. Możesz utworzyć zarządzaną tożsamość przypisaną przez użytkownika i przypisać ją do jednego lub więcej wystąpień obszaru roboczego usługi Synapse. 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ń z wykorzystaniem uwierzytelniania tożsamości zarządzanej, w tym także 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, działania sieciowego 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 innych miejscach dokumentacji i w interfejsie użytkownika Synapse Studio na rzecz zgodności wstecznej. Podczas odwoływania się do niej jawnie będziemy wspominać "Tożsamość zarządzana przypisana przez użytkownika".
Uzyskaj tożsamość zarządzaną przypisaną przez system przy użyciu portalu Azure
Informacje o tożsamości zarządzanej można znaleźć w portalu Azure —> obszar roboczy usługi Synapse —> Właściwości.
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.
Wybierz pozycję Kontrola dostępu (IAM).
Wybierz pozycję Dodaj>Dodaj przypisanie roli.
Na karcie Członkowie wybierz pozycję Tożsamość zarządzana, a następnie wybierz pozycję Wybierz członków.
Wybierz subskrypcję platformy Azure.
W obszarze Tożsamość zarządzana przypisana przez system wybierz Obszar roboczy Synapse, a następnie wybierz obszar roboczy. Możesz również użyć identyfikatora obiektu lub nazwy obszaru roboczego (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.
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-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName>).Identity
IdentityType PrincipalId TenantId
------------ ----------- --------
SystemAssigned aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb aaaabbbb-0000-cccc-1111-dddd2222eeee
Identyfikator aplikacji można uzyskać, kopiując powyższy identyfikator główny, a następnie uruchamiając poniższe polecenie Microsoft Entra ID z tym identyfikatorem jako parametrem.
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 : <workspaceName>
Id : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
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 ramach żądania.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Odpowiedź: otrzymasz odpowiedź, jak pokazano w poniższym przykładzie. Sekcja "tożsamość" zostaje odpowiednio wypełniona.
{
"properties": {
"defaultDataLakeStorage": {
"accountUrl": "https://exampledatalakeaccount.dfs.core.windows.net",
"filesystem": "examplefilesystem"
},
"encryption": {
"doubleEncryptionEnabled": false
},
"provisioningState": "Succeeded",
"connectivityEndpoints": {
"web": "https://web.azuresynapse.net?workspace=%2fsubscriptions%2{subscriptionId}%2fresourceGroups%2f{resourceGroupName}%2fproviders%2fMicrosoft.Synapse%2fworkspaces%2f{workspaceName}",
"dev": "https://{workspaceName}.dev.azuresynapse.net",
"sqlOnDemand": "{workspaceName}-ondemand.sql.azuresynapse.net",
"sql": "{workspaceName}.sql.azuresynapse.net"
},
"managedResourceGroupName": "synapseworkspace-managedrg-f77f7cf2-XXXX-XXXX-XXXX-c4cb7ac3cf4f",
"sqlAdministratorLogin": "sqladminuser",
"privateEndpointConnections": [],
"workspaceUID": "e56f5773-XXXX-XXXX-XXXX-a0dc107af9ea",
"extraProperties": {
"WorkspaceType": "Normal",
"IsScopeEnabled": false
},
"publicNetworkAccess": "Enabled",
"cspWorkspaceAdminProperties": {
"initialWorkspaceAdminObjectId": "3746a407-XXXX-XXXX-XXXX-842b6cf1fbcc"
},
"trustedServiceBypassEnabled": false
},
"type": "Microsoft.Synapse/workspaces",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}",
"location": "eastus",
"name": "{workspaceName}",
"identity": {
"type": "SystemAssigned",
"tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222"
},
"tags": {}
}
Napiwek
Aby pobrać tożsamość zarządzaną z szablonu ARM, dodaj sekcję outputs w formacie JSON ARM.
{
"outputs":{
"managedIdentityObjectId":{
"type":"string",
"value":"[reference(resourceId('Microsoft.Synapse/workspaces', parameters('<workspaceName>')), '2018-06-01', 'Full').identity.principalId]"
}
}
}
Generuj przypisaną przez system tożsamość zarządzaną
Tożsamość zarządzana przypisana przez system jest generowana w następujący sposób:
- Podczas tworzenia obszaru roboczego usługi Synapse za pośrednictwem witryny Azure Portal lub programu PowerShell tożsamość zarządzana będzie zawsze tworzona automatycznie.
- Podczas tworzenia obszaru roboczego za pomocą zestawu SDK tożsamość zarządzana zostanie utworzona tylko wtedy, gdy określisz "Identity = new ManagedIdentity" w obiekcie obszaru roboczego usługi Synapse do utworzenia. Zobacz przykład w .NET Quickstart - Create data factory.
- Podczas tworzenia obszaru roboczego usługi Synapse 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 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:
- Generowanie tożsamości zarządzanej przy użyciu programu PowerShell
- Generowanie tożsamości zarządzanej przy użyciu interfejsu API REST
- Generowanie tożsamości zarządzanej przy użyciu szablonu usługi Azure Resource Manager
- Generowanie tożsamości zarządzanej przy użyciu zestawu SDK
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 fabryce lub obiektach obszaru roboczego lub bez określania sekcji "tożsamość" w treści żądania REST, zostanie wyświetlony błąd.
- Usunięcie wystąpienia usługi spowoduje 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 New-AzSynapseWorkspace , a następnie zobaczysz nowo wygenerowane pola "Tożsamość":
PS C:\> $password = ConvertTo-SecureString -String "****" -AsPlainText -Force
PS C:\> $creds = New-Object System.Management.Automation.PSCredential ("ContosoUser", $password)
PS C:\> New-AzSynapseWorkspace -ResourceGroupName <resourceGroupName> -Name <workspaceName> -Location <region> -DefaultDataLakeStorageAccountName <storageAccountName> -DefaultDataLakeStorageFileSystem <fileSystemName> -SqlAdministratorLoginCredential $creds
DefaultDataLakeStorage : Microsoft.Azure.Commands.Synapse.Models.PSDataLakeStorageAccountDetails
ProvisioningState : Succeeded
SqlAdministratorLogin : ContosoUser
VirtualNetworkProfile :
Identity : Microsoft.Azure.Commands.Synapse.Models.PSManagedIdentity
ManagedVirtualNetwork :
PrivateEndpointConnections : {}
WorkspaceUID : <workspaceUid>
ExtraProperties : {[WorkspaceType, Normal], [IsScopeEnabled, False]}
ManagedVirtualNetworkSettings :
Encryption : Microsoft.Azure.Commands.Synapse.Models.PSEncryptionDetails
WorkspaceRepositoryConfiguration :
Tags :
TagsTable :
Location : <region>
Id : /subscriptions/<subsID>/resourceGroups/<resourceGroupName>/providers/
Microsoft.Synapse/workspaces/<workspaceName>
Name : <workspaceName>
Type : Microsoft.Synapse/workspaces
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 obszaru roboczego 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/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}?api-version=2018-06-01
Treść żądania: dodaj "identity": { "type": "SystemAssigned" }.
{
"name": "<workspaceName>",
"location": "<region>",
"properties": {},
"identity": {
"type": "SystemAssigned"
}
}
Odpowiedź: tożsamość zarządzana jest tworzona automatycznie, a sekcja "tożsamość" jest wypełniana odpowiednio.
{
"name": "<workspaceName>",
"tags": {},
"properties": {
"provisioningState": "Succeeded",
"loggingStorageAccountKey": "**********",
"createTime": "2021-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.Synapse/workspaces/<workspaceName>",
"type": "Microsoft.Synapse/workspaces",
"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": "<workspaceName>",
"apiVersion": "2018-06-01",
"type": "Microsoft.Synapse/workspaces",
"location": "<region>",
"identity": {
"type": "SystemAssigned"
}
}]
}
Generowanie tożsamości zarządzanej przypisanej przez system przy użyciu zestawu SDK
Workspace workspace = new Workspace
{
Identity = new ManagedIdentity
{
Type = ResourceIdentityType.SystemAssigned
},
DefaultDataLakeStorage = new DataLakeStorageAccountDetails
{
AccountUrl = <defaultDataLakeStorageAccountUrl>,
Filesystem = <DefaultDataLakeStorageFilesystem>
},
SqlAdministratorLogin = <SqlAdministratorLoginCredentialUserName>
SqlAdministratorLoginPassword = <SqlAdministratorLoginCredentialPassword>,
Location = <region>
};
client.Workspaces.CreateOrUpdate(resourceGroupName, workspaceName, workspace);
Pobierz zarządzaną tożsamość przypisaną przez system
Tożsamość zarządzaną można pobrać z portalu Azure lub w sposób programistyczny. W poniższych sekcjach przedstawiono kilka przykładów.
Napiwek
Jeśli tożsamość zarządzana nie jest widoczna, wygeneruj tożsamość zarządzaną przez aktualizację wystąpienia usługi.
Wykonywanie notatników Spark w usłudze Azure Synapse z tożsamością zarządzaną przypisaną przez system
Notatniki Synapse Spark można łatwo uruchomić, korzystając z tożsamości zarządzanej przypisanej przez system (lub tożsamości zarządzanej obszaru roboczego), włączając opcję Uruchom jako zarządzana tożsamość z menu Konfiguruj sesję. Aby uruchomić notatniki Spark za pomocą zarządzanej tożsamości obszaru roboczego, użytkownicy muszą mieć następujące role RBAC:
- Operator obliczeniowy usługi Synapse w obszarze roboczym lub wybranej puli spark
- Użytkownik poświadczeń Synapse w zarządzanej tożsamości obszaru roboczego
Uwaga
Notesy usługi Synapse i definicje zadań platformy Spark obsługują tylko korzystanie z tożsamości zarządzanej przypisanej przez system za pośrednictwem połączonych usług i interfejsów API mssparkutils. Biblioteka MSAL i inne biblioteki uwierzytelniania nie mogą używać przypisanej przez system tożsamości zarządzanej. Zamiast tego możesz wygenerować podmiot usługi i przechowywać poświadczenia w usłudze Key Vault.
Tożsamość zarządzana przypisana przez użytkownika
Możesz tworzyć, usuwać i zarządzać zarządzanymi tożsamościami przypisanymi przez użytkowników 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 (UAMI), musisz najpierw utworzyć poświadczenia w wystąpieniu usługi.
Uwaga
Tożsamość zarządzana przypisana przez użytkownika już wspiera działania związane z notesami usługi Synapse oraz definiowanie zadań platformy Spark w potoku danych.
Następne kroki
Zapoznaj się z następującymi artykułami, które przedstawiają, kiedy i jak używać tożsamości zarządzanej:
- Przechowywanie poświadczeń w usłudze Azure Key Vault.
- Kopiowanie danych z/do usługi Azure Data Lake Store przy użyciu tożsamości zarządzanych na potrzeby uwierzytelniania zasobów platformy Azure.
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 Synapse.