Integrazione del gateway applicazione

Esistono tre varianti di servizio app che richiedono una configurazione leggermente diversa dell'integrazione con gateway applicazione di Azure. Le varianti includono servizio app regolari, note anche come multi-tenant, Load Balancer interne (ILB) ambiente del servizio app e ambiente del servizio app esterni. Questo articolo descrive come configurarlo con servizio app (multi-tenant) usando l'endpoint del servizio per proteggere il traffico. L'articolo illustra anche le considerazioni sull'uso dell'endpoint privato e sull'integrazione con ILB e ambiente del servizio app esterni. Infine, l'articolo presenta considerazioni sul sito scm/kudu.

Integrazione con servizio app (multi-tenant)

servizio app (multi-tenant) ha un endpoint internet pubblico. Usando gli endpoint di servizio è possibile consentire il traffico solo da una subnet specifica all'interno di un Rete virtuale di Azure e bloccare tutto il resto. Nello scenario seguente si userà questa funzionalità per assicurarsi che un'istanza di servizio app possa ricevere solo il traffico da un'istanza di gateway applicazione specifica.

Diagramma che mostra il flusso Internet in un gateway applicazione in un Rete virtuale di Azure e il flusso da un'icona del firewall alle istanze di app in servizio app.

Sono presenti due parti di questa configurazione oltre a creare le servizio app e le gateway applicazione. La prima parte abilita gli endpoint di servizio nella subnet del Rete virtuale in cui viene distribuita la gateway applicazione. Gli endpoint di servizio assicureranno che tutto il traffico di rete che lascia la subnet verso il servizio app verrà contrassegnato con l'ID subnet specifico. La seconda parte consiste nell'impostare una restrizione di accesso dell'app Web specifica per garantire che sia consentito solo il traffico contrassegnato con questo ID subnet specifico. È possibile configurarla usando diversi strumenti a seconda delle preferenze.

Uso del portale di Azure

Con portale di Azure, seguire quattro passaggi per effettuare il provisioning e configurare la configurazione. Se si dispone di risorse esistenti, è possibile ignorare i primi passaggi.

  1. Creare un servizio app usando una delle guide introduttive nella documentazione di servizio app, ad esempio .NET Core Guida introduttiva
  2. Creare un gateway applicazione usando l'avvio rapido del portale, ma ignorare la sezione Aggiungi destinazioni back-end.
  3. Configurare servizio app come back-end in gateway applicazione, ma ignorare la sezione Limita l'accesso.
  4. Creare infine la restrizione di accesso usando gli endpoint di servizio.

È ora possibile accedere al servizio app tramite gateway applicazione, ma se si tenta di accedere direttamente all'servizio app, si dovrebbe ricevere un errore HTTP 403 che indica che il sito Web viene arrestato.

Screenshot che mostra il testo di un errore 403 - Non consentito.

Uso del modello di Azure Resource Manager

Il Resource Manager modello di distribuzione eseguirà il provisioning di uno scenario completo. Lo scenario è costituito da un'istanza servizio app bloccata con endpoint di servizio e restrizione di accesso per ricevere solo il traffico da gateway applicazione. Il modello include molti postfissi intelligenti e postfissi univoci aggiunti ai nomi delle risorse per essere semplici. Per eseguirne l'override, sarà necessario clonare il repository o scaricare il modello e modificarlo.

Per applicare il modello, è possibile usare il pulsante Distribuisci in Azure trovato nella descrizione del modello oppure usare PowerShell/CLI appropriato.

Utilizzare l'interfaccia della riga di comando di Azure

L'esempio dell'interfaccia della riga di comando di Azure eseguirà il provisioning di un servizio app bloccato con endpoint di servizio e restrizioni di accesso per ricevere solo il traffico da gateway applicazione. Se è sufficiente isolare il traffico a un servizio app esistente da un gateway applicazione esistente, il comando seguente è sufficiente.

az webapp config access-restriction add --resource-group myRG --name myWebApp --rule-name AppGwSubnet --priority 200 --subnet mySubNetName --vnet-name myVnetName

Nella configurazione predefinita, il comando garantisce sia la configurazione della configurazione dell'endpoint di servizio nella subnet che la restrizione di accesso nella servizio app.

Considerazioni sull'uso dell'endpoint privato

In alternativa all'endpoint di servizio, è possibile usare l'endpoint privato per proteggere il traffico tra gateway applicazione e servizio app (multi-tenant). È necessario assicurarsi che gateway applicazione possa risolvere l'INDIRIZZO IP privato delle app servizio app o in alternativa usare l'IP privato nel pool back-end ed eseguire l'override del nome host nelle impostazioni http.

Il diagramma mostra il flusso del traffico a un gateway applicazione in un Rete virtuale di Azure e il flusso da un endpoint privato a istanze di app in servizio app.

gateway applicazione memorizza nella cache i risultati della ricerca DNS, quindi se si usano FQDN e si basano sulla ricerca DNS per ottenere l'indirizzo IP privato, potrebbe essere necessario riavviare il gateway applicazione se l'aggiornamento DNS o il collegamento alla zona DNS privata di Azure è stato eseguito dopo aver configurato il pool back-end. Per riavviare la gateway applicazione, è necessario avviare e arrestare l'istanza. È possibile eseguire questa operazione con l'interfaccia della riga di comando di Azure:

az network application-gateway stop --resource-group myRG --name myAppGw
az network application-gateway start --resource-group myRG --name myAppGw

Considerazioni relative all'ambiente del servizio app ilB

ILB ambiente del servizio app non è esposto a Internet e al traffico tra l'istanza e un gateway applicazione è quindi già isolato al Rete virtuale. Nella guida seguente viene configurato un ambiente del servizio app del servizio di bilanciamento del carico interno e viene integrato con un gateway applicazione usando portale di Azure.

Se si vuole assicurarsi che solo il traffico dalla subnet gateway applicazione raggiunga la ambiente del servizio app, è possibile configurare un gruppo di sicurezza di rete che influisce su tutte le app Web nel ambiente del servizio app. Per il gruppo di sicurezza di rete, è possibile specificare l'intervallo IP della subnet e facoltativamente le porte (80/443). Assicurarsi di non eseguire l'override delle regole del gruppo di sicurezza di rete necessarie per ambiente del servizio app per funzionare correttamente.

Per isolare il traffico a un'app Web singola, è necessario usare restrizioni di accesso basate su IP come endpoint del servizio non funzioneranno per l'ambiente del servizio app. L'indirizzo IP deve essere l'INDIRIZZO IP privato dell'istanza di gateway applicazione.

Considerazioni relative all'ambiente del servizio app esterno

La ambiente del servizio app esterna ha un servizio di bilanciamento del carico pubblico, ad esempio servizio app multi-tenant. Gli endpoint di servizio non funzionano per ambiente del servizio app e questo è il motivo per cui è necessario usare restrizioni di accesso basate su ip usando l'INDIRIZZO IP pubblico dell'istanza di gateway applicazione. Per creare un ambiente del servizio app esterno usando la portale di Azure, è possibile seguire questa guida introduttiva

Considerazioni sul sito kudu/scm

Il sito scm, noto anche come kudu, è un sito di amministrazione, che esiste per ogni app Web. Non è possibile invertire il proxy del sito scm e probabilmente si vuole bloccare anche i singoli indirizzi IP o una subnet specifica.

Se si desidera usare le stesse restrizioni di accesso del sito principale, è possibile ereditare le impostazioni usando il comando seguente.

az webapp config access-restriction set --resource-group myRG --name myWebApp --use-same-restrictions-for-scm-site

Se si desidera impostare singole restrizioni di accesso per il sito scm, è possibile aggiungere restrizioni di accesso usando il flag --scm-site come illustrato di seguito.

az webapp config access-restriction add --resource-group myRG --name myWebApp --scm-site --rule-name KudoAccess --priority 200 --ip-address 208.130.0.0/16

Passaggi successivi

Per altre informazioni sulla ambiente del servizio app, vedere la documentazione di ambiente del servizio app.

Per proteggere ulteriormente l'app Web, sono disponibili informazioni sulle Web application firewall su gateway applicazione nella documentazione di Azure Web application firewall.