Proteggere la connettività ai servizi e ai database di Azure dal servizio app di Azure

Il servizio app potrebbe dover connettersi ad altri servizi di 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é gli attori delle minacce eseguono regolarmente una ricerca per indicizzazione dei repository GitHub pubblici per i segreti di connessione di cui è stato eseguito il commit accidentale. Per le applicazioni cloud, la gestione dei segreti migliore consiste nel non avere segreti. Quando si esegue la migrazione al servizio app di Azure, l'app potrebbe iniziare con la connettività basata su segreti e il servizio app consente di mantenere i segreti in modo sicuro. Azure può tuttavia contribuire a proteggere la connettività back-end dell'app tramite l'autenticazione di Microsoft Entra, eliminando completamente i segreti nell'app.

Metodo di connessione Quando utilizzare
Connettersi con un'identità dell'app * Si vogliono rimuovere completamente le credenziali, le chiavi o i segreti dall'applicazione.
* Il servizio downstream di Azure supporta l'autenticazione di 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 downstream di Azure supporta l'autenticazione di Microsoft Entra, ad esempio Microsoft Graph.
* La risorsa downstream deve eseguire un'autorizzazione granulare dell'utente connesso corrente.
Connettersi usando i segreti * La risorsa downstream richiede segreti di connessione.
* L'app si connette a servizi non di Azure, ad esempio un server di database locale.
* Il servizio downstream di Azure non supporta ancora l'autenticazione di Microsoft Entra.

Connettersi con un'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à gestita da Microsoft Entra ID consente al servizio app di accedere alle risorse senza segreti ed è possibile gestirla tramite il controllo degli accessi in base al ruolo. Un'identità gestita può connettersi a qualsiasi risorsa di Azure che supporta l'autenticazione di 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 di Azure:

  • R: l'utente visita il sito Web del servizio app di Azure.
  • B: Connettersi in modo sicuro dal 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.

Diagramma che mostra l'identità gestita che accede a una risorsa con o senza l'identità dell'utente.

Esempi di uso dei segreti dell'applicazione per connettersi a un database:

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 Autenticazione e autorizzazione in Servizio app di Azure e Funzioni di Azure). Se si usa il provider Microsoft (autenticazione di 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.

Diagramma dell'architettura per lo scenario di esercitazione.

Di seguito sono illustrati alcuni scenari:

Connettersi usando i segreti

Esistono due modi consigliati per usare i segreti nell'app: l'uso di segreti archiviati in Azure Key Vault o segreti nelle impostazioni dell'app del servizio app.

Usare 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 di Microsoft Entra o richiede una stringa di connessione 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 dell'insieme di credenziali delle chiavi come riferimenti a Key Vault nelle impostazioni dell'app.

I vantaggi delle identità gestite integrate con Key Vault includono:

  • L'accesso al segreto dell'insieme di credenziali delle chiavi è limitato all'app.
  • I collaboratori dell'app, ad esempio gli amministratori, potrebbero avere il controllo completo delle risorse del servizio app e allo stesso tempo non hanno accesso ai segreti dell'insieme di credenziali delle chiavi.
  • 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 il controllo 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 di Azure usando i segreti archiviati in Key Vault:

Diagramma che mostra il servizio app usando un segreto archiviato in Key Vault e gestito con identità gestita per connettersi ai Servizi di Azure AI.

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'app vengono sempre crittografate quando sono archiviate (crittografia dei dati inattivi). Per la gestione dei segreti più avanzata, ad esempio la rotazione dei segreti, i criteri di accesso e la cronologia di controllo, provare usando Key Vault.

Esempi di uso dei segreti dell'applicazione per connettersi a un database:

Passaggi successivi

Scopri come: