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.
Il servizio app potrebbe dover connettersi ad altri servizi Azure, ad esempio un database, un'archiviazione o un'altra app. Questa panoramica consiglia diversi metodi per la connessione e quando usarli.
Oggi, la decisione per un approccio alla connettività è strettamente correlata alla gestione dei segreti. Il modello comune di utilizzo dei segreti di connessione nelle stringhe di connessione, ad esempio nome utente e password, chiave privata e così via, non è più considerato l'approccio più sicuro per la connettività. Il rischio è ancora più alto oggi perché i malintenzionati scansionano regolarmente i repository pubblici di GitHub in cerca di segreti di connessione accidentalmente commessi. Per le applicazioni cloud, la gestione dei segreti migliore consiste nel non avere segreti. Quando si esegue la migrazione a Azure App Service, l'app potrebbe iniziare con la connettività basata sui segreti e il servizio app consente di mantenere i segreti in modo sicuro. Tuttavia, Azure può contribuire a proteggere la connettività back-end dell'app tramite l'autenticazione Microsoft Entra, eliminando completamente i segreti nell'app.
| Metodo di connessione | Quando utilizzare |
|---|---|
| Connettersi utilizzando l'identità di un'app | * Si vogliono rimuovere completamente le credenziali, le chiavi o i segreti dall'applicazione. * Il servizio Azure downstream supporta l'autenticazione Microsoft Entra, ad esempio Microsoft Graph. * La risorsa downstream non deve conoscere l'utente connesso corrente o non richiede l'autorizzazione granulare dell'utente connesso corrente. |
| Connettersi per conto dell'utente connesso | * L'app deve accedere a una risorsa downstream per conto dell'utente connesso. * Il servizio Azure downstream supporta l'autenticazione Microsoft Entra, ad esempio Microsoft Graph. * La risorsa downstream deve eseguire un'autorizzazione granulare dell'utente connesso corrente. |
| Connettersi usando credenziali | * La risorsa downstream richiede segreti di connessione. * L'app si connette a servizi non Azure, ad esempio un server di database locale. * Il servizio Azure downstream non supporta ancora l'autenticazione Microsoft Entra. |
Accedere con l'identità dell'app
Se l'app usa già un singolo set di credenziali per accedere a un servizio di Azure downstream, è possibile convertire rapidamente la connessione per usare un'identità dell'app. Un'identità managed identity da Microsoft Entra ID consente a App Service di accedere alle risorse senza segreti e la sua gestione è possibile tramite il controllo degli accessi in base al ruolo (RBAC). Un'identità gestita può connettersi a qualsiasi risorsa di Azure che supporta l'autenticazione Microsoft Entra e l'autenticazione avviene con token di breve durata.
L'immagine seguente illustra quanto segue un servizio app che si connette ad altri servizi Azure:
- Un utente visita il sito Web del servizio di app Azure.
- B: Connettere da servizio App a un altro servizio di Azure usando un'identità gestita.
- C: connettersi in modo sicuro dal Servizio App a Microsoft Graph usando un'identità gestita.
Esempi di uso dei segreti dell'applicazione per connettersi a un database:
- Tutorial: Connettersi a database Azure dal Servizio App senza segreti usando un'identità gestita
- Tutorial: Connettersi al database SQL da .NET App Service senza segreti utilizzando un'identità gestita
- Tutorial: Connettersi a un database PostgreSQL dal Servizio app Tomcat Java senza segreti usando un'identità gestita
Connettersi per conto dell'utente connesso
L'app potrebbe dover connettersi a un servizio downstream per conto dell'utente connesso. Il servizio app consente di autenticare facilmente gli utenti usando i provider di identità più comuni (vedere Authentication e autorizzazione in Azure App Service e Azure Functions). Se si usa il provider Microsoft (autenticazione Microsoft Entra), è possibile passare l'utente connesso a qualsiasi servizio downstream. Ad esempio:
- Eseguire una query di database che restituisce dati riservati che l'utente connesso è autorizzato a leggere.
- Recuperare i dati personali o eseguire azioni come utente connesso in Microsoft Graph.
L'immagine seguente illustra un'applicazione che accede in modo sicuro a un database SQL per conto dell'utente connesso.
Di seguito sono illustrati alcuni scenari:
- Connetti a Microsoft Graph per conto dell'utente
- Connettersi a un database SQL per conto dell'utente
- Connettersi a un'altra app di App Service per conto dell'utente
- Guidare l'utente connesso attraverso più livelli di servizi a valle
Connettersi utilizzando i segreti
Esistono due modi consigliati per usare i segreti nell'app: l'uso dei segreti archiviati in Azure Key Vault o segreti nelle impostazioni dell'app del servizio app.
Utilizzare i segreti da Key Vault
Azure Key Vault può essere usato per archiviare in modo sicuro segreti e chiavi, monitorare l'accesso e l'uso dei segreti e semplificare l'amministrazione dei segreti dell'applicazione. Se il servizio downstream non supporta l'autenticazione Microsoft Entra o richiede un connection string o una chiave, usare Key Vault per archiviare i segreti e connettere l'app a Key Vault con un'identità gestita e recuperare i segreti. L'app può accedere ai segreti di Key Vault come riferimenti di Key Vault nelle impostazioni dell'app.
I vantaggi delle identità gestite integrate con Key Vault includono:
- L'accesso al segreto del Key Vault è limitato all'app.
- I contributori dell'app, come ad esempio gli amministratori, potrebbero avere il controllo completo delle risorse del servizio App e, allo stesso tempo, non avere accesso ai segreti del Key Vault.
- Non è necessaria alcuna modifica al codice se il codice dell'applicazione accede già ai segreti di connessione con le impostazioni dell'app.
- Key Vault fornisce il monitoraggio e la verifica di chi ha eseguito l'accesso ai segreti.
- La rotazione dei segreti dell'insieme di credenziali delle chiavi non richiede modifiche nel servizio app.
L'immagine seguente illustra la connessione del servizio app a Key Vault usando un'identità gestita e quindi l'accesso a un servizio Azure usando i segreti archiviati in Key Vault:
Usare i segreti nelle impostazioni dell'app
Per le app che si connettono ai servizi usando segreti (ad esempio nomi utente, password e chiavi API), il servizio app può archiviarli in modo sicuro nelle impostazioni dell'app. Questi segreti vengono inseriti nel codice dell'applicazione come variabili di ambiente all'avvio dell'app. Le impostazioni dell'applicazione sono sempre crittografate durante l'archiviazione (crittografia a riposo). Per una gestione dei segreti più avanzata, ad esempio la rotazione dei segreti, i criteri di accesso e la cronologia di controllo, provare uso Key Vault.
Esempi di uso dei segreti dell'applicazione per connettersi a un database:
- Tutorial: Distribuire un'applicazione ASP.NET Core e un database SQL di Azure in Azure App Service
- Tutorial: distribuire un'app ASP.NET in Azure con Azure SQL Database
- Tutorial: distribuire un'app PHP, MySQL e Redis in Azure App Service
- Distribuire un'app Web Node.js + MongoDB per Azure
- Deploy un'app Web Python (Flask) con PostgreSQL in Azure
- Distribuire un'app Web Python (Django) con PostgreSQL in Azure
- Deploy un'app Web Python (FastAPI) con PostgreSQL in Azure
- Tutorial: Creare un'app Web Tomcat con Azure App Service on Linux e MySQL
- Tutorial: creare un'app Web Spring Boot Java con Azure App Service on Linux e Azure Cosmos DB
Contenuti correlati
- Archiviare in modo sicuro i segreti in Azure Key Vault.
- Accedere alle risorse usando un'identità gestita.
- Archiviare informazioni riservate usando le impostazioni dell'app di App Service.
- Connetti a Microsoft Graph come utente.
- Connettersi a un database SQL come utente.
- Connettersi a un'altra app di App Service come l'utente.
- Come utente, connettersi a un'altra app di App Service e poi a un servizio a valle.