Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Azure Logic Apps (Modalità a consumo)
Per migliorare la sicurezza delle chiamate alle API, è possibile configurare l'autenticazione di Microsoft Entra tramite il portale di Azure in modo da non dover aggiornare il codice. Oppure, è possibile richiedere e applicare l'autenticazione attraverso il codice dell'API.
È possibile aggiungere l'autenticazione nei modi seguenti:
Nessuna modifica al codice: proteggere l'API con l'ID Entra di Microsoft tramite il portale di Azure, quindi non è necessario aggiornare il codice o ridistribuire l'API.
Nota
Per impostazione predefinita, l'autenticazione di Microsoft Entra selezionata nel portale di Azure non fornisce autorizzazioni con granularità fine. Ad esempio, questa autenticazione blocca l'API a un tenant specifico, non a un determinato utente o app.
Aggiornare il codice dell'API: proteggere l'API applicando l'autenticazione del certificato o l'autenticazione di Microsoft Entra tramite codice.
Autenticare le chiamate all'API senza modificare il codice
Ecco i passaggi generali per questo metodo:
Creare due identità dell'applicazione Microsoft Entra (registrazione app): una per l'app logica e una per l'app web (o app API).
Per autenticare le chiamate all'API, usare le credenziali (ID client e segreto) per il servizio principale associato all'identità dell'applicazione Microsoft Entra per l'app logica.
Includere gli ID dell'applicazione nella definizione del flusso di lavoro dell'app logica.
Parte 1: Creare un'identità applicativa di Microsoft Entra per l'app logica
La risorsa Logic App utilizza questa identità dell'applicazione Microsoft Entra per autenticarsi con Microsoft Entra ID. È necessario configurare questa identità una sola volta per il tenant. Ad esempio, si può scegliere di usare la stessa identità per tutte le app per la logica, anche se è possibile creare identità univoche per ogni app per la logica. È possibile impostare queste identità nel Portale di Azure o usare PowerShell.
Nella casella di ricerca del portale di Azure trovare e selezionare Microsoft Entra ID.
Verificare di trovarsi nello stesso tenant dell'app Web o dell'app per le API.
Suggerimento
Per cambiare tenant, dalla barra del titolo di Azure apri il tuo profilo e seleziona Cambia directory.
Nel menu delle risorse tenant, in Gestisci, selezionare Registrazioni app.
La pagina Registrazioni app mostra tutte le registrazioni dell'app nel tenant. Per visualizzare solo le registrazioni dell'app, selezionare Applicazioni di proprietà.
Sulla barra degli strumenti selezionare Nuova registrazione.
Nella pagina Registra un'applicazione seguire questa procedura:
In Nome, indicare un nome facile e intuitivo per l'identità dell'applicazione della logic app.
In Tipi di account supportati selezionare l'opzione che descrive meglio i tipi di account che possono usare l'identità dell'applicazione o ottenere l'accesso all'API.
In URI di reindirizzamento, seleziona Web come piattaforma. Accanto a questa opzione, specificare un URL univoco per la posizione in cui restituire la risposta di autenticazione.
Al termine, selezionare Registra.
La scheda Applicazioni di proprietà mostra ora l'identità dell'applicazione creata. Se questa identità non viene visualizzata, sulla barra degli strumenti selezionare Aggiorna.
Nell'elenco registrazioni dell'app selezionare la nuova identità dell'applicazione.
Nel menu di navigazione dell'identità dell'applicazione selezionare Panoramica.
Nella pagina Panoramica, in Essenziali, copiare e salvare l'ID applicazione (client) da usare come ID client per il logic app nella parte 3.
Dal menu dell'identità dell'applicazione, in Gestisci, selezionare Certificati e segreti.
Nella pagina Segreti client selezionare Nuovo segreto client.
Nel riquadro Aggiungi un segreto client , per Descrizione, specificare un nome per il segreto. Per Scadenza selezionare una durata per il segreto. Al termine, selezionare Aggiungi.
Il segreto creato funge da "segreto" o password dell'identità dell'applicazione per l'applicazione logica.
Nella pagina Certificati e segreti , nella scheda Segreti client , il segreto viene visualizzato insieme a un valore segreto e a un ID segreto.
Copiare il valore del segreto per usarlo in un secondo momento. Quando si configura l'app per la logica nella parte 3, questo valore viene specificato come "segreto" o password.
Parte 2: Creare un'identità dell'applicazione Microsoft Entra per l'app Web o l'app per le API
Se l'app Web o l'app per le API è già stata distribuita, è possibile attivare l'autenticazione e creare l'identità di applicazione nel portale di Azure. In alternativa, è possibile attivare l'autenticazione quando si effettua la distribuzione con un modello di Azure Resource Manager.
Creare l'identità dell'applicazione per un'app Web o un'app per le API distribuita nel portale di Azure
Nel portale di Azure individuare e selezionare l'app Web o l'app per le API.
In Impostazioni selezionare Autenticazione>Aggiungi provider di identità.
Dopo che si apre il riquadro Aggiungi provider di identità, nella scheda Base, dall'elenco Provider di identità, selezionare Microsoft per usare le identità di Microsoft Entra e quindi selezionare Aggiungi.
A questo punto, creare un'identità dell'applicazione per l'app Web o l'app per le API come indicato di seguito:
Per Tipo di registrazione app, selezionare Crea nuova registrazione app.
In Nome specificare un nome per l'identità dell'applicazione.
Per Tipi di account supportati, selezionare i tipi di account appropriati per lo scenario.
Per Limita l'accesso selezionare Richiedi autenticazione.
Per Richieste non autenticate, selezionare l'opzione in base allo scenario in uso.
Al termine, selezionare Aggiungi.
Nella sezione Provider di identità viene ora visualizzata la nuova identità dell'applicazione per l'app Web o l'app per le API:
Suggerimento
Se l'identità dell'applicazione non viene visualizzata, sulla barra degli strumenti selezionare Aggiorna.
A questo punto è necessario trovare l'ID applicazione (client) e l'ID tenant per l'identità dell'applicazione appena creata per l'app Web o l'app per le API. Questi ID verranno usati nella Parte 3. Continuare quindi con i passaggi seguenti per il portale di Azure.
Trovare l'ID client e l'ID tenant dell'identità dell'applicazione per l'applicazione Web o applicazione API nel portale di Azure
Nel menu dell'app Web, in Gestisci, selezionare Autenticazione.
Nella sezione Provider di identità individuare l'identità dell'applicazione creata in precedenza. Selezionare il nome identificativo dell'applicazione.
Nella pagina Panoramica, trova i valori per ID applicazione (client) e ID directory (tenant). Copiare e salvare i valori da usare nella parte 3.
Puoi anche utilizzare il GUID dell'ID tenant nel modello di distribuzione dell'app Web o dell'app per le API, se necessario. Questo GUID è il GUID del tenant specifico ("ID del tenant") e deve apparire in questo URL:
https://sts.windows.net/<tenant-GUID>
Configurare l'autenticazione quando si esegue la distribuzione con un modello di Azure Resource Manager
Se si usa un modello di Azure Resource Manager ,è comunque necessario creare un'identità dell'applicazione Microsoft Entra per l'app Web o l'app per le API diversa dall'identità dell'app per la logica. Per creare l'identità dell'applicazione e quindi trovare l'ID client e l'ID tenant, seguire i passaggi precedenti descritti nella parte 2 per il portale di Azure. Si useranno sia l'ID client che l'ID tenant nel modello di distribuzione dell'app e anche per la parte 3.
Importante
Quando si crea l'identità dell'applicazione Microsoft Entra per l'app Web o l'app per le API, è necessario usare il portale di Azure, non PowerShell. Il cmdlet di PowerShell non consente di impostare le autorizzazioni necessarie per l'accesso degli utenti in un sito Web.
Dopo aver ottenuto l'ID client e l'ID tenant, includerli come risorsa secondaria dell'app Web o app per le API nel modello di distribuzione:
"resources": [
{
"apiVersion": "2015-08-01",
"name": "web",
"type": "config",
"dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
"properties": {
"siteAuthEnabled": true,
"siteAuthSettings": {
"clientId": "<client-ID>",
"issuer": "https://sts.windows.net/<tenant-ID>/"
}
}
}
]
Per distribuire automaticamente un'app Web vuota e un'app per la logica insieme all'autenticazione di Microsoft Entra, visualizzare il modello completo qui oppure selezionare il pulsante Distribuisci in Azure seguente:
Parte 3: Compilare la sezione Autorizzazione nell'app per la logica
Il modello precedente include già questa sezione di autorizzazione configurata, ma se si crea direttamente la definizione dell'app per la logica, è necessario includere la sezione di autorizzazione completa.
Apri la definizione dell'app logica nella visualizzazione del codice.
Passare alla definizione dell'azione HTTP , individuare la sezione Autorizzazione e includere le proprietà seguenti:
{
"tenant": "<tenant-ID>",
"audience": "<client-ID-from-Part-2-web-app-or-API app>",
"clientId": "<client-ID-from-Part-1-logic-app>",
"secret": "<secret-from-Part-1-logic-app>",
"type": "ActiveDirectoryOAuth"
}
| Proprietà | Richiesto | Descrizione |
|---|---|---|
tenant |
Sì | GUID per il tenant di Microsoft Entra. |
audience |
Sì | GUID della risorsa di destinazione a cui si desidera accedere, ovvero l'ID cliente dell'identità dell'applicazione per l'applicazione web o l'applicazione API. |
clientId |
Sì | GUID per il client che richiede l'accesso, cioè l'ID del client dall'identità dell'applicazione per la Logic App. |
secret |
Sì | Il segreto o la password dell'identità dell'applicazione del client che richiede il token di accesso. |
type |
Sì | Il tipo di autenticazione. Per l'autenticazione ActiveDirectoryOAuth, il valore è ActiveDirectoryOAuth. |
Ad esempio:
{
"actions": {
"HTTP": {
"inputs": {
"method": "POST",
"uri": "https://your-api-azurewebsites.net/api/your-method",
"authentication": {
"tenant": "tenant-ID",
"audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
"clientId": "client-ID-from-azure-ad-app-for-logic-app",
"secret": "key-from-azure-ad-app-for-logic-app",
"type": "ActiveDirectoryOAuth"
}
}
}
}
}
Chiamate API protette con codice
Autenticazione del certificato
Per convalidare le richieste in ingresso dal flusso di lavoro dell'app per la logica all'app Web o all'app per le API, è possibile usare i certificati client. Per configurare il codice, imparare come configurare l'autenticazione reciproca TLS.
Importante
Proteggere e proteggere sempre i dati sensibili e personali, ad esempio credenziali, segreti, chiavi di accesso, stringhe di connessione, certificati, identificazioni personali e informazioni simili con il livello di sicurezza più alto disponibile o supportato.
Assicurarsi di archiviare tali informazioni in modo sicuro usando Microsoft Entra ID e Azure Key Vault. Non inserire queste informazioni come codice fisso, non condividerle con altri utenti, e non salvarle in testo non crittografato ovunque possano accedervi altri utenti. Configurare un piano per ruotare o revocare i segreti nel caso in cui vengano compromessi. Per ulteriori informazioni, vedi le seguenti risorse:
Nella sezione Autorizzazione includere le proprietà seguenti:
{
"type": "ClientCertificate",
"password": "<password>",
"pfx": "<long-pfx-key>"
}
| Proprietà | Richiesto | Descrizione |
|---|---|---|
type |
Sì | Il tipo di autenticazione. Per i certificati client TLS/SSL, il valore deve essere ClientCertificate. |
password |
No | Password per l'accesso al certificato client (file PFX). |
pfx |
Sì | Contenuto con codifica Base64 del certificato client (file PFX). |
Autenticazione di base
Per convalidare le richieste in ingresso dall'app per la logica all'app Web o app per le API, è possibile usare l'autenticazione di base, ad esempio un nome utente e una password. Anche se l'autenticazione di base è un modello comune ed è possibile usare questa autenticazione in qualsiasi linguaggio usato per compilare l'app Web o l'app per le API, usare sempre il livello di autenticazione migliore disponibile o supportato.
Avviso
Microsoft sconsiglia di usare i flussi seguenti per l'autenticazione e l'autorizzazione:
Password del proprietario della risorsa (ROPC) per OAuth 2.0
Questo flusso consente di accedere a un'applicazione con una password. Il flusso non è compatibile con l'autenticazione a più fattori (MFA), richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non esistono in altri flussi. Usare questo flusso solo se altri flussi più sicuri non sono supportati o disponibili.
Per altre informazioni, vedere Credenziali password del proprietario della risorsa Oauth 2.0.
Flusso di concessione implicito per OAuth 2.0
Questo flusso basato su token è destinato alle app Web tradizionali in cui il server ha un controllo più sicuro sull'elaborazione dei
POSTdati e viene spesso usato con il flusso del codice di autorizzazione. A causa del modo in cui questo flusso gestisce e restituisce token ID o token di accesso, il flusso richiede un livello di attendibilità molto elevato nell'applicazione e comporta rischi che non esistono in altri flussi. Usare questo flusso solo quando altri flussi più sicuri non sono supportati o disponibili.Per altre informazioni, vedere Flusso di concessione implicita OAuth 2.0.
Nella sezione Autorizzazione includere le proprietà seguenti:
{
"type": "Basic",
"username": "<username>",
"password": "<password>"
}
| Proprietà | Richiesto | Descrizione |
|---|---|---|
type |
Sì | Tipo di autenticazione che si vuole usare. Per l'autenticazione di base, il valore deve essere **Basic**. |
username |
Sì | Nome utente da usare per l'autenticazione. |
password |
Sì | Password da usare per l'autenticazione. |
Autenticazione di Microsoft Entra con codice
Per impostazione predefinita, l'autenticazione di Microsoft Entra attivata nel portale di Azure non fornisce autorizzazioni con granularità fine. Ad esempio, questa autenticazione blocca l'API a un tenant specifico, non a un determinato utente o app.
Per limitare l'accesso dell'API all'app logica usando il codice, estrarre l'intestazione che contiene il token JSON Web (JWT). Verificare l'identità del chiamante e rifiutare le richieste che non corrispondono.