Sicurezza in Servizio app di Azure

Questo articolo illustra come Servizio app di Azure consente di proteggere l'app Web, il back-end dell'app per dispositivi mobili, l'app per le API e l'app per le funzioni. Spiega inoltre come è possibile proteggere ulteriormente l'app con le funzionalità incorporate di Servizio app di Azure.

Ai componenti della piattaforma di Servizio app di Azure, incluse le macchine virtuali di Azure, l'archiviazione, le connessioni di rete, i framework Web e le funzionalità di gestione e integrazione, viene applicata attivamente una protezione avanzata. Servizio app di Azure viene sottoposto continuamente a rigorosi controlli della conformità per assicurarsi che:

  • Le risorse dell'app siano protette dalle risorse di Azure degli altri clienti.
  • Le istanze di macchine virtuali e il software di runtime vengano regolarmente aggiornati in modo da contrastare le vulnerabilità appena individuate.
  • La comunicazione di segreti (ad esempio stringhe di connessione) tra l'app e altre risorse di Azure (ad esempio database SQL) rimanga all'interno di Azure e non superi i confini di rete. I segreti siano sempre crittografati quando vengono archiviati.
  • Tutte le comunicazioni tramite le funzionalità di connettività di Servizio app di Azure, ad esempio la connessione ibrida, siano crittografate.
  • Tutte le connessioni con strumenti di gestione remota, come Azure PowerShell, l'interfaccia della riga di comando di Azure, Azure SDK e le API REST, siano crittografate.
  • La gestione delle minacce 24 ore su 24 protegga l'infrastruttura e la piattaforma da malware, attacchi Distributed Denial of Service (DDoS), attacchi man-in-the-middle (MITM) e altre minacce.

Per altre informazioni sulla sicurezza della piattaforma e dell'infrastruttura in Azure, vedere Centro protezione di Azure.

Nelle sezioni seguenti viene illustrato come rafforzare la protezione dell'app del servizio app dalle minacce.

HTTPS e certificati

Servizio app di Azure consente di proteggere le app con HTTPS. Al momento della creazione, il nome di dominio predefinito dell'app (<nome_app>.azurewebsites.net) è già accessibile tramite HTTPS. Se si configura un dominio personalizzato per l'app, è opportuno anche proteggerlo con un certificato TLS o SSL in modo che i browser client possano eseguire connessioni HTTPS protette al dominio personalizzato. Il servizio app supporta diversi tipi di certificati:

  • Certificato gestito dal servizio app gratuito
  • Certificato del servizio app
  • Certificato di terze parti
  • Certificato importato da Azure Key Vault

Per altre informazioni, vedere Aggiungere un certificato TLS/SSL nel Servizio app di Azure.

Protocolli non sicuri (HTTP, TLS 1.0, FTP)

Per proteggere l'app da tutte le connessioni non crittografate (HTTP), Servizio app di Azure fornisce una configurazione che consente di applicare HTTPS con un solo clic. Le richieste non sicure vengono rifiutate prima ancora che raggiungano il codice dell'applicazione. Per altre informazioni, vedere Applicare HTTPS.

TLS 1.0 non è più considerato sicuro dagli standard del settore, come PCI DSS. Servizio app di Azure consente di disabilitare i protocolli non aggiornati applicando TLS 1.1/1.2.

Il servizio app supporta FTP e FTPS per la distribuzione dei file. Se possibile, però, è opportuno usare FTPS invece di FTP. Quando uno o entrambi questi protocolli non sono in uso, è necessario disabilitarli.

Limitazioni relative agli indirizzi IP statici

Per impostazione predefinita, l'app del servizio app accetta le richieste da tutti gli indirizzi IP da Internet, ma è possibile limitare tale accesso a un sottoinsieme ristretto di indirizzi IP. Il servizio app in Windows consente di definire un elenco di indirizzi IP che possono accedere all'app. Questo elenco può includere singoli indirizzi IP o un intervallo di indirizzi IP definito da una subnet mask. Per altre informazioni, vedere Restrizioni IP statico del Servizio app di Azure.

Per il servizio app in Windows è inoltre possibile limitare gli indirizzi IP dinamicamente tramite la configurazione del file web.config. Per altre informazioni, vedere Sicurezza degli IP dinamici <dynamicIpSecurity>.

Autenticazione e autorizzazione dei client

Servizio app di Azure fornisce una soluzione chiavi in mano di autenticazione e autorizzazione di utenti o app client. Quando abilitata, questa soluzione consente l'accesso di utenti e app client con un utilizzo del codice dell'applicazione minimo o nullo. È possibile implementare una soluzione di autenticazione e autorizzazione a scelta o lasciar gestire automaticamente questo processo al servizio app. Il modulo di autenticazione e autorizzazione gestisce le richieste Web prima di passarle al codice dell'applicazione e rifiuta le richieste non autorizzate prima che raggiungano il codice.

L'autenticazione e l'autorizzazione del servizio app supportano più provider di autenticazione, tra cui Microsoft Entra ID, account Microsoft, Facebook, Google e X. Per altre informazioni, vedere Autenticazione e autorizzazione nel servizio app di Azure.

Autenticazione da servizio a servizio

Per eseguire l'autenticazione con un servizio back-end, il servizio app fornisce due meccanismi diversi a seconda delle esigenze:

Connettività alle risorse remote

Esistono tre tipi di risorse remote a cui l'app potrebbe dover accedere:

In ognuno di questi casi, il servizio app fornisce un modo per stabilire connessioni sicure, ma è comunque necessario osservare le procedure consigliate per la sicurezza. Ad esempio, usare sempre connessioni crittografate anche se la risorsa back-end consente le connessioni non crittografate. Inoltre, assicurarsi che il servizio back-end di Azure accetti il set minimo di indirizzi IP. Gli indirizzi IP in uscita per l'app sono disponibili in Indirizzi IP in ingresso e in uscita in Servizio app di Azure.

Risorse di Azure

Quando l'app si connette a risorse di Azure, ad esempio Database SQL e Archiviazione di Azure, la connessione rimane all'interno di Azure e non supera i confini di rete. Tuttavia, la connessione passa attraverso le reti condivise di Azure, pertanto occorre sempre assicurarsi che la connessione sia crittografata.

Se l'app è ospitata in un ambiente del servizio app, è necessario connettersi a servizi di Azure supportati usando gli endpoint servizio di rete virtuale.

Risorse all'interno di una rete virtuale di Azure

L'app può accedere alle risorse in una rete virtuale di Azure tramite l'integrazione della rete virtuale. L'integrazione con una rete virtuale viene stabilita usando una VPN da punto a sito. L'app può quindi accedere alle risorse nella rete virtuale usando i rispettivi indirizzi IP privati. La connessione da punto a sito, tuttavia, attraversa ancora le reti condivise in Azure.

Per isolare completamente la connettività delle risorse dalle reti condivise in Azure, creare l'app in un ambiente del servizio app. Poiché un ambiente del servizio app viene sempre distribuito in una rete virtuale dedicata, la connettività tra l'app e le risorse all'interno della rete virtuale è completamente isolata. Per informazioni su altri aspetti della sicurezza di rete in un ambiente del servizio app, vedere Isolamento rete.

Risorse locali

È possibile accedere in modo sicuro alle risorse locali, ad esempio database, in tre modi:

Segreti dell'applicazione

Non archiviare i segreti dell'applicazione, come le credenziali del database, i token API e le chiavi private, nel codice o nei file di configurazione. L'approccio comunemente accettato consiste nell'accedere ai segreti come variabili di ambiente usando il modello standard nel linguaggio preferito. Nel servizio app, il modo per definire le variabili di ambiente è attraverso le impostazioni dell'app (e, in particolare per le applicazioni .NET, le stringhe di connessione). Le impostazioni dell'app e le stringhe di connessione vengono archiviate in Azure in formato crittografato e vengono decrittografate solo prima di essere inserite nella memoria processi dell'app all'avvio di quest'ultima. Le chiavi di crittografia vengono sottoposte a rotazione regolarmente.

In alternativa, è possibile integrare l'app del servizio app con Azure Key Vault per la gestione avanzata dei segreti. Accedendo all'insieme di credenziali delle chiavi con un'identità gestita, l'app del Servizio app può accedere in modo sicuro ai segreti necessari.

Isolamento della rete

Fatta eccezione per il piano tariffario Isolato, tutti i piani eseguono le app nell'infrastruttura di rete condivisa del servizio app. Ad esempio, gli indirizzi IP pubblici e i servizi di bilanciamento del carico di front-end vengono condivisi con altri tenant. Il piano Isolato offre un isolamento di rete completo mediante l'esecuzione delle app all'interno di un ambiente del servizio app dedicato. Un ambiente del servizio app viene eseguito nell'istanza di rete virtuale di Azure dell'utente. Consentono di:

  • Servire le app tramite un endpoint pubblico dedicato, con front-end dedicati.
  • Servire le applicazioni interne mediante un servizio di bilanciamento del carico interno, che consente l'accesso solo dall'interno della rete virtuale di Azure. Questo servizio ha un indirizzo IP della subnet privata, che offre un isolamento totale delle app da Internet.
  • Usare un servizio di bilanciamento del carico interno dietro un WAF (Web Application Firewall). Il WAF offre una protezione a livello aziendale per le applicazioni pubbliche, fornendo funzionalità come la protezione DDoS, il filtro degli URI e la prevenzione di attacchi SQL injection.

Protezione DDoS

Per i carichi di lavoro Web, è consigliabile usare la Protezione DDoS di Azure e un web application firewall per proteggersi dagli attacchi DDoS emergenti. Un'altra opzione consiste nell'usare Frontdoor di Azure insieme a un web application firewall. Frontdoor di Azure offre protezione a livello di piattaforma contro gli attacchi DDoS a livello di rete.

Per altre informazioni, vedere Introduzione agli ambienti del servizio app di Azure.