Autenticare l'accesso e le connessioni alle risorse di Azure con identità gestite in App per la logica di Azure
Si applica a: App per la logica di Azure (a consumo e standard)
Se si desidera evitare di fornire, archiviare e gestire credenziali, segreti o token di Microsoft Entra, è possibile usare un'identità gestita per autenticare l'accesso o le connessioni dal flusso di lavoro dell'app per la logica alle risorse protette di Microsoft Entra. In App per la logica di Azure alcune operazioni del connettore supportano l'uso di un'identità gestita quando è necessario autenticare l'accesso alle risorse protette da Microsoft Entra ID. Azure gestisce questa identità e aiuta a proteggere le informazioni di autenticazione, in modo che non sia necessario gestire questi dati riservati. Per altre informazioni, vedere Informazioni sulle identità gestite per le risorse di Azure
App per la logica di Azure supporta i tipi di identità gestiti seguenti:
L'elenco seguente descrive alcune differenze tra questi tipi di identità gestita:
Una risorsa dell'app per la logica può abilitare e usare un'unica identità assegnata dal sistema.
Una risorsa dell'app per la logica può condividere la stessa identità assegnata dall'utente in un gruppo di altre risorse dell'app per la logica.
Questa guida illustra come completare le attività seguenti:
Abilitare e configurare l'identità assegnata dal sistema per la risorsa dell'app per la logica. Questa guida fornisce un esempio che illustra come usare l'identità per l'autenticazione.
Creare e configurare un'identità assegnata dall'utente. Questa guida illustra come creare questa identità usando il portale di Azure o un modello di Azure Resource Manager (modello di ARM) e come usare l'identità per l'autenticazione. Per Azure PowerShell, l'interfaccia della riga di comando di Azure e l'API REST di Azure, vedere la documentazione seguente:
Tool Documentazione Azure PowerShell Creare un'identità assegnata dall'utente Interfaccia della riga di comando di Azure Creare un'identità assegnata dall'utente API REST di Azure Creare un'identità assegnata dall'utente
Prerequisiti
Account e sottoscrizione di Azure. Se non si ha una sottoscrizione, è possibile iscriversi per creare un account Azure gratuito. È necessario che l'identità gestita e la risorsa di destinazione di Azure a cui accedere usino la stessa sottoscrizione di Azure.
La risorsa di destinazione di Azure a cui si vuole accedere. In questa risorsa è necessario aggiungere il ruolo necessario per l'identità gestita per accedere a tale risorsa per conto dell'app per la logica o della connessione. Per aggiungere un ruolo a un'identità gestita, sono necessarie autorizzazioni di amministratore di Microsoft Entra che possono assegnare ruoli alle identità nel tenant Microsoft Entra corrispondente.
La risorsa e il flusso di lavoro dell'app per la logica in cui si vogliono usare i trigger o le azioni che supportano le identità gestite.
Differenze di identità gestite tra app per la logica A consumo e Standard
In base al tipo di risorsa dell'app per la logica, è possibile abilitare l'identità assegnata dal sistema, l'identità assegnata dall'utente o entrambe contemporaneamente:
App per la logica | Ambiente | Supporto delle identità gestite |
---|---|---|
Consumo | - App per la logica di Azure multi-tenant | - È possibile abilitare l'identità assegnata dal sistema o l'identità assegnata dall'utente, ma non entrambe nell'app per la logica. - È possibile usare l'identità gestita a livello di risorsa dell'app per la logica e di connessione. - Se si crea e si abilita l'identità assegnata dall'utente, l'app per la logica può avere solo una identità assegnata dall'utente alla volta. |
Standard | - App per la logica di Azure a tenant singolo - Ambiente del servizio app v3 (ASEv3) - App per la logica abilitate per Azure Arc |
- È possibile abilitare sia l'identità assegnata dal sistema, abilitata per impostazione predefinita, sia l'identità assegnata dall'utente contemporaneamente. È anche possibile aggiungere più identità assegnate dall'utente all'app per la logica. Tuttavia, l'app per la logica può usare una sola identità gestita alla volta. - È possibile usare l'identità gestita a livello di risorsa dell'app per la logica e di connessione. |
Per informazioni sui limiti delle identità gestite in App per la logica di Azure, vedere Limiti sulle identità gestite per le app per la logica. Per altre informazioni sui tipi di risorse e gli ambienti di app per la logica A consumo e Standard, vedere la documentazione seguente:
Dove è possibile usare un'identità gestita
In App per la logica di Azure è possibile usare un'identità gestita per l'autenticazione solo in specifiche operazioni predefinite e gestite che supportano OAuth con Microsoft Entra ID. Le tabelle seguenti forniscono solo una selezione di esempio. Per un elenco più completo, vedere la documentazione seguente:
Tipi di autenticazione per trigger e azioni che supportano l'autenticazione
Servizi di Azure che supportano le identità gestite per le risorse di Azure
Servizi di Azure che supportano l'autenticazione di Microsoft Entra
Per un flusso di lavoro dell'app per la logica A consumo, nella tabella seguente sono elencati i connettori di esempio che supportano l'autenticazione dell'identità gestita:
Tipo di connettore | Connettori supportati |
---|---|
Predefinito | - Gestione API di Azure - Servizi app di Azure - Funzioni di Azure - HTTP - HTTP + Webhook Nota: le operazioni HTTP possono autenticare le connessioni agli account di Archiviazione di Azure dietro i firewall di Azure con l'identità assegnata dal sistema. Tuttavia, le operazioni HTTP non supportano l'identità assegnata dall'utente per l'autenticazione delle stesse connessioni. |
Gestito | - Servizio app di Azure - Automazione di Azure - Archiviazione BLOB di Azure - Istanza di Azure Container - Azure Cosmos DB - Esplora dati di Azure - Azure Data Factory - Azure Data Lake - Gemelli digitali di Azure - Griglia di eventi di Azure - Hub eventi di Azure - Azure IoT Central V2 - Azure Key Vault - Log di Monitoraggio di Azure - Code di Azure - Azure Resource Manager - Bus di servizio di Azure - Azure Sentinel - Archiviazione tabelle di Azure - Macchina virtuale di Azure - SQL Server |
Abilitare l'identità assegnata dal sistema nel portale di Azure
In una risorsa dell'app per la logica A consumo è necessario abilitare manualmente l'identità assegnata dal sistema.
Nel portale di Azure aprire la risorsa dell'app per la logica A consumo.
Nel menu dell'app per la logica, in Impostazioni, selezionare Identità.
Nella pagina Identità in Assegnata dal sistema selezionare On>Salva. Quando Azure chiede di confermare, selezionare Sì.
Nota
Se viene visualizzato un errore che indica che è possibile avere una sola identità gestita, la risorsa dell'app per la logica è già associata all'identità assegnata dall'utente. Per poter aggiungere l'identità assegnata dal sistema, è necessario prima rimuovere l'identità assegnata dall'utente dalla risorsa dell'app per la logica.
La risorsa dell'app per la logica può ora usare l'identità assegnata dal sistema. Questa identità viene registrata con Microsoft Entra ID ed è rappresentata da un ID oggetto.
Proprietà valore Descrizione ID oggetto (entità di sicurezza) <identity-resource-ID> Un identificatore univoco globale (GUID) che rappresenta l'identità assegnata dal sistema per l'app per la logica in un tenant di Microsoft Entra. Seguire ora i passaggi che consentono all'identità assegnata dal sistema di accedere alla risorsa più avanti in questa guida.
Abilitare l'identità assegnata dal sistema in un modello di ARM
Per automatizzare la creazione e la distribuzione delle risorse dell'app per la logica, è possibile usare un modello di ARM. Per abilitare l'identità assegnata dal sistema per la risorsa dell'app per la logica nel modello, aggiungere l'oggetto Identità e la proprietà figlio tipo alla definizione della risorsa dell'app per la logica nel modello, ad esempio:
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicappName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "SystemAssigned"
},
"properties": {},
<...>
}
Quando Azure crea la definizione di risorsa dell'app per la logica, l'oggetto Identità ottiene le altre proprietà seguenti:
"identity": {
"type": "SystemAssigned",
"principalId": "<principal-ID>",
"tenantId": "<Entra-tenant-ID>"
}
Proprietà (JSON) | valore | Descrizione |
---|---|---|
principalId | <principal-ID> | L'identificatore univoco globale (GUID) dell'oggetto entità servizio per l'identità gestita che rappresenta l'app per la logica nel tenant di Microsoft Entra. Questo GUID viene talvolta visualizzato come "ID oggetto" o objectID. |
tenantId | <Microsoft-Entra-ID-tenant-ID> | L'identificatore univoco globale (GUID) che rappresenta il tenant di Microsoft Entra di cui l'app per la logica è ora membro. All'interno del tenant di Microsoft Entra, l'entità servizio ha lo stesso nome dell'istanza dell'app per la logica. |
Creare un'identità assegnata dall'utente nel portale di Azure
Prima di abilitare l'identità assegnata dall'utente in una risorsa dell'app per la logica A consumo o in una risorsa dell'app per la logica Standard, è necessario creare tale identità come risorsa di Azure separata.
Nella casella di ricerca del portale di Azure immettere identità gestite. Nell'elenco dei risultati selezionare Identità gestite.
Sulla barra degli strumenti della pagina Identità gestite selezionare Crea.
Specificare le informazioni sull'identità gestita e quindi selezionare Rivedi + crea, ad esempio:
Proprietà Richiesto Valore Descrizione Abbonamento Sì <Azure-subscription-name> Il nome della sottoscrizione di Azure Gruppo di risorse Sì <Azure-resource-group-name> Nome del gruppo di risorse di Azure. Creare un nuovo gruppo o selezionare un gruppo esistente. Questo esempio crea un nuovo gruppo denominato fabrikam-managed-identities-RG. Area Sì <Area di Azure> Area di Azure in cui archiviare le informazioni sulla risorsa. Questo esempio usa Stati Uniti occidentali. Nome Sì <user-assigned-identity-name> Nome da assegnare all'identità assegnata dall'utente. Questo esempio usa Fabrikam-user-assigned-identity. Dopo che Azure convalida le informazioni, Azure crea l'identità gestita. A questo punto è possibile aggiungere l'identità assegnata dall'utente alla risorsa dell'app per la logica.
Aggiungere un'identità assegnata dall'utente all'app per la logica nel portale di Azure
Nel portale di Azure aprire la risorsa dell'app per la logica A consumo.
Nel menu dell'app per la logica, in Impostazioni, selezionare Identità.
Nella pagina Identità selezionare Assegnata dall'utente quindi selezionare Aggiungi.
Nel riquadro Aggiungi identità gestita assegnata dall'utente seguire questa procedura:
Nell'elenco Selezionare una sottoscrizione selezionare la sottoscrizione di Azure.
Nell'elenco contenente tutte le identità gestite nella sottoscrizione, selezionare l'identità assegnata dall'utente desiderata. Per filtrare l'elenco, nella casella di ricerca Identità gestite assegnate dall'utente immettere il nome per l'identità o il gruppo di risorse.
Al termine, selezionare Aggiungi.
Nota
Se viene visualizzato un errore che indica che è possibile avere una sola identità gestita, l'app per la logica è già associata all'identità assegnata dal sistema. Per poter aggiungere l'identità assegnata dall'utente, è necessario prima disabilitare l'identità assegnata dal sistema.
L'app per la logica è ora associata all'identità assegnata dall'utente.
A questo punto, seguire la procedura che consente di assegnare all'identità l'accesso alla risorsa descritta più avanti in questa guida.
Creare un'identità assegnata dall'utente in un modello di ARM
Per automatizzare la creazione e la distribuzione delle risorse dell'app per la logica, è possibile usare un modello di ARM. Questi modelli supportano le identità assegnate dall'utente per l'autenticazione.
Nella sezione risorse del modello la definizione della risorsa dell'app per la logica richiede gli elementi seguenti:
Oggetto Identità con la proprietà Tipo impostata su UserAssigned
Oggetto userAssignedIdentities figlio che specifica la risorsa e il nome assegnati dall'utente
Questo esempio mostra una risorsa dell'app per la logica A consumo e una definizione del flusso di lavoro per una richiesta HTTP PUT con un oggetto Identità non parametrizzato. La risposta alla richiesta PUT e all'operazione GET successiva include anche questo oggetto Identità:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {<template-parameters>},
"resources": [
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicappName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>": {}
}
},
"properties": {
"definition": {<logic-app-workflow-definition>}
},
"parameters": {},
"dependsOn": []
},
],
"outputs": {}
}
Se il modello include anche la definizione di risorsa dell'identità gestita, è possibile parametrizzare l'oggetto Identità. Nell'esempio seguente viene illustrato come l'oggetto userAssignedIdentities figlio fa riferimento a una variabile userAssignedIdentityName definita nella sezione variabili del modello. Questa variabile fa riferimento all'ID risorsa per l'identità assegnata dall'utente.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"Template_LogicAppName": {
"type": "string"
},
"Template_UserAssignedIdentityName": {
"type": "securestring"
}
},
"variables": {
"logicAppName": "[parameters(`Template_LogicAppName')]",
"userAssignedIdentityName": "[parameters('Template_UserAssignedIdentityName')]"
},
"resources": [
{
"apiVersion": "2016-06-01",
"type": "Microsoft.logic/workflows",
"name": "[variables('logicAppName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]": {}
}
},
"properties": {
"definition": {<logic-app-workflow-definition>}
},
"parameters": {},
"dependsOn": [
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]"
]
},
{
"apiVersion": "2018-11-30",
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('Template_UserAssignedIdentityName')]",
"location": "[resourceGroup().location]",
"properties": {}
}
]
}
Concedere all'identità l'accesso alle risorse
Prima di poter usare l'identità gestita dell'app per la logica per l'autenticazione, è necessario configurare l'accesso per l'identità nella risorsa di Azure di destinazione in cui si prevede di usare l'identità. Il modo in cui si configura l'accesso varia in base alla risorsa di destinazione.
Nota
Quando un'identità gestita ha accesso a una risorsa di Azure nella stessa sottoscrizione, l'identità può accedere solo a tale risorsa. Tuttavia, in alcuni trigger e azioni che supportano le identità gestite, è necessario prima selezionare il gruppo di risorse di Azure che contiene la risorsa di destinazione. Se l'identità non ha accesso a livello di gruppo di risorse, non sono elencate risorse in tale gruppo, nonostante l'accesso alla risorsa di destinazione.
Per gestire questo comportamento, è anche necessario concedere all'identità l'accesso al gruppo di risorse, non solo alla risorsa. Analogamente, se è necessario selezionare la sottoscrizione prima di poter selezionare la risorsa di destinazione, è necessario concedere all'identità l'accesso alla sottoscrizione.
In alcuni casi, potrebbe essere necessaria l'identità per ottenere l'accesso alla risorsa associata. Si supponga, ad esempio, di avere un'identità gestita per un'app per la logica che deve accedere per aggiornare le impostazioni dell'applicazione per la stessa app per la logica da un flusso di lavoro. È necessario concedere a tale identità l'accesso all'app per la logica associata.
Ad esempio, per accedere a un account di archiviazione BLOB di Azure o a un insieme di credenziali delle chiavi di Azure con l'identità gestita, è necessario configurare rispettivamente il controllo degli accessi in base al ruolo di Azure (Azure RBAC) e assegnare il ruolo appropriato per tale identità all'account di archiviazione o all'insieme di credenziali delle chiavi.
I passaggi descritti in questa sezione descrivono come assegnare l'accesso basato sui ruoli usando il portale di Azure e il modello di Azure Resource Manager (modello di ARM). Per Azure PowerShell, l'interfaccia della riga di comando di Azure e l'API REST di Azure, vedere la documentazione seguente:
Tool | Documentazione |
---|---|
Azure PowerShell | Aggiungi assegnazione di ruolo |
Interfaccia della riga di comando di Azure | Aggiungi assegnazione di ruolo |
API REST di Azure | Aggiungi assegnazione di ruolo |
Per un insieme di credenziali delle chiavi di Azure, è anche possibile creare criteri di accesso per l'identità gestita nell'insieme di credenziali delle chiavi e assegnare le autorizzazioni appropriate per tale identità nell'insieme di credenziali delle chiavi. I passaggi successivi di questa sezione descrivono come completare questa attività usando il portale di Azure. Per i modelli di Resource Manager, PowerShell e l'interfaccia della riga di comando di Azure, vedere la documentazione seguente:
Tool | Documentazione |
---|---|
Modello di Azure Resource Manager (modello di ARM) | Definizione della risorsa dei criteri di accesso di Key Vault |
Azure PowerShell | Assegnare criteri di accesso a Key Vault |
Interfaccia della riga di comando di Azure | Assegnare criteri di accesso a Key Vault |
Assegnare l'accesso basato sui ruoli a un'identità gestita usando il portale di Azure
Per usare un'identità gestita per l'autenticazione, alcune risorse di Azure, ad esempio gli account di archiviazione di Azure, richiedono di assegnare tale identità a un ruolo con le autorizzazioni appropriate per la risorsa di destinazione. Altre risorse di Azure, ad esempio Gli insiemi di credenziali delle chiavi di Azure, supportano più opzioni, quindi è possibile scegliere l'accesso in base al ruolo o un criterio di accesso con le autorizzazioni appropriate per la risorsa di destinazione per tale identità.
Nel portale di Azure aprire la risorsa in cui si vuole usare l'identità.
Nel menu della risorsa selezionare Controllo di accesso (IAM)>Aggiungi>assegnazione di ruolo.
Nota
Se non si dispone delle autorizzazioni per assegnare i ruoli, l'opzione Aggiungi assegnazione di ruolo sarà disabilitata. Per altre informazioni, vedere Ruoli predefiniti di Microsoft Entra.
Assegnare il ruolo necessario all'identità gestita. Nella scheda Ruolo assegnare un ruolo che fornisce all'identità l'accesso necessario alla risorsa corrente.
Per questo esempio, assegnare il ruolo denominato Collaboratore ai dati del BLOB di archiviazione, che include l'accesso in scrittura per i BLOB in un contenitore di Archiviazione di Azure. Per altre informazioni sui ruoli specifici del contenitore di archiviazione, vedere Ruoli che possono accedere ai BLOB in un contenitore di Archiviazione di Azure.
Scegliere quindi l'identità gestita in cui si vuole assegnare il ruolo. In Assegna accesso a , selezionare Identità gestita>Aggiungi membri.
In base al tipo di identità gestita, selezionare o specificare i valori seguenti:
Type Istanza del servizio di Azure Abbonamento Member Assegnata dal sistema App per la logica <Azure-subscription-name> <nome-app-per-la-logica> Assegnata dall'utente Non applicabile <Azure-subscription-name> <your-user-assigned-identity-name> Per altre informazioni sull'assegnazione dei ruoli, vedere Assegnare ruoli usando il portale di Azure.
Al termine, è possibile usare l'identità per autenticare l'accesso per trigger e azioni che supportano le identità gestite.
Per informazioni più generali su questa attività, vedere Assegnare un accesso all'identità gestita a una risorsa di Azure o a un'altra risorsa.
Creare un criterio di accesso usando il portale di Azure
Per usare un'identità gestita per l'autenticazione, altre risorse di Azure supportano o richiedono anche di creare criteri di accesso con le autorizzazioni appropriate per la risorsa di destinazione per tale identità. Altre risorse di Azure, ad esempio gli account di archiviazione di Azure, richiedono invece di assegnare tale identità a un ruolo con le autorizzazioni appropriate per la risorsa di destinazione.
Nel portale di Azure aprire la risorsa di destinazione in cui si vuole usare l'identità. Questo esempio usa un insieme di credenziali delle chiavi di Azure come risorsa di destinazione.
Nel menu della risorsa selezionare Criteri di accesso>Crea, che apre il riquadro Crea criteri di accesso.
Nota
Se la risorsa non ha l'opzione Criteri di accesso, provare ad assegnare invece un'assegnazione di ruolo.
Nella scheda Autorizzazioni selezionare le autorizzazioni necessarie per l'identità per accedere alla risorsa di destinazione.
Ad esempio, per usare l'identità con l'operazione Elenca segreti del connettore gestito di Azure Key Vault, l'identità necessita delle autorizzazioni Elenco. Quindi, nella colonna Autorizzazioni segrete selezionare Elenco.
Al termine, selezionare Avanti. Nella scheda Entità di sicurezza individuare e selezionare l'identità gestita, ovvero un'identità assegnata dall'utente in questo esempio.
Ignorare il passaggio facoltativo Applicazione, selezionare Avantie completare la creazione dei criteri di accesso.
La sezione successiva illustra come usare un'identità gestita con un trigger o un'azione per autenticare l'accesso. L'esempio continua con i passaggi di una sezione precedente in cui si configura l'accesso per un'identità gestita usando il controllo degli accessi in base al ruolo e un account di archiviazione di Azure come esempio. Tuttavia, i passaggi generali per usare un'identità gestita per l'autenticazione sono gli stessi.
Eseguire l'autenticazione dell'accesso con l'identità gestita
Dopo aver abilitato l'identità gestita per la risorsa di app per la logica e aver assegnato all'identità l'accesso alla risorsa o al servizio di destinazione Azure, è possibile usare l'identità nei trigger e nelle azioni che supportano le identità gestite.
Importante
Se si ha una funzione di Azure in cui si vuole usare l'identità assegnata dal sistema, abilitare prima l'autenticazione per le funzioni di Azure.
La seguente procedura mostra come usare l'identità gestita con un trigger o un'azione attraverso il portale di Azure. Per specificare l'identità gestita nella definizione JSON sottostante di un trigger o di un'azione, vedere Autenticazione dell'identità gestita.
Nel portale di Azure aprire la risorsa dell'app per la logica A consumo.
Se non è ancora stato fatto, aggiungere il trigger o l'azione che supporta le identità gestite.
Nota
Non tutte le operazioni del connettore supportano l'aggiunta di un tipo di autenticazione. Per altre informazioni, vedere Tipi di autenticazione per trigger e azioni che supportano l'autenticazione.
Nel trigger o nell'azione aggiunta seguire questa procedura:
Operazioni predefinite del connettore che supportano l'autenticazione dell'identità gestita
Questi passaggi continuano usando l'azione HTTP come esempio.
Nell'elenco Parametri avanzati aggiungere la proprietà Autenticazione, se la proprietà non è già visualizzata.
Ora, sia la proprietà Autenticazione che l'elenco Tipo di autenticazione sono visualizzati nell'azione.
Nell'elenco Tipo di autenticazione selezionare Identità gestita.
La sezione Autenticazione mostra ora le opzioni seguenti:
Elenco di identità gestite in cui è possibile selezionare un'identità gestita specifica
La proprietà Destinatari viene visualizzata in trigger e azioni specifici in modo da poter impostare l'ID risorsa per la risorsa o il servizio di destinazione di Azure. In caso contrario, per impostazione predefinita, la proprietà Destinatari usa l'ID risorsa
https://management.azure.com/
che è l'ID risorsa per Azure Resource Manager.
Nell'elenco di identità gestite selezionare l'identità da usare, ad esempio:
Nota
L'opzione predefinita selezionata è l'identità gestita assegnata dal sistema, anche quando non sono abilitate identità gestite.
Per usare correttamente un'identità gestita, è prima necessario abilitarla nell'app per la logica. In un'app per la logica A consumo è possibile avere l'identità gestita assegnata dal sistema o assegnata dall'utente, ma non entrambe.
Per altre informazioni, vedere Esempio: Autenticare un trigger o un'azione predefinita con un'identità gestita.
Operazioni del connettore gestito che supportano l'autenticazione dell'identità gestita
Nell'elenco Autenticazione del riquadro Crea connessione selezionare Identità gestita, ad esempio:
Nel riquadro successivo, per Nome connessione, specificare un nome da usare per la connessione.
Per il tipo di autenticazione, scegliere una delle opzioni seguenti in base al connettore gestito:
Autenticazione singola: questi connettori supportano un solo tipo di autenticazione, ovvero l'identità gestita in questo caso.
Nell'elenco Identità gestita selezionare l'identità gestita attualmente abilitata.
Al termine, selezionare Crea nuovo.
Autenticazione multipla: questi connettori supportano più tipi di autenticazione, ma è possibile selezionare e usare un solo tipo alla volta.
Questi passaggi continuano usando un'azione di Archiviazione BLOB di Azure come esempio.
Per altre informazioni, vedere Esempio: Autenticare un trigger o un'azione di connettore gestito con un'identità gestita.
Esempio: autenticare un trigger o un'azione predefinita con un'identità gestita
Il trigger HTTP predefinito o l'azione possono usare l'identità assegnata dal sistema abilitata nella risorsa dell'app per la logica. In generale, il trigger o l'azione HTTP usa le seguenti proprietà per specificare la risorsa o l'entità a cui si vuole accedere:
Proprietà | Richiesto | Descrizione |
---|---|---|
Metodo | Sì | Il metodo HTTP usato dall'operazione che si vuole eseguire |
URI | Sì | L'URL dell'endpoint per l'accesso alla risorsa o all'entità di destinazione di Azure. La sintassi dell'URI include in genere l'ID risorsa per la risorsa o il servizio di Azure di destinazione. |
Intestazioni | No | Eventuali valori di intestazione necessari o che si vuole includere nella richiesta in uscita, ad esempio il tipo di contenuto |
Query | No | Tutti i parametri di query necessari o da includere nella richiesta. Ad esempio, i parametri di query per un'operazione specifica o per la versione API dell'operazione che si vuole eseguire. |
Autenticazione | Sì | Il tipo di autenticazione da usare per autenticare l'accesso alla risorsa o al servizio di destinazione di Azure |
Come esempio specifico, si supponga di voler eseguire l'operazione Snapshot BLOB in un BLOB nell'account di archiviazione di Azure in cui è stato precedentemente configurato l'accesso per l'identità. Tuttavia, il connettore di archiviazione BLOB di Azure attualmente non offre questa operazione. In alternativa, è possibile eseguire questa operazione usando l'azione HTTP o un'altra operazione dell'API REST del servizio BLOB.
Importante
Per accedere agli account di archiviazione di Azure dietro i firewall usando le identità connettore e gestite di Archiviazione BLOB di Azure, assicurarsi di configurare anche l'account di archiviazione con l'eccezione che consente l'accesso da parte di servizi Microsoft attendibili.
Per eseguire l'operazione Snapshot BLOB, l'azione HTTP specifica le proprietà seguenti:
Proprietà | Richiesto | Valore di esempio | Descrizione |
---|---|---|---|
URI | Sì | https://<storage-account-name>/<folder-name>/{name} |
L'ID risorsa per un file di archiviazione BLOB di Azure nell'ambiente globale (pubblico) di Azure che usa questa sintassi |
Metodo | Sì | PUT |
Il metodo HTTP usato dall'operazione Snapshot BLOB |
Intestazioni | Per Archiviazione di Azure | x-ms-blob-type = BlockBlob x-ms-version = 2024-05-05 x-ms-date = formatDateTime(utcNow(),'r') |
I valori di intestazione x-ms-blob-type , x-ms-version e x-ms-date richiesti per le operazioni di Archiviazione di Azure. Importante: nel trigger HTTP in uscita e nelle richieste di azione per Archiviazione di Azure, l'intestazione richiede la proprietà x-ms-version e la versione dell'API per l'operazione che si vuole eseguire. x-ms-date deve essere la data corrente. In caso contrario, il flusso di lavoro ha esito negativo con un errore 403 FORBIDDEN . Per ottenere la data corrente nel formato richiesto, è possibile usare l'espressione nel valore di esempio. Per altre informazioni, vedere la documentazione seguente: - Intestazioni delle richieste - Snapshot BLOB - Controllo delle versioni per i servizi di Archiviazione di Azure |
Query | Solo per l'operazione snapshot BLOB | comp = snapshot |
Nome e valore del parametro di query per l'operazione. |
Nella finestra di progettazione del flusso di lavoro aggiungere qualsiasi trigger desiderato, quindi aggiungere l'azione HTTP.
L'esempio seguente mostra un'azione HTTP di esempio con tutti i valori di proprietà descritti in precedenza da usare per l'operazione Snapshot BLOB:
Nell'azione HTTP, aggiungere ora la proprietà Autenticazione. Nell'elenco Parametri avanzati selezionare Autenticazione.
La sezione Autenticazione viene ora visualizzata nell'azione HTTP.
Nota
Non tutti i trigger e le azioni supportano l'aggiunta di un tipo di autenticazione. Per altre informazioni, vedere Tipi di autenticazione per trigger e azioni che supportano l'autenticazione.
Nell'elenco Tipo di autenticazione selezionare Identità gestita.
Nell'elenco delle identità gestite selezionare una delle opzioni disponibili in base allo scenario.
Se si configura l'identità assegnata dal sistema, selezionare Identità gestita assegnata dal sistema.
Se si configura l'identità assegnata dall'utente, selezionare tale identità.
Questo esempio continua con l'Identità gestita assegnata dal sistema.
In alcuni trigger e azioni viene visualizzata la proprietà Destinatari in modo che sia possibile impostare l'ID risorsa per la risorsa o il servizio di Azure di destinazione.
Ad esempio, per autenticare l'accesso a una risorsa di Key Vault nel cloud di Azure globale, è necessario impostare la proprietà Destinatari esattamente sull'ID risorsa seguente:
https://vault.azure.net
Se non si imposta la proprietà Destinatari, per impostazione predefinita questa proprietà usa l'ID risorsa
https://management.azure.com/
che è l'ID risorsa per Azure Resource Manager.Importante
Accertarsi che questo ID della risorsa di destinazione corrisponda esattamente al valore previsto da Microsoft Entra ID. In caso contrario, è possibile che venga visualizzato un errore
400 Bad Request
o401 Unauthorized
. Pertanto, se l'ID risorsa comprende barre finali, assicurarsi di includerle. In caso contrario, non includerle.Ad esempio, l'ID risorsa per tutti gli account di archiviazione BLOB di Azure richiede una barra finale. Tuttavia, l'ID risorsa per un account di archiviazione specifico non richiede una barra finale. Controllare gli ID risorsa per i servizi di Azure che supportano Microsoft Entra ID.
Questo esempio imposta la proprietà Destinatari su
https://storage.azure.com/
in modo che i token di accesso usati per l'autenticazione siano validi per tutti gli account di archiviazione. Tuttavia, è anche possibile specificare l'URL del servizio radice,https://<your-storage-account>.blob.core.windows.net
per un account di archiviazione specifico.Per altre informazioni sull'autorizzazione dell'accesso con Microsoft Entra ID per Archiviazione di Azure, vedere la documentazione seguente:
Continuare a compilare il flusso di lavoro nel modo desiderato.
Esempio: Autenticare il trigger o l'azione del connettore gestito con un'identità gestita
Il connettore gestito di Azure Resource Manager ha un'azione denominata Leggere una risorsa, che può usare l'identità gestita abilitata nella risorsa dell'app per la logica. Questo esempio illustra come usare l'identità gestita assegnata dal sistema con un connettore gestito.
Nella finestra di progettazione del flusso di lavoro aggiungere l'azione Azure Resource Manager denominata Leggere una risorsa.
Nell'elenco Autenticazione del riquadro Crea connessione selezionare Identità gestita, quindi selezionare Accedi.
Nota
In altri connettori l'elenco Tipo di autenticazione mostra invece Identità gestita di App per la logica, per cui selezionare questa opzione.
Specificare un nome per la connessione e selezionare l'identità gestita da usare.
Se è stata abilitata l'identità assegnata dal sistema, l'elenco Identità gestita seleziona automaticamente l'identità gestita assegnata dal sistema. Se invece è stata abilitata un'identità assegnata dall'utente, l'elenco seleziona automaticamente l'identità assegnata dall'utente.
In questo esempio, l'identità gestita assegnata dal sistema è l'unica selezione disponibile.
Nota
Se l'identità gestita non è abilitata quando si tenta di creare o modificare la connessione o se l'identità gestita è stata rimossa mentre è ancora presente una connessione abilitata per la suddetta, viene visualizzato un errore che indica che è necessario abilitare l'identità e concedere l'accesso alla risorsa di destinazione.
Al termine, selezionare Crea nuovo.
Dopo che la finestra di progettazione ha creato correttamente la connessione, è in grado di recuperare tutti i valori dinamici, il contenuto o lo schema usando l'autenticazione dell'identità gestita.
Continuare a compilare il flusso di lavoro nel modo desiderato.
Definizione e connessioni delle risorse dell'app per la logica che usano un'identità gestita
Una connessione che abilita e usa un'identità gestita è un tipo di connessione speciale che funziona solo con un'identità gestita. In fase di esecuzione, la connessione usa l'identità gestita abilitata nella risorsa dell'app per la logica. App per la logica di Azure controlla se tutte le operazioni del connettore gestito nel flusso di lavoro sono configurate per usare l'identità gestita e che sono presenti tutte le autorizzazioni necessarie per usare l'identità gestita per accedere alle risorse di destinazione specificate dalle operazioni del connettore. Se questo controllo ha esito positivo, App per la logica di Azure recupera il token Microsoft Entra associato all'identità gestita, usa tale identità per autenticare l'accesso alla risorsa di Azure di destinazione ed esegue le operazioni configurate nel flusso di lavoro.
In una risorsa dell'app per la logica A consumo la configurazione della connessione viene salvata nell'oggetto parameters
della definizione della risorsa, che contiene l'oggetto $connections
che include puntatori all'ID risorsa della connessione insieme all'ID risorsa dell'identità gestita quando l'identità assegnata dall'utente è abilitata.
Questo esempio mostra la configurazione dell'oggetto parameters
quando l'app per la logica abilita l'identità assegnata dal sistema:
"parameters": {
"$connections": {
"value": {
"<action-name>": {
"connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
"connectionName": "<connector-name>",
"connectionProperties": {
"authentication": {
"type": "ManagedServiceIdentity"
}
},
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
}
}
}
}
Questo esempio mostra la configurazione dell'oggetto parameters
quando l'app per la logica abilita l'identità gestita assegnata dall'utente:
"parameters": {
"$connections": {
"value": {
"<action-name>": {
"connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
"connectionName": "<connector-name>",
"connectionProperties": {
"authentication": {
"type": "ManagedServiceIdentity",
"identity": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/microsoft.managedidentity/userassignedidentities/<managed-identity-name>"
}
},
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
}
}
}
}
Modello di ARM per le connessioni API e le identità gestite
Se si usa un modello di ARM per automatizzare la distribuzione e il flusso di lavoro include una connessione API, creata da un connettore gestito che usa un'identità gestita, è necessario eseguire un passaggio aggiuntivo.
In un modello di ARM, la definizione di risorsa connettore sottostante è diversa in base al fatto che si disponga di una risorsa dell'app per la logica A consumo o Standard e se il connettore mostri opzioni di autenticazione singola o multi-autenticazione.
Gli esempi seguenti si applicano alle risorse dell'app per la logica A consumo e mostrano come la definizione della risorsa connettore sottostante differisce tra un connettore di autenticazione singola e un connettore con autenticazione multipla.
Autenticazione singola
Questo esempio mostra la definizione di risorsa di connessione sottostante per un'azione connettore che supporta un solo tipo di autenticazione e usa un'identità gestita in un flusso di lavoro dell'app per la logica A consumo in cui la definizione include gli attributi seguenti:
La proprietà
kind
è impostata suV1
per un'app per la logica A consumo.La proprietà
parameterValueType
è impostata suAlternative
.
{
"type": "Microsoft.Web/connections",
"apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
"name": "[variables('connections_<connector-name>_name')]",
"location": "[parameters('location')]",
"kind": "V1",
"properties": {
"alternativeParameterValues": {},
"api": {
"id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureautomation')]"
},
"authenticatedUser": {},
"connectionState": "Enabled",
"customParameterValues": {},
"displayName": "[variables('connections_<connector-name>_name')]",
"parameterValueSet": {},
"parameterValueType": "Alternative"
}
},
Autenticazione multipla
Questo esempio mostra la definizione di risorsa di connessione sottostante per un'azione del connettore che supporta più tipi di autenticazione e usa un'identità gestita in un flusso di lavoro dell'app per la logica A consumo in cui la definizione include gli attributi seguenti:
La proprietà
kind
è impostata suV1
per un'app per la logica A consumo.L'oggetto
parameterValueSet
include una proprietàname
impostata sumanagedIdentityAuth
e unavalues
impostata su un oggetto vuoto.
{
"type": "Microsoft.Web/connections",
"apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
"name": "[variables('connections_<connector-name>_name')]",
"location": "[parameters('location')]",
"kind": "V1",
"properties": {
"alternativeParameterValues":{},
"api": {
"id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), 'azureblob')]"
},
"authenticatedUser": {},
"connectionState": "Enabled",
"customParameterValues": {},
"displayName": "[variables('connections_<connector-name>_name')]",
"parameterValueSet":{
"name": "managedIdentityAuth",
"values": {}
},
"parameterValueType": "Alternative"
}
}
Configurare il controllo avanzato sull'autenticazione della connessione API
Quando il flusso di lavoro dell'app per la logica Standard usa una connessione API creata da un connettore gestito, App per la logica di Azure comunica con la risorsa di destinazione, ad esempio l'account di posta elettronica, l'insieme di credenziali delle chiavi e così via, usando due connessioni:
La connessione n. 1 viene configurata con l'autenticazione per l'archivio token interno.
La connessione n. 2 è configurata con l'autenticazione per la risorsa di destinazione.
Tuttavia, quando un flusso di lavoro dell'app per la logica A consumo usa una connessione API, la connessione n. 1 viene astratta dall'utente senza alcuna opzione di configurazione. Con la risorsa dell'app per la logica Standard, si ha maggiore controllo sull'app per la logica e sui flussi di lavoro. Per impostazione predefinita, la connessione n. 1 viene configurata automaticamente per l'uso dell'identità assegnata dal sistema.
Se lo scenario richiede un controllo più corretto sull'autenticazione delle connessioni API, facoltativamente è possibile modificare l'autenticazione per la connessione n. 1 dall'identità assegnata dal sistema predefinita a qualsiasi identità assegnata dall'utente aggiunta all'app per la logica. Questa autenticazione si applica a ogni connessione API, quindi è possibile combinare identità assegnate dal sistema e assegnate dall'utente tra connessioni diverse alla stessa risorsa di destinazione.
Nel file connections.json dell'app per la logica Standard, che archivia le informazioni su ogni connessione API, ogni definizione di connessione include due sezioni authentication
, ad esempio:
"keyvault": {
"api": {
"id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault"
},
"authentication": {
"type": "ManagedServiceIdentity",
},
"connection": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>"
},
"connectionProperties": {
"authentication": {
"audience": "https://vault.azure.net",
"type": "ManagedServiceIdentity"
}
},
"connectionRuntimeUrl": "<connection-runtime-URL>"
}
La prima sezione
authentication
esegue il mapping alla connessione n. 1.Questa sezione descrive l'autenticazione usata per comunicare con l'archivio token interno. In passato, questa sezione era sempre impostata su
ManagedServiceIdentity
per un'app che viene distribuita in Azure e non aveva opzioni configurabili.La seconda sezione
authentication
esegue il mapping alla connessione n. 2.Questa sezione descrive l'autenticazione usata per comunicare con la risorsa di destinazione può variare in base al tipo di autenticazione selezionato per tale connessione.
Perché modificare l'autenticazione per l'archivio token?
In alcuni scenari, è possibile condividere e usare la stessa connessione API tra più risorse dell'app per la logica, ma non aggiungere l'identità assegnata dal sistema per ogni risorsa dell'app per la logica ai criteri di accesso della risorsa di destinazione.
In altri scenari, potrebbe non essere necessario configurare completamente l'identità assegnata dal sistema nell'app per la logica, in modo da poter modificare completamente l'autenticazione in un'identità assegnata dall'utente e disabilitare completamente l'identità assegnata dal sistema.
Modificare l'autenticazione per l'archivio token
Nel portale di Azure, aprire la risorsa dell’app per la logica Standard.
Nel menu delle risorse, in Flussi di lavoro, selezionare Connessioni.
Nel riquadro Connessioni selezionare Vista JSON.
Nell'editor JSON trovare la sezione
managedApiConnections
che contiene le connessioni API in tutti i flussi di lavoro nella risorsa dell'app per la logica.Trovare la connessione in cui si vuole aggiungere un'identità gestita assegnata dall'utente.
Si supponga, ad esempio, che il flusso di lavoro abbia una connessione di Azure Key Vault:
"keyvault": { "api": { "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault" }, "authentication": { "type": "ManagedServiceIdentity" }, "connection": { "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>" }, "connectionProperties": { "authentication": { "audience": "https://vault.azure.net", "type": "ManagedServiceIdentity" } }, "connectionRuntimeUrl": "<connection-runtime-URL>" }
Nella definizione di connessione completare i passaggi seguenti:
Trovare la prima sezione
authentication
. Se nella sezioneauthentication
non è presente alcuna proprietàidentity
, l'app per la logica usa in modo implicito l'identità assegnata dal sistema.Aggiungere una proprietà
identity
usando l'esempio in questo passaggio.Impostare il valore della proprietà sull'ID risorsa per l'identità assegnata dall'utente.
"keyvault": { "api": { "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault" }, "authentication": { "type": "ManagedServiceIdentity", // Add "identity" property here "identity": "/subscriptions/<Azure-subscription-ID>/resourcegroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-resource-ID>" }, "connection": { "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>" }, "connectionProperties": { "authentication": { "audience": "https://vault.azure.net", "type": "ManagedServiceIdentity" } }, "connectionRuntimeUrl": "<connection-runtime-URL>" }
Nel portale di Azure passare alla risorsa di destinazione e concedere l'accesso all'identità gestita assegnata dall'utente, in base alle esigenze della risorsa di destinazione.
Ad esempio, per Azure Key Vault, aggiungere l'identità ai criteri di accesso dell'insieme di credenziali delle chiavi. Per Archiviazione BLOB di Azure assegnare il ruolo necessario per l'identità all'account di archiviazione.
Disabilitare l'identità gestita
Per interrompere l'uso dell'identità gestita per l'autenticazione, rimuovere prima di tutto l'accesso dell'identità alla risorsa di destinazione. Successivamente, nella risorsa dell'app per la logica disattivare l'identità assegnata dal sistema o rimuovere l'identità assegnata dall'utente.
Quando si disabilita l'identità gestita nella risorsa dell'app per la logica, si rimuove la funzionalità per tale identità per richiedere l'accesso alle risorse di Azure a cui l'identità ha accesso.
Nota
Se si disabilita l'identità assegnata dal sistema, tutte le connessioni usate dai flussi di lavoro dell'app per la logica non funzioneranno in fase di esecuzione, anche se si abilita immediatamente l'identità. Questo comportamento si verifica perché la disabilitazione dell'identità elimina l'ID oggetto. Ogni volta che si abilita l'identità, Azure genera l'identità con un ID oggetto diverso e univoco. Per risolvere questo problema, è necessario ricreare le connessioni in modo che usino l'ID oggetto corrente per l'identità assegnata dal sistema corrente.
Provare a evitare di disabilitare l'identità assegnata dal sistema il più possibile. Se si vuole rimuovere l'accesso dell'identità alle risorse di Azure, rimuovere l'assegnazione di ruolo dell'identità dalla risorsa di destinazione. Se si elimina la risorsa dell'app per la logica, Azure rimuove automaticamente l'identità gestita da Microsoft Entra ID.
I passaggi descritti in questa sezione illustrano l'uso del portale di Azure e del modello di Azure Resource Manager (modello di ARM). Per Azure PowerShell, l'interfaccia della riga di comando di Azure e l'API REST di Azure, vedere la documentazione seguente:
Tool | Documentazione |
---|---|
Azure PowerShell | 1. Rimuovere l'assegnazione di ruolo. 2. Eliminare l'identità assegnata dall'utente. |
Interfaccia della riga di comando di Azure | 1. Rimuovere l'assegnazione di ruolo. 2. Eliminare l'identità assegnata dall'utente. |
API REST di Azure | 1. Rimuovere l'assegnazione di ruolo. 2. Eliminare l'identità assegnata dall'utente. |
Per altre informazioni, vedere Rimuovere le assegnazioni di ruolo di Azure.
Disabilitare l'identità gestita nel portale di Azure
Per rimuovere l'accesso per l'identità gestita, rimuovere l'assegnazione di ruolo dell'identità dalla risorsa di destinazione e quindi disabilitare l'identità gestita.
Rimuovere l'assegnazione di ruolo
La procedura seguente consente di rimuovere l'accesso alla risorsa di destinazione dall'identità gestita:
Nel portale di Azure passare alla risorsa di destinazione di Azure in cui si vuole rimuovere l'accesso per l'identità gestita.
Nel menu della risorsa di destinazione selezionare Controllo di accesso (IAM). Nella barra degli strumenti selezionare Assegnazioni di ruoli.
Nell'elenco dei ruoli selezionare le identità gestite che si vuole rimuovere. Nella barra degli strumenti selezionare Rimuovi.
Suggerimento
Se l'opzione Rimuovi è disabilitata, è probabile che non si abbiano le autorizzazioni. Per altre informazioni sulle autorizzazioni che consentono di gestire i ruoli per le risorse, vedere Autorizzazioni del ruolo di amministratore in Microsoft Entra ID.
Disabilitare l'identità gestita nella risorsa dell'app per la logica
Nel portale di Azure aprire la risorsa app per la logica.
Nel menu delle risorse dell'app per la logica in Impostazioni selezionare Identità e quindi seguire la procedura per l'identità:
Selezionare Assegnata dal sistema>Attiva>Salva. Quando Azure chiede di confermare, selezionare Sì.
Selezionare Assegnata dall'utente e l'identità gestita, quindi selezionare Rimuovi. Quando Azure chiede di confermare, selezionare Sì.
Disabilitare l'identità gestita in un modello di ARM
Se l'identità gestita dell'app per la logica è stata creata con un modello di ARM, impostare la proprietà figlio type
dell'oggetto identity
su None
.
"identity": {
"type": "None"
}