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 (consumo + 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 consente di proteggere le informazioni di autenticazione in modo che non sia necessario gestire queste informazioni riservate. 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 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:
Strumento 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 vuole usare il 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 - Ambiente del servizio di integrazione (ISE) |
- È 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 a livello di connessione. - Se si crea e si abilita l'identità assegnata dall'utente, l'app per la logica può avere una sola 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 a livello 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 Consumo e Standard, vedere la documentazione seguente:
Dove è possibile usare un'identità gestita
In App per la logica di Azure, solo le operazioni del connettore predefinite e gestite specifiche che supportano OAuth con l'ID Microsoft Entra possono usare un'identità gestita per l'autenticazione. 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 | - Azure Gestione API - Servizi app Azure - Funzioni di Azure - HTTP - HTTP + Webhook Nota: le operazioni HTTP possono autenticare le connessioni agli account 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 Azure - Automazione di Azure - Archiviazione BLOB di Azure - Istanza di Azure Container - Azure Cosmos DB - Azure Esplora dati - 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.
Nella 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 Su>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. Prima di poter aggiungere l'identità assegnata dal sistema, è necessario 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à) <identity-resource-ID> 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 Resource Manager
Per automatizzare la creazione e la distribuzione delle risorse dell'app per la logica, è possibile usare un modello di Resource Manager. Per abilitare l'identità assegnata dal sistema per la risorsa dell'app per la logica nel modello, aggiungere l'oggetto Identity e la proprietà figlio type alla definizione di 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 Identity ottiene le altre proprietà seguenti:
"identity": {
"type": "SystemAssigned",
"principalId": "<principal-ID>",
"tenantId": "<Entra-tenant-ID>"
}
Proprietà (JSON) | Valore | Descrizione |
---|---|---|
principalId | <principal-ID> | 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> | Identificatore univoco globale (GUID) che rappresenta il tenant di Microsoft Entra in 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 portale di Azure immettere identità gestite. Nell'elenco dei risultati selezionare Identità gestite.
Sulla barra degli strumenti della pagina Identità gestite selezionare Crea.
Fornire informazioni sull'identità gestita e selezionare Rivedi e crea, ad esempio:
Proprietà Richiesto Valore Descrizione Abbonamento Sì <Azure-subscription-name> 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. In questo esempio viene creato 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. È ora 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
Nella 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 e 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 con 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. Prima di poter aggiungere l'identità assegnata dall'utente, è necessario disabilitare l'identità assegnata dal sistema.
L'app per la logica è ora associata all'identità assegnata dall'utente.
Seguire ora i passaggi che consentono all'identità di accedere alla risorsa più avanti in questa guida.
Creare un'identità assegnata dall'utente in un modello di Resource Manager
Per automatizzare la creazione e la distribuzione delle risorse dell'app per la logica, è possibile usare un modello di Resource Manager. 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 Identity con la proprietà type 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 Identity non parametrizzato. La risposta alla richiesta PUT e all'operazione GET successiva include anche questo oggetto identity :
{
"$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 Identity . Nell'esempio seguente viene illustrato come l'oggetto userAssignedIdentities figlio faccia 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 vuole 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 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 modello di Azure Resource Manager e il portale di Azure modello di Azure Resource Manager.The steps in this section describe how to assign role-based access using the portale di Azure and Azure Resource Manager template (ARM template). Per Azure PowerShell, l'interfaccia della riga di comando di Azure e l'API REST di Azure, vedere la documentazione seguente:
Strumento | 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:
Strumento | 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à.
Nella 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 l'opzione Aggiungi assegnazione di ruolo è disabilitata, non si dispone delle autorizzazioni per assegnare i ruoli. 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 dati BLOB di archiviazione, che include l'accesso in scrittura per i BLOB in un contenitore Archiviazione di Azure. Per altre informazioni sui ruoli specifici del contenitore di archiviazione, vedere Ruoli che possono accedere ai BLOB in un contenitore 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 Subscription Membro 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.
Nella 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 List secrets del connettore gestito di Azure Key Vault, l'identità necessita delle autorizzazioni List. Quindi, nella colonna Autorizzazioni segrete selezionare Elenco.
Al termine, selezionare Avanti. Nella scheda Entità individuare e selezionare l'identità gestita, ovvero un'identità assegnata dall'utente in questo esempio.
Ignorare il passaggio facoltativo Applicazione , selezionare Avanti e 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 dell'app per la logica e concedere a tale identità l'accesso alla risorsa o al servizio di destinazione di Azure, è possibile usare tale 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 Funzioni di Azure.
I passaggi seguenti illustrano come usare l'identità gestita con un trigger o un'azione usando 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.
Nella 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à Authentication , se la proprietà non è già visualizzata.
Ora, sia la proprietà Authentication che l'elenco Tipo di autenticazione vengono visualizzati nell'azione.
Nell'elenco Tipo di autenticazione selezionare Identità gestita.
La sezione Authentication (Autenticazione ) mostra ora le opzioni seguenti:
Elenco identità gestita da cui è possibile selezionare un'identità gestita specifica
La proprietà Audience 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 Identità gestita 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 abilitare tale identità 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.
Quando si è pronti, 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 Archiviazione BLOB di Azure come esempio.
Per altre informazioni, vedere Esempio: Autenticare il trigger o l'azione del 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 HTTP o l'azione usa le proprietà seguenti 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 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ì | Tipo di autenticazione da usare per l'autenticazione dell'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 protetti da firewall usando il connettore Archiviazione BLOB di Azure e le identità gestite, assicurarsi di configurare anche l'account di archiviazione con l'eccezione che consente l'accesso da 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 x-ms-blob-type valori di intestazione , x-ms-version e x-ms-date sono necessari per le operazioni di Archiviazione di Azure. Importante: nelle richieste di trigger e azioni HTTP in uscita per Archiviazione di Azure, l'intestazione richiede la x-ms-version proprietà e la versione dell'API per l'operazione che si vuole eseguire. Deve x-ms-date essere la data corrente. In caso contrario, il flusso di lavoro ha esito negativo con un 403 FORBIDDEN errore. 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 e 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 la proprietà Authentication. 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 Identità gestita selezionare tra le opzioni disponibili in base allo scenario in uso.
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à Audience 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à Audience su esattamente l'ID risorsa seguente:
https://vault.azure.net
Se non si imposta la proprietà Audience , per impostazione predefinita, la proprietà Audience usa l'ID
https://management.azure.com/
risorsa, ovvero l'ID risorsa per Azure Resource Manager.Importante
Assicurarsi che l'ID risorsa di destinazione corrisponda esattamente al valore previsto da Microsoft Entra ID. In caso contrario, è possibile che venga visualizzato un
400 Bad Request
errore o un401 Unauthorized
errore. Pertanto, se l'ID risorsa include barre finali, assicurarsi di includerle. In caso contrario, non includerli.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 Lettura di 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 Lettura di una risorsa.
Nell'elenco Autenticazione del riquadro Crea connessione selezionare Identità gestita e quindi selezionare Accedi.
Nota
In altri connettori l'elenco Tipo di autenticazione mostra invece Identità gestita di App per la logica, quindi 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 esiste ancora una connessione abilitata per l'identità gestita, viene visualizzato un errore che indica che è necessario abilitare l'identità e concedere l'accesso alla risorsa di destinazione.
Quando si è pronti, selezionare Crea nuovo.
Dopo che la finestra di progettazione ha creato correttamente la connessione, la finestra di progettazione può 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 verifica se tutte le operazioni del connettore gestito nel flusso di lavoro sono configurate per l'uso dell'identità gestita e che tutte le autorizzazioni necessarie esistono 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 della parameters
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 Resource Manager per le connessioni API e le identità gestite
Se si usa un modello di Resource Manager 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 Resource Manager, 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 multiutenticazione.
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
kind
proprietà è 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
kind
proprietà è impostata suV1
per un'app per la logica a consumo.L'oggetto
parameterValueSet
include unaname
proprietà impostata sumanagedIdentityAuth
e unavalues
proprietà 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 di connections.json dell'app per la logica Standard, che archivia le informazioni su ogni connessione API, ogni definizione di connessione include due authentication
sezioni, 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
authentication
sezione 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
authentication
sezione 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
Nella 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 Visualizzazione JSON.
Nell'editor JSON trovare la
managedApiConnections
sezione 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
authentication
sezione. Se in questaauthentication
sezione non esiste alcunaidentity
proprietà, l'app per la logica usa in modo implicito l'identità assegnata dal sistema.Aggiungere una
identity
proprietà 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>" }
Nella 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 dall'ID Microsoft Entra.
I passaggi descritti in questa sezione illustrano l'uso dei portale di Azure e del modello di Azure Resource Manager (modello di Resource Manager). Per Azure PowerShell, l'interfaccia della riga di comando di Azure e l'API REST di Azure, vedere la documentazione seguente:
Strumento | 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
Nella portale di Azure aprire la risorsa dell'app per la logica.
Nel menu delle risorse dell'app per la logica, in Impostazioni selezionare Identità e quindi seguire i passaggi 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 Resource Manager
Se è stata creata l'identità gestita dell'app per la logica usando un modello di Resource Manager, impostare la identity
proprietà figlio dell'oggetto type
su None
.
"identity": {
"type": "None"
}
Contenuto correlato
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per