Proteggere il traffico tra le app per la logica Standard e le reti virtuali di Azure usando endpoint privati

Si applica a: App per la logica di Azure (standard)

Per comunicare in modo sicuro e privato tra il flusso di lavoro in un'app per la logica Standard e una rete virtuale di Azure, è possibile configurare endpoint privati per il traffico in ingresso e usare l'integrazione della rete virtuale per il traffico in uscita.

Un endpoint privato è un'interfaccia di rete che si connette privatamente e in modo sicuro a un servizio basato su un collegamento privato di Azure. Il servizio può essere un servizio di Azure, ad esempio Archiviazione di Azure, Azure Cosmos DB, SQL o un servizio di collegamento privato. L'endpoint privato usa un indirizzo IP privato della rete virtuale per introdurre in modo efficace il servizio nella rete virtuale.

Questo articolo illustra come configurare l'accesso tramite endpoint privati per il traffico in ingresso e l'integrazione della rete virtuale per il traffico in uscita.

Per altre informazioni, vedere la documentazione seguente:

Prerequisiti

È necessario avere una rete virtuale di Azure nuova o esistente che include una subnet senza delega. Questa subnet viene usata per distribuire e allocare indirizzi IP privati dalla rete virtuale.

Per altre informazioni, vedere la documentazione seguente:

Configurare il traffico in ingresso tramite endpoint privati

Per proteggere il traffico in ingresso al flusso di lavoro, completare questi passaggi generali:

  1. Avviare il flusso di lavoro con un trigger predefinito in grado di ricevere e gestire le richieste in ingresso, ad esempio il trigger Richiesta o il trigger HTTP + Webhook. Questo trigger configura il flusso di lavoro con un endpoint chiamabile.

  2. Aggiungere un endpoint privato per la risorsa dell'app per la logica alla rete virtuale.

  3. Effettuare chiamate di test per controllare l'accesso all'endpoint. Per chiamare il flusso di lavoro dell'app per la logica dopo aver configurato questo endpoint, è necessario essere connessi alla rete virtuale.

Considerazioni sul traffico in ingresso tramite endpoint privati

  • Se si accede dall'esterno della rete virtuale, la visualizzazione di monitoraggio non può accedere agli input e agli output da trigger e azioni.

  • I trigger webhook dell'API gestita (trigger push ) e le azioni non funzioneranno perché vengono eseguiti nel cloud pubblico e non possono chiamare nella rete privata. Richiedono un endpoint pubblico per ricevere chiamate. Ad esempio, tali trigger includono il trigger Dataverse e il trigger griglia di eventi.

  • Se si utilizza il trigger Office 365 Outlook, il flusso di lavoro viene attivato solo ogni ora.

  • La distribuzione da Visual Studio Code o dall'interfaccia della riga di comando di Azure funziona solo dall'interno della rete virtuale. È possibile usare il Centro distribuzione per collegare l'app per la logica a un repository GitHub. È quindi possibile usare l'infrastruttura di Azure per compilare e distribuire il codice.

    Per consentire il funzionamento dell'integrazione di GitHub, rimuovere l'impostazione WEBSITE_RUN_FROM_PACKAGE dall'app per la logica o impostare il valore su 0.

  • L'abilitazione di collegamento privato non influisce sul traffico in uscita, che passa comunque attraverso l'infrastruttura di servizio app.

Prerequisiti per il traffico in ingresso attraverso endpoint privati

Oltre alla configurazione della rete virtuale nei prerequisiti di primo livello, è necessario disporre di un flusso di lavoro dell'app per la logica Standard nuovo o esistente che inizia con un trigger predefinito in grado di ricevere le richieste.

Ad esempio, il trigger Di richiesta crea un endpoint nel flusso di lavoro in grado di ricevere e gestire le richieste in ingresso da altri chiamanti, inclusi i flussi di lavoro. Questo endpoint fornisce un URL che è possibile usare per chiamare e attivare il flusso di lavoro. Per questo esempio, i passaggi continuano con il trigger Di richiesta.

Per altre informazioni, vedere Ricevere e rispondere alle richieste HTTP in ingresso usando App per la logica di Azure.

Creare il flusso di lavoro

  1. Se non è già stato fatto, creare un'app per la logica basata su tenant singolo e un flusso di lavoro vuoto.

  2. Dopo l'apertura della finestra di progettazione, aggiungere il trigger Richiesta come primo passaggio del flusso di lavoro.

  3. In base ai requisiti dello scenario, aggiungere altre azioni da eseguire nel flusso di lavoro.

  4. Al termine, salvare il flusso di lavoro.

Per altre informazioni, vedere Creare flussi di lavoro di app per la logica a tenant singolo in App per la logica di Azure.

Copiare l'URL dell'endpoint

  1. Nel menu del flusso di lavoro selezionare Panoramica.

  2. Nella pagina Panoramica copiare e salvare l'URL del flusso di lavoro per usarlo in un secondo momento.

    Per attivare il flusso di lavoro, chiamare o inviare una richiesta a questo URL.

  3. Assicurarsi che l'URL funzioni chiamando o inviando una richiesta all'URL. È possibile usare qualsiasi strumento che si desidera inviare la richiesta, ad esempio Postman.

Configurare la connessione all'endpoint privato

  1. Nel menu dell'app per la logica, in Impostazioni selezionare Rete.

  2. Nella scheda Traffico in ingresso della pagina Rete selezionare Endpoint privati.

  3. Nelle connessioni endpoint privato selezionare Aggiungi.

  4. Nel riquadro Aggiungi endpoint privato visualizzato specificare le informazioni richieste sull'endpoint.

    Per altre informazioni, vedere Proprietà dell'endpoint privato.

  5. Dopo che Azure effettua correttamente il provisioning dell'endpoint privato, riprovare a chiamare l'URL del flusso di lavoro.

    Questa volta viene visualizzato un errore previsto 403 Forbidden , ovvero l'endpoint privato è configurato e funziona correttamente.

  6. Per assicurarsi che la connessione funzioni correttamente, creare una macchina virtuale nella stessa rete virtuale con l'endpoint privato e provare a chiamare il flusso di lavoro dell'app per la logica.

Configurare il traffico in uscita usando l'integrazione della rete virtuale

Per proteggere il traffico in uscita dall'app per la logica, è possibile integrare l'app per la logica con una rete virtuale. Prima di tutto, creare e testare un flusso di lavoro di esempio. È quindi possibile configurare l'integrazione della rete virtuale.

Considerazioni sul traffico in uscita tramite l'integrazione della rete virtuale

  • La configurazione dell'integrazione della rete virtuale influisce solo sul traffico in uscita. Per proteggere il traffico in ingresso, che continua a usare l'endpoint condiviso servizio app, vedere Configurare il traffico in ingresso tramite endpoint privati.

  • Non è possibile modificare le dimensioni della subnet dopo l'assegnazione, quindi usare una subnet sufficientemente grande per supportare la scalabilità che l'app potrebbe raggiungere. Per evitare problemi con la capacità della subnet, usare una /26 subnet con 64 indirizzi. Se si crea la subnet per l'integrazione della rete virtuale con il portale di Azure, è necessario usare /27 come dimensione minima della subnet.

  • Per il funzionamento del runtime di App per la logica di Azure, è necessario avere una connessione ininterrotta all'archiviazione back-end. Se l'archiviazione back-end è esposta alla rete virtuale tramite un endpoint privato, assicurarsi che le porte seguenti siano aperte:

    Porta di origine Porta di destinazione Source (Sorgente) Destination Protocollo Scopo
    * 443 Subnet integrata con l'app per la logica Standard Account di archiviazione TCP Account di archiviazione
    * 445 Subnet integrata con l'app per la logica Standard Account di archiviazione TCP Condivisione file SMB (Server Message Block)
  • Per consentire il funzionamento dei connettori gestiti ospitati in Azure, è necessario avere una connessione ininterrotta al servizio API gestito. Con l'integrazione della rete virtuale, assicurarsi che nessun firewall o criterio di sicurezza di rete blocchi queste connessioni. Se la rete virtuale usa un gruppo di sicurezza di rete (NSG), una tabella di route definita dall'utente o un firewall, assicurarsi che la rete virtuale consenta le connessioni in uscita a tutti gli indirizzi IP del connettore gestito nell'area corrispondente. In caso contrario, i connettori gestiti da Azure non funzioneranno.

Per altre informazioni, vedere la documentazione seguente:

Creare e testare il flusso di lavoro

  1. Se non è già stato fatto, nel portale di Azure creare un'app per la logica basata su tenant singolo e un flusso di lavoro vuoto.

  2. Dopo l'apertura della finestra di progettazione, aggiungere il trigger Richiesta come primo passaggio del flusso di lavoro.

  3. Aggiungere un'azione HTTP per chiamare un servizio interno non disponibile tramite Internet ed eseguire con un indirizzo IP privato, ad 10.0.1.3esempio .

  4. Al termine, salvare il flusso di lavoro.

  5. Dalla finestra di progettazione eseguire manualmente il flusso di lavoro.

    L'azione HTTP ha esito negativo, che è previsto e progettato perché il flusso di lavoro viene eseguito nel cloud e non può accedere al servizio interno.

Configurare l'integrazione della rete virtuale

  1. Nel portale di Azure, nel menu delle risorse dell'app per la logica, in Impostazioni selezionare Rete.

  2. Nel riquadro Rete selezionare Integrazione rete virtuale nella scheda Traffico in uscita.

  3. Nel riquadro Integrazione rete virtuale selezionare Aggiungi rete virtuale.

  4. Nel riquadro Aggiungi integrazione rete virtuale selezionare la sottoscrizione e la rete virtuale che si connette al servizio interno.

    Dopo aver aggiunto l'integrazione della rete virtuale, nel riquadro Integrazione rete virtuale l'impostazione Route All è abilitata per impostazione predefinita. Questa impostazione indirizza tutto il traffico in uscita attraverso la rete virtuale. Quando questa impostazione è abilitata, l'impostazione dell'app WEBSITE_VNET_ROUTE_ALL viene ignorata.

  5. Se si usa il proprio server dei nomi di dominio (DNS) con la rete virtuale, impostare l'impostazione dell'app dell'app per WEBSITE_DNS_SERVER la logica sull'indirizzo IP per il DNS. Se si dispone di un DNS secondario, aggiungere un'altra impostazione dell'app denominata WEBSITE_DNS_ALT_SERVERe impostare il valore anche sull'IP per il DNS.

  6. Dopo che Azure esegue correttamente il provisioning dell'integrazione della rete virtuale, provare a eseguire di nuovo il flusso di lavoro.

    L'azione HTTP viene ora eseguita correttamente.

Passaggi successivi