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.
Questo articolo descrive come configurare Azure Application Gateway in modo che punti a un'applicazione ospitata in un App Service Environment. Ambiente di Servizio App è una distribuzione del servizio app di Azure nella subnet della rete virtuale Azure di un'organizzazione. L'ambiente del servizio app può essere distribuito con un endpoint esterno o interno per l'accesso alle app. Una distribuzione con un endpoint interno viene definita come un load balancer interno (ILB) in un ambiente del servizio app.
Il gateway applicazione è un'appliance virtuale che offre bilanciamento del carico di livello 7, offload TLS e protezione Web application firewall (WAF). Il gateway può essere in ascolto su un indirizzo IP pubblico e instradare il traffico all'endpoint applicazione. I WAF aiutano a proteggere le tue applicazioni Web ispezionando il traffico Web in ingresso per bloccare SQL injection, cross-site scripting, caricamenti di malware, attacchi DDoS dell'applicazione e altri attacchi. È possibile ottenere un dispositivo WAF da Azure Marketplace o usare l'Azure Application Gateway.
L'integrazione del gateway applicativo con l'ambiente di servizio app ILB è al livello dell'applicazione. Il gateway applicazione viene configurato con l'ambiente del servizio app con bilanciamento del carico interno (ILB) per app specifiche nel proprio ambiente. Il diagramma seguente illustra lo scenario:
Prerequisiti
Un ambiente del servizio app ILB, come descritto in Preparare l'ambiente del servizio app ILB.
L'ambiente deve includere un piano di servizio app.
L'ambiente deve ospitare un'app di App Service con l'ambiente ILB App Service impostato come regione dell'applicazione.
Una zona DNS privata di Azure per l'ambiente App Service ILB, come descritto in Creare una zona DNS privata.
Nome DNS pubblico per il gateway di applicazione di Azure, come descritto in Mappare il nome DNS pubblico al gateway di applicazione.
Se si prevede di usare la crittografia TLS per il gateway applicativo, è richiesto un valido certificato pubblico per associarlo al gateway applicativo. Per informazioni dettagliate, vedere Creare un certificato pubblico valido.
Preparare l'ambiente del servizio app ILB (bilanciamento di carico interno)
È possibile creare un ambiente di servizio app ILB nel portale di Azure o usando un modello di Azure Resource Manager (modello ARM).
L'App Service Environment ILB fornisce due risorse per la tua configurazione:
Dominio predefinito del formato
<your-app-service-environment-name>.appserviceenvironment.net.
Un Load Balancer interno fornito per accessi in ingresso. È possibile controllare l'indirizzo in entrata negli indirizzi IP nelle impostazioni dell'ambiente del servizio app. È possibile creare una zona DNS privata mappata a questo indirizzo IP in un secondo momento.
L'ambiente del servizio app con bilanciamento del carico interno deve ospitare un'app del servizio applicativo. Quando si crea l'app nel portale di Azure, impostare la Regione sull'ambiente del servizio app con Bilanciamento del Carico Interno (ILB).
Creare una zona DNS privata
È necessaria una zona DNS privato per la risoluzione dei nomi interna. Crearlo con il nome dell'ambiente del servizio app definendo i set di record seguenti:
| Nome | Tipo | Valore |
|---|---|---|
* |
A | Indirizzo in ingresso ambiente del servizio app |
@ |
A | Indirizzo in ingresso ambiente del servizio app |
@ |
SOA | Nome DNS dell'ambiente del servizio App |
*.scm |
A | Indirizzo in entrata dell'App Service Environment |
Per istruzioni dettagliate, vedere Creare una zona DNS privato nel portale di Azure.
Eseguire il mapping del nome DNS pubblico al gateway dell'applicazione
Per connettersi al gateway applicazione da Internet, è necessario un nome di dominio instradabile. Nell'esempio riportato in questo articolo viene usato il nome zava-public.comdi dominio instradabile . Le connessioni alle app di App Service usano il nome di dominio app.zava-public.com.
Dopo aver creato il gateway dell'applicazione, è necessario eseguire il mapping dell'indirizzo IP pubblico frontend del gateway al nome di dominio dell'app. Questo articolo crea un record in una zona DNS di Azure per l'esempio. Per creare una zona DNS e un recordset, vedere Creare una zona e un record DNS di Azure nel portale di Azure.
Quando si esegue il mapping di un dominio pubblico a un gateway di applicazione, non è necessario configurare un dominio personalizzato nel servizio App. È possibile acquistare ed eseguire il mapping di un dominio del servizio app.
Creare un certificato pubblico valido
Per migliorare la sicurezza, associare un certificato TLS per la crittografia della sessione. Il certificato viene importato nel gateway applicazione in un secondo momento.
Il file di certificato deve avere una chiave privata.
Salvare il certificato nel formato scambio di informazioni personali (pfx).
Per associare il certificato TLS al gateway applicazione, è necessario un certificato pubblico valido con le informazioni seguenti:
| Nome | Descrizione | Valore | Esempio |
|---|---|---|---|
| Nome comune | Un certificato standard o un certificato wildcard per il gateway dell'applicazione. | <your-application-name>.<your-domain-name> *.<your-domain-name> |
app.zava-public.com *.zava-public.com |
| Nomi alternativi del soggetto (SAN) | Il SAN che consente la connessione al servizio app Kudu. Se non si vuole pubblicare il servizio Kudu dell'App Service in Internet, questa impostazione è facoltativa. | <your-application-name>.scm.<your-domain-name> *.scm.<your-domain-name> |
app.scm.zava-public.com *.scm.zava-public.com |
È possibile acquistare e gestire un certificato del servizio app da usare come certificato TLS ed esportarlo in formato pfx .
Creare un gateway applicazione
La procedura seguente crea un gateway applicativo con un ambiente del servizio app con bilanciamento del carico interno nel portale di Azure. Per istruzioni generali su come creare un gateway di applicazione, vedere Creare un gateway di applicazione con un Web Application Firewall nel portale di Azure.
Configurare le impostazioni di base
Nel portale di Azure passare alla home page e selezionare + Crea una risorsa.
nella pagina Marketplace, cerca Application Gateway.
Nella scheda Gateway delle applicazioni Microsoft, selezionare Crea>Gateway delle applicazioni.
Nel riquadro Crea gateway delle applicazioni, configurare le impostazioni seguenti nella scheda Impostazioni di base:
Selezionare la sottoscrizione.
Selezionare un Gruppo di risorse esistente oppure creane uno nuovo.
Immettere un nome del gateway di applicazione.
Selezionare la località Area .
Impostare il livello su Standard V2 o WAF V2 (abilita la funzionalità WAF nel gateway delle applicazioni).
Selezionare una rete virtuale esistente o crearne una nuova.
Selezionare una subnet esistente o crearne una nuova.
Configurare le impostazioni per i front-end
Selezionare Avanti: Front-end >e configurare le impostazioni front-end seguenti:
Impostare il tipo di indirizzo IP front-end su Pubblico, Privato o Entrambi.
Per il tipo Privato o Entrambi , è anche necessario assegnare un indirizzo IP privato statico nell'intervallo di subnet del gateway applicazione.
Per Indirizzo IP pubblico immettere l'indirizzo IP pubblico da usare per l'accesso pubblico al gateway applicativo.
Registrare l'indirizzo IP pubblico per in un secondo momento, quando si aggiunge un record per l'indirizzo IP nel servizio DNS.
Nell'esempio riportato in questo articolo viene usata l'opzione Public per abilitare solo gli endpoint pubblici.
Configurare le impostazioni per i back-end
Selezionare Avanti: Back-end >e configurare le impostazioni back-end seguenti:
Immettere un nome del pool back-end, ad esempio
zava-backend-pool.Per Tipo di destinazione selezionare Servizi app o indirizzo IP o FQDN.
Per Destinazione, selezionare l'app ospitata nel tuo ILB App Service Environment.
Seleziona Aggiungi.
L'esempio in questo articolo seleziona l'opzione Servizi app :
Configurazione delle regole di instradamento
Selezionare Avanti: Configurazione >e quindi aggiungi una regola di routing.
Nel riquadro Aggiungi una regola di routing configurare le impostazioni seguenti:
Immettere il nome della regola, ad esempio
zava-routing-rule.Specificare la priorità per l'elaborazione della regola in relazione alle altre regole. Immettere un valore compreso tra 1 (priorità più alta o prima elaborata) e 20.000 (priorità più bassa o ultima elaborazione).
Per completare la configurazione della regola, è necessario specificare le impostazioni per un Listener e i target di Backend.
Aggiungere un listener HTTP
Per l'implementazione della prova di concetto, aggiungere un listener HTTP con le impostazioni seguenti:
Impostazione Descrizione Valore di esempio Nome del listener Immettere il nome del listener. zava-http-rule-listenerIP front-end Identificare il tipo di indirizzo IP front-end. L'esempio in questo articolo usa un indirizzo IP che supporta l'accesso a Internet pubblico. IPv4 pubblico Protocollo Selezionare il protocollo per la connessione. HTTP
Nota: per questo esempio, non selezionare crittografia TLS .Porto Specificare la porta HTTP predefinita. 80 Tipo di listener Indicare se il listener supporta uno o più siti. - Per un solo sito selezionare Basic.
- Per più siti, selezionare Multisito.Tipo host Identificare il tipo di nome host del sito Web. - Per un singolo sito selezionare Single.
- Per più siti, selezionare Multiplo/Wildcard.nome dell'host Immettere uno o più nomi di dominio instradabili per l'app di App Service. app.zava-public.com,app.zava-online.comL'immagine seguente mostra la definizione della regola di routing e la configurazione per un listener HTTP:
Aggiungere un listener HTTPS
Per migliorare la sicurezza, aggiungere un listener HTTPS con crittografia TLS:
Impostazione Descrizione Valore di esempio Nome del listener Immettere il nome del listener. zave-https-rule-listenerIP front-end Identificare il tipo di indirizzo IP front-end. L'esempio in questo articolo usa un indirizzo IP che supporta l'accesso a Internet pubblico. IPv4 pubblico Protocollo Selezionare il protocollo per la connessione. HTTPS o TLS Porto Specificare la porta HTTPS predefinita. 443 Tipo di listener Indicare se il listener supporta uno o più siti. - Per un solo sito selezionare Basic.
- Per più siti, selezionare Multisito.Tipo host Identificare il tipo di nome host del sito Web. - Per un singolo sito selezionare Single.
- Per più siti, selezionare Multiplo/Wildcard.nome dell'host Immettere uno o più nomi di dominio instradabili per la tua applicazione Servizio App. app.zava-public-cert.com,app.zava-secure.comPer Le impostazioni Https scegliere il certificato da usare per la connessione crittografata:
Caricare un certificato: selezionare questa opzione se si vuole caricare un certificato contenente il cn e la chiave privata con il formato pfx .
Immettere un nome di certificato per identificare il certificato, ad esempio
zava-https-certificate.Identificare il file di certificato PFX che definisce il certificato. È possibile usare l'icona Seleziona un file per individuare il file usando Esplora file.
Immettere la password del certificato.
Scegliere un certificato da Key Vault: selezionare questa opzione se si vuole scegliere un certificato archiviato in Azure Key Vault.
Immettere un nome di certificato per identificare il certificato, ad esempio
zava-https-certificate.Identificare l'identità gestita associata al certificato, ad esempio
zava-https-users.Annotazioni
Se il Key Vault utilizza il modello di autorizzazione Role-based Access Control (RBAC), non è possibile usare il portale di Azure per completare i passaggi iniziali necessari per fare riferimento al Key Vault. Usare invece un modello di Azure Resource Manager (modello arm), Bicep, l'interfaccia della riga di comando di Azure o Azure PowerShell. Durante il processo, il sistema usa un'identità gestita che contiene le autorizzazioni di controllo degli accessi in base al ruolo appropriate.
Specificare l'insieme di credenziali delle chiavi in cui è archiviato il certificato, ad esempio
zava-key-vault.Identificare l'ID certificato , ad esempio
https://zava-key-vault.vault.azure.net/secrets/zava-certificate.
L'immagine seguente mostra la configurazione per un listener HTTPS che accede a un certificato archiviato in un insieme di credenziali delle chiavi:
Dopo aver configurato le proprietà del listener HTTPS, selezionare Aggiungi.
Configurare il pool back-end
Per completare la definizione della regola di routing, selezionare la scheda Destinazioni back-end e configurare le impostazioni seguenti. Per questa sezione si usano le stesse informazioni del pool back-end specificate in precedenza.
Impostare il Tipo di destinazione su Pool back-end.
Per la destinazione back-end, selezionare il pool back-end specificato in precedenza.
Per le impostazioni back-end selezionare il collegamento Aggiungi nuovo e configurare le impostazioni seguenti:
Impostazione Descrizione Valore di esempio Nome delle impostazioni back-end Immettere un nome per identificare le impostazioni per il back-end. zava-backend-settingsProtocollo back-end Selezionare il protocollo da usare per la connessione back-end. HTTP o HTTPS
Nota: l'esempio in questo articolo usa HTTPS.Porta del back-end Immettere il valore di porta predefinito per la connessione back-end. 443 Tipo di convalida del certificato back-end
e Autorità emittente di certificati di backendSelezionare l'autorità emittente del certificato e l'ambito del processo di convalida. L'autorità emittente definisce i criteri per un ambito di convalida completo.
Il nome di dominio predefinito di un ambiente del servizio app con bilanciamento del carico interno è.appserviceenvironment.net. L'emittente del certificato per questo dominio è un'autorità di certificazione radice pubblica attendibile (CA). È possibile scegliere l'uso della CA pubblica o di un provider privato e specificare se si vuole che la convalida sia configurabile.- Per fare affidamento sul processo di convalida completo fornito dall'autorità pubblica, selezionare Completa convalida e CA pubblica. Queste opzioni sono le impostazioni predefinite.
- Per usare un provider privato con un processo di convalida che è possibile configurare in base alle proprie esigenze, selezionare Configurabile e CA privata.Timeout della richiesta (secondi) Immettere il tempo per cui il gateway dell'applicazione attende una risposta dal pool back-end prima di restituire un messaggio di errore di Timeout di connessione. 20 Eseguire l'override con il nuovo nome host Specificare se sovrascrivere l'intestazione dell'host durante la connessione all'app nell'ambiente del servizio app con bilanciamento del carico interno. Quando si seleziona Sì, si configura anche l'impostazione di Sostituzione nome host. Sì Sovrascrittura del nome host Specificare come eseguire l'override del nome host. È possibile specificare di scegliere un valore dalla destinazione back-end o immettere un nome di dominio specifico. Selezionare il nome host dal target del backend
Quando si imposta il pool back-end sull'App Service, è possibile selezionare l'host dalla destinazione back-end.Creare probe personalizzati Indicare se utilizzare sonde di monitoraggio personalizzate. Per impostazione predefinita, questa impostazione è abilitata (Sì). No L'immagine seguente mostra come configurare le impostazioni back-end per una connessione al protocollo HTTPS:
Dopo aver configurato le impostazioni back-end, selezionare Aggiungi.
Per completare la definizione della regola di routing, selezionare Aggiungi.
(Facoltativo) Definire i tag per la risorsa.
Selezionare Rivedi e crea ed esaminare le impostazioni di configurazione. Quando è pronto per configurare il gateway delle applicazioni, selezionare Crea.
Configurare l'integrazione del gateway con l'ambiente
È possibile accedere all'ambiente del servizio app con bilanciamento del carico interno dal gateway applicazione utilizzando un link di rete virtuale di Azure in una zona DNS privata di Azure. Il collegamento alla zona DNS privata punta alla rete virtuale che contiene il gateway applicativo.
Verificare la presenza di un collegamento di rete virtuale esistente
Controllare i collegamenti di rete virtuale nella zona DNS privata e verificare di avere un collegamento per il gateway dell'applicazione:
Nel portale di Azure, vai alla risorsa del Application Gateway.
Registrare la rete virtuale che contiene la risorsa gateway:
Passare alla risorsa zona DNS privato .
Nel menu a sinistra, selezionare DNS Management>Collegamenti di rete virtuale.
Nel riquadro destro sono elencati tutti i collegamenti esistenti. Ogni collegamento indica la rete virtuale per l'integrazione.
Individuare un collegamento con un'integrazione nella rete virtuale che contiene il gateway dell'applicazione.
Se non si dispone di un collegamento alla rete virtuale per il gateway applicativo, segui la procedura descritta nella sezione seguente e aggiungi un collegamento alla rete virtuale.
Configurare un collegamento di rete virtuale con una zona DNS privato
Nel portale di Azure, passare alla risorsa zona DNS privata.
Nel menu a sinistra, selezionare Gestione DNS>Collegamenti di rete virtuale.
Seleziona + Aggiungi.
Nel riquadro Aggiungi collegamento rete virtuale configurare il nuovo collegamento:
Immettere un nome collegamento.
Selezionare la sottoscrizione.
Selezionare la rete virtuale che contiene il gateway dell'applicazione.
Fare clic su Crea.
Confermare lo stato di integrità del back-end
Una volta confermato il collegamento alla rete virtuale, è possibile monitorare lo stato di integrità del back-end per il gateway applicativo.
Nel portale di Azure, vai alla risorsa Application Gateway.
Nel menu a sinistra, selezionare Monitoraggio>Stato del backend.
Aggiungere un record DNS pubblico
Per accedere al gateway dell'applicazione da Internet, è necessario configurare la mappatura DNS.
È possibile creare un record pubblico in una zona DNS di Azure in modo che punti all'indirizzo IP pubblico del front-end per il gateway applicativo.
Dal portale di Azure, accedere alla risorsa del gateway applicazione.
Nel menu a sinistra, selezionare Impostazioni>Configurazioni IP front-end.
Individuare l'indirizzo IP pubblico front-end per il gateway delle applicazioni.
Passare alla risorsa zona DNS di Azure .
Nel menu a sinistra selezionare Gestione DNS>Recordset.
Selezionare + Aggiungi e aggiungere un record per mappare il nome di dominio dell'applicazione all'indirizzo IP pubblico front-end del gateway di applicazione.
Convalidare la connessione
Verificare la risoluzione del nome di dominio dell'app verso l'indirizzo IP pubblico della parte frontale del gateway applicazione.
Controllare la connessione da un dispositivo connesso a Internet:
Testare l'accesso web al dominio per la tua app nel browser: