Condividi tramite


Integrare un Ambiente Servizio App ILB con Application Gateway di Azure

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:

Diagramma che mostra una visualizzazione generale dell'integrazione tra un gateway applicativo e un'app in un ambiente App Service con ILB.

Prerequisiti

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.

    Screenshot che mostra il nome di dominio per un ambiente con bilanciamento del carico interno (ILB) in ambiente del servizio app nel portale di Azure.

  • 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.

    Screenshot che mostra l'indirizzo IP in ingresso per un ambiente del servizio app con bilanciamento del carico interno nel portale di Azure.

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

  1. Nel portale di Azure passare alla home page e selezionare + Crea una risorsa.

  2. nella pagina Marketplace, cerca Application Gateway.

  3. Nella scheda Gateway delle applicazioni Microsoft, selezionare Crea>Gateway delle applicazioni.

  4. Nel riquadro Crea gateway delle applicazioni, configurare le impostazioni seguenti nella scheda Impostazioni di base:

    1. Selezionare la sottoscrizione.

    2. Selezionare un Gruppo di risorse esistente oppure creane uno nuovo.

    3. Immettere un nome del gateway di applicazione.

    4. Selezionare la località Area .

    5. Impostare il livello su Standard V2 o WAF V2 (abilita la funzionalità WAF nel gateway delle applicazioni).

    6. Selezionare una rete virtuale esistente o crearne una nuova.

    7. Selezionare una subnet esistente o crearne una nuova.

Configurare le impostazioni per i front-end

  1. Selezionare Avanti: Front-end >e configurare le impostazioni front-end seguenti:

    1. 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.

    2. Per Indirizzo IP pubblico immettere l'indirizzo IP pubblico da usare per l'accesso pubblico al gateway applicativo.

      Screenshot che illustra come impostare l'indirizzo IP pubblico per l'accesso al gateway dell'applicazione nel portale di Azure.

    3. 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

  1. Selezionare Avanti: Back-end >e configurare le impostazioni back-end seguenti:

    1. Immettere un nome del pool back-end, ad esempio zava-backend-pool.

    2. Per Tipo di destinazione selezionare Servizi app o indirizzo IP o FQDN.

    3. Per Destinazione, selezionare l'app ospitata nel tuo ILB App Service Environment.

    4. Seleziona Aggiungi.

    L'esempio in questo articolo seleziona l'opzione Servizi app :

    Screenshot che mostra come aggiungere un pool di back-end per il gateway delle applicazioni nel portale di Azure.

Configurazione delle regole di instradamento

  1. Selezionare Avanti: Configurazione >e quindi aggiungi una regola di routing.

    Screenshot che mostra come selezionare

  2. Nel riquadro Aggiungi una regola di routing configurare le impostazioni seguenti:

    1. Immettere il nome della regola, ad esempio zava-routing-rule.

    2. 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

  1. 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-listener
    IP 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.com

    L'immagine seguente mostra la definizione della regola di routing e la configurazione per un listener HTTP:

    Screenshot che mostra come configurare il listener per una regola di routing HTTP nel gateway applicazione.

Aggiungere un listener HTTPS

  1. 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-listener
    IP 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.com

    Per 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 .

      1. Immettere un nome di certificato per identificare il certificato, ad esempio zava-https-certificate.

      2. Identificare il file di certificato PFX che definisce il certificato. È possibile usare l'icona Seleziona un file per individuare il file usando Esplora file.

      3. 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.

      1. Immettere un nome di certificato per identificare il certificato, ad esempio zava-https-certificate.

      2. 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.

      3. Specificare l'insieme di credenziali delle chiavi in cui è archiviato il certificato, ad esempio zava-key-vault.

      4. 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:

    Screenshot che mostra come configurare il listener di una regola di routing HTTPS per il gateway applicativo.

  2. Dopo aver configurato le proprietà del listener HTTPS, selezionare Aggiungi.

Configurare il pool back-end

  1. 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.

    Screenshot che mostra come configurare il listener di una regola di routing HTTPS per il gateway applicazione.

    1. Impostare il Tipo di destinazione su Pool back-end.

    2. Per la destinazione back-end, selezionare il pool back-end specificato in precedenza.

    3. 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-settings
      Protocollo 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 backend
      Selezionare 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 , si configura anche l'impostazione di Sostituzione nome host.
      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:

      Screenshot che mostra come configurare le impostazioni back-end per una connessione al protocollo HTTPS nel portale di Azure.

  2. Dopo aver configurato le impostazioni back-end, selezionare Aggiungi.

  3. Per completare la definizione della regola di routing, selezionare Aggiungi.

  4. (Facoltativo) Definire i tag per la risorsa.

  5. 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.

Controllare i collegamenti di rete virtuale nella zona DNS privata e verificare di avere un collegamento per il gateway dell'applicazione:

  1. Nel portale di Azure, vai alla risorsa del Application Gateway.

  2. Registrare la rete virtuale che contiene la risorsa gateway:

    Screenshot che mostra come localizzare la rete virtuale che contiene il gateway applicativo nel portale di Azure.

  3. Passare alla risorsa zona DNS privato .

  4. 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.

  5. 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.

  1. Nel portale di Azure, passare alla risorsa zona DNS privata.

  2. Nel menu a sinistra, selezionare Gestione DNS>Collegamenti di rete virtuale.

  3. Seleziona + Aggiungi.

  4. 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.

    Screenshot che mostra come creare un nuovo collegamento di rete virtuale in una zona DNS privato nel portale di Azure.

  5. 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.

  1. Nel portale di Azure, vai alla risorsa Application Gateway.

  2. Nel menu a sinistra, selezionare Monitoraggio>Stato del backend.

    Screenshot che mostra come monitorare lo stato di integrità del back-end per un gateway applicazione nel portale di Azure.

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.

  1. Dal portale di Azure, accedere alla risorsa del gateway applicazione.

  2. Nel menu a sinistra, selezionare Impostazioni>Configurazioni IP front-end.

  3. Individuare l'indirizzo IP pubblico front-end per il gateway delle applicazioni.

    Screenshot che mostra come individuare l'indirizzo IP front-end pubblico per il gateway applicativo nel portale di Azure.

  4. Passare alla risorsa zona DNS di Azure .

  5. Nel menu a sinistra selezionare Gestione DNS>Recordset.

  6. Selezionare + Aggiungi e aggiungere un record per mappare il nome di dominio dell'applicazione all'indirizzo IP pubblico front-end del gateway di applicazione.

    Screenshot che mostra un record aggiunto alla zona DNS per mappare il nome di dominio dell'app all'indirizzo IP pubblico del gateway dell'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:

    Screenshot di una finestra di comando che mostra un controllo di risoluzione sul nome di dominio dell'app verso l'indirizzo IP pubblico del gateway.

  • Testare l'accesso web al dominio per la tua app nel browser:

    Screenshot di una finestra del browser che mostra un test per verificare l'accesso al nome di dominio dell'app.