Connessioni ibride del Servizio app di Azure

Connessioni ibride è un servizio disponibile in Azure e una funzionalità del Servizio app di Azure. Come servizio, fornisce modalità d'uso e funzionalità superiori rispetto a quelle usate nel Servizio app. Per altre informazioni su Connessioni ibride e sul suo uso al di fuori del Servizio app, vedere Protocollo per le connessioni ibride di inoltro di Azure.

In servizio app è possibile usare Connessioni ibride per accedere alle risorse dell'applicazione in qualsiasi rete in grado di effettuare chiamate in uscita ad Azure sulla porta 443. Connessioni ibride fornisce l'accesso dall'app a un endpoint TCP e non consente un nuovo modo per accedere all'app. Quando usata in Servizio app, ogni connessione ibrida è correlata a una singola combinazione di host e porta TCP. In questo modo le app possono accedere alle risorse in qualsiasi sistema operativo, purché si tratta di un endpoint TCP. La funzionalità Connessioni ibride non conosce il protocollo dell'applicazione o gli elementi a cui si accede. Fornisce semplicemente l'accesso alla rete.

Funzionamento

Connessioni ibride richiede la distribuzione di un agente di inoltro in cui può raggiungere sia l'endpoint desiderato che Azure. L'agente di inoltro, Gestione connessione ibrida (HCM), chiama il Inoltro di Azure sulla porta 443. Dal sito dell'app Web, l'infrastruttura servizio app si connette anche Inoltro di Azure per conto dell'applicazione. Tramite le connessioni unite, l'app è in grado di accedere all'endpoint desiderato. La connessione usa TLS 1.2 per la sicurezza e le chiavi di firma di accesso condiviso per l'autenticazione e l'autorizzazione.

Diagram of Hybrid Connection high-level flow

Quando l'app esegue una richiesta DNS che corrisponde a un endpoint di Connessione ibrida configurato, il traffico TCP in uscita viene reindirizzato lungo la connessione ibrida.

Nota

Ciò significa che è consigliabile usare sempre un nome DNS per la connessione ibrida. Alcuni software client non eseguono una ricerca DNS se l'endpoint usa un indirizzo IP al posto del nome DNS.

Vantaggi della funzionalità Connessioni ibride di Servizio app di Azure

La funzionalità Connessioni ibride offre numerosi vantaggi tra cui:

  • Le app possono accedere in modo sicuro a servizi e sistemi locali.
  • La funzionalità non richiede un endpoint accessibile da Internet.
  • La configurazione è rapida e semplice. Non sono necessari gateway.
  • Ogni connessione ibrida corrisponde a una singola combinazione host:porta, utile per la sicurezza.
  • In genere non richiede buchi del firewall. in quanto le connessioni sono tutte in uscita su porte Web standard.
  • Poiché la funzionalità è a livello di rete, è indipendente dal linguaggio usato dall'app e dalla tecnologia usata dall'endpoint.
  • Può essere usata per fornire l'accesso a più reti da una singola app.
  • È supportata in ga ga per le app Windows e le app Linux. Non è supportata per i contenitori Windows personalizzati.

Operazioni che non è possibile eseguire con la funzionalità Connessioni ibride

Le operazioni che non è possibile eseguire con connessioni ibride includono le seguenti:

  • Montare un'unità.
  • Usare UDP.
  • Accedere a servizi basati su TCP che usano porte dinamiche, ad esempio la modalità FTP passiva o la modalità passiva estesa.
  • Supportare LDAP, perché può richiedere UDP.
  • Supportare Active Directory, perché non è possibile aggiungere a un dominio un ruolo di lavoro del servizio app.

Aggiungere e creare connessioni ibride nell'app

Per creare una connessione ibrida, accedere al portale di Azure e selezionare l'app. Selezionare ReteConfigurare>gli endpoint della connessione ibrida. Da qui è possibile visualizzare le connessioni ibride configurate per l'app.

Screenshot of Hybrid Connection list

Per aggiungere una nuova connessione ibrida, selezionare [+] Aggiungi connessione ibrida. Verrà visualizzato un elenco delle connessioni ibride che sono già state create. Per aggiungere una o più connessioni all'app, selezionare quelle desiderate e quindi selezionare Aggiungi connessione ibrida selezionata.

Screenshot of Hybrid Connection portal

Se si intende creare una nuova connessione ibrida, selezionare Crea nuova connessione ibrida. Specificare le informazioni seguenti:

  • Nome connessione ibrida.
  • Nome host dell'endpoint.
  • Porta dell'endpoint.
  • Spazio dei nomi del bus di servizio che si vuole usare.

Screenshot of Create new hybrid connection dialog box

Ogni connessione ibrida è associata a uno spazio dei nomi del bus di servizio e ogni spazio dei nomi del bus di servizio si trova in un'area di Azure. È importante provare a usare uno spazio dei nomi del bus di servizio nella stessa area dell'app, in modo da evitare la latenza indotta dalla rete.

Se si vuole rimuovere la connessione ibrida dall'app, fare clic con il pulsante destro del mouse sulla connessione e selezionare Disconnetti.

È possibile visualizzare i dettagli di una connessione ibrida aggiunta all'app semplicemente selezionandola.

Screenshot of Hybrid connections details

Creare una connessione ibrida nel portale del Servizio di inoltro di Azure

Oltre all'esperienza del portale offerta all'interno dell'app, è possibile creare connessioni ibride all'interno del portale del Servizio di inoltro di Azure. Affinché una connessione ibrida possa essere usata dal Servizio app, deve:

  • Richiedere l'autorizzazione client.
  • Includere un elemento di metadati, denominato endpoint, che contenga una combinazione host:porta come valore.

Connessioni ibride e piani di servizio app

Le connessioni ibride del servizio app sono disponibili solo per gli SKU con piano tariffario Basic, Standard, Premium e Isolato. Le connessioni ibride non sono disponibili per le app per le funzioni nei piani a consumo. Esistono limiti legati al piano tariffario.

Piano tariffario Numero di connessioni ibride a disposizione nel piano
Basic 5 per piano
Standard 25 per piano
Premium (v1-v3) 220 per app
Isolato (v1-v2) 220 per app

L'interfaccia utente del piano di servizio app mostra quante connessioni ibride sono in uso e da parte di quali app.

Screenshot of App Service plan properties

Selezionare la connessione ibrida per visualizzarne i dettagli. È possibile vedere tutte le informazioni disponibili nella visualizzazione dell'app, oltre al numero di app nello stesso piano che usano la connessione ibrida selezionata.

È previsto un limite al numero di endpoint di connessione ibrida che possono essere usati in un piano servizio app ibrido. Tuttavia, ogni connessione ibrida usata può essere associata a un numero qualsiasi di app nel piano di servizio app specifico. Ad esempio, una singola connessione ibrida usata in cinque app distinte in un piano di servizio app viene conteggiata come una connessione ibrida.

Prezzi

Oltre a un requisito di SKU servizio app piano, l'uso di Connessioni ibride prevede un costo aggiuntivo. È presente un addebito per ogni listener usato da una connessione ibrida. Il listener è l'agente Gestione connessione ibrida. Cinque connessioni ibride supportate da due agenti Gestione connessione ibrida equivalgono a dieci listener. Per altre informazioni, vedere Prezzi del bus di servizio.

Gestione connessione ibrida

La funzionalità Connessioni ibride richiede un agente di inoltro nella rete che ospita l'endpoint della connessione ibrida. L'agente di inoltro viene chiamato Gestione connessione ibrida. Per scaricare Gestione connessione ibrida, dall'app nel portale di Azure selezionare Rete>Configurare gli endpoint della connessione ibrida.

Questo strumento viene eseguito in Windows Server 2012 e versioni successive. Gestione connessione ibrida viene eseguito come servizio e si connette in uscita a Inoltro di Azure sulla porta 443.

Dopo avere installato Gestione connessione ibrida, è possibile eseguire HybridConnectionManagerUi.exe per usare l'interfaccia utente per lo strumento. Questo file è contenuto nella directory di installazione di Gestione connessione ibrida. In Windows 10 è sufficiente digitare interfaccia utente Gestione connessione ibrida nella casella di ricerca.

Screenshot of Hybrid Connection Manager

Quando si avvia l'interfaccia utente di Gestione connessione ibrida, la prima cosa che si vede è una tabella nella quale sono elencate tutte le connessioni ibride configurate con questa istanza di Gestione connessione ibrida. Per apportare eventuali modifiche, eseguire prima l'autenticazione con Azure.

Per aggiungere una o più connessioni ibride a Gestione connessione ibrida:

  1. Avviare l'interfaccia utente di Gestione connessione ibrida.

  2. Selezionare Aggiungi una nuova connessione ibrida. Screenshot of Configure New Hybrid Connections

  3. Accedere con l'account Azure per ottenere le connessioni ibride disponibili con le sottoscrizioni. Gestione configurazione HCM non continua a usare l'account Azure oltre a questo.

  4. Scegliere una sottoscrizione.

  5. Selezionare le connessioni ibride che si vuole vengano inoltrate tramite Gestione connessione ibrida. Screenshot of Hybrid Connections

  6. Selezionare Salva.

Ora è possibile visualizzare le connessioni ibride che sono state aggiunte. È anche possibile selezionare la connessione ibrida configurata per visualizzarne i dettagli.

Screenshot of Hybrid Connection Details

Per supportare le connessioni ibride con cui è configurato, Gestione connessione ibrida richiede:

  • Accesso TCP ad Azure sulla porta 443.
  • Accesso TCP all'endpoint della connessione ibrida.
  • Possibilità di eseguire ricerche DNS nell'host endpoint e nello spazio dei nomi del bus di servizio. In altre parole, il nome host nella connessione di inoltro di Azure deve essere risolvibile dal computer che ospita Gestione connessione HCM.

Nota

Il servizio di inoltro di Azure si affida a WebSocket per la connettività. Questa funzionalità è disponibile solo in Windows Server 2012 e versioni successive. Per questo motivo, Gestione connessione ibrida non è supportato nelle versioni precedenti a Windows Server 2012.

Ridondanza

Ogni istanza di Gestione connessione ibrida può supportare più connessioni ibride. Ogni connessione ibrida specificata può anche essere supportata da più istanze di Gestione connessione ibrida. Il comportamento predefinito consiste nell'indirizzare il traffico tra le istanze configurate di Gestione connessione ibrida per un endpoint specificato. Se si intende usufruire della disponibilità elevata nelle connessioni ibride dalla rete, eseguire più istanze di Gestione connessione ibrida in computer separati. L'algoritmo di distribuzione del carico usato dal servizio Inoltro per distribuire il traffico agli agenti Gestione connessione ibrida prevede un'assegnazione casuale.

Aggiungere manualmente una connessione ibrida

Per consentire a un'entità esterna alla propria sottoscrizione di ospitare un'istanza di Gestione connessione ibrida per una connessione ibrida specificata, condividere con tale entità la stringa di connessione gateway per la connessione ibrida. La stringa di connessione gateway è visibile nelle proprietà della connessione ibrida nel portale di Azure. Per usare tale stringa, selezionare Immetti manualmente in Gestione connessione ibrida e incollare la stringa di connessione gateway.

Manually add a Hybrid Connection

Aggiornamento

A Gestione connessione ibrida vengono apportati aggiornamenti periodici per correggere errori o aggiungere miglioramenti. Quando gli aggiornamenti vengono resi disponibili, viene visualizzata una finestra popup nell'interfaccia utente di Gestione connessione ibrida. L'aggiornamento applica le modifiche e riavvia Gestione connessione ibrida.

Aggiunta di una connessione ibrida all'app a livello di codice

È presente il supporto dell'interfaccia della riga di comando di Azure per le connessioni ibride. I comandi forniti funzionano sia a livello di app che servizio app piano. I comandi a livello di app sono:

az webapp hybrid-connection

Group
    az webapp hybrid-connection : Methods that list, add and remove hybrid-connections from webapps.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    add    : Add a hybrid-connection to a webapp.
    list   : List the hybrid-connections on a webapp.
    remove : Remove a hybrid-connection from a webapp.

I servizio app del piano consentono di impostare la chiave che verrà utilizzata da una determinata connessione ibrida. In ogni connessione ibrida sono impostate due chiavi, una primaria e una secondaria. È possibile scegliere di usare la chiave primaria o secondaria con i comandi seguenti. In questo modo è possibile cambiare le chiavi per quando si desidera rigenerare periodicamente le chiavi.

az appservice hybrid-connection --help

Group
    az appservice hybrid-connection : A method that sets the key a hybrid-connection uses.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    set-key : Set the key that all apps in an appservice plan use to connect to the hybrid-
                connections in that appservice plan.

Proteggere le connessioni ibride

Una connessione ibrida esistente può essere aggiunta ad altri servizio app App Web da qualsiasi utente che dispone di autorizzazioni sufficienti per l'inoltro bus di servizio di Azure sottostante. Ciò significa che se è necessario impedire ad altri utenti di riutilizzare la stessa connessione ibrida ,ad esempio quando la risorsa di destinazione è un servizio che non dispone di misure di sicurezza aggiuntive per impedire l'accesso non autorizzato, è necessario bloccare l'accesso all'inoltro di bus di servizio di Azure.

Chiunque abbia accesso all'inoltro potrà visualizzare la connessione ibrida quando tenta di aggiungerla alla propria app Web nel portale di Azure, ma non potrà aggiungerla perché non dispone delle autorizzazioni per recuperare la stringa di connessione usata per stabilire la connessione di inoltro.Reader Per aggiungere correttamente la connessione ibrida, è necessario che l'utente abbia l'autorizzazione listKeys (Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action). Il Contributor ruolo o qualsiasi altro ruolo che include questa autorizzazione per l'inoltro consentirà agli utenti di usare la connessione ibrida e aggiungerla alla propria App Web.

Gestire le connessioni ibride

Se è necessario modificare l'host dell'endpoint o la porta per una connessione ibrida, seguire questa procedura:

  1. Rimuovere la connessione ibrida dal Gestione connessione ibrida nel computer locale selezionando la connessione e selezionando Rimuovi in alto a sinistra nella finestra Dettagli connessione ibrida.
  2. Disconnettere la connessione ibrida dal servizio app passando a Connessioni ibride nella pagina servizio app rete.
  3. Passare all'inoltro per l'endpoint che è necessario aggiornare e selezionare Connessioni ibride in Entità nel menu di spostamento a sinistra.
  4. Selezionare la connessione ibrida da aggiornare e selezionare Proprietà in Impostazioni nel menu di spostamento a sinistra.
  5. Apportare le modifiche e fare clic su Salva modifiche nella parte superiore.
  6. Tornare alle impostazioni di Connessioni ibride per servizio app e aggiungere di nuovo la connessione ibrida. Assicurarsi che l'endpoint sia aggiornato come previsto. Se la connessione ibrida non è visualizzata nell'elenco, aggiornare in 5-10 minuti.
  7. Tornare al Gestione connessione ibrida nel computer locale e aggiungere di nuovo la connessione.

Risoluzione dei problemi

Lo stato "Connesso" indica che almeno un'istanza di Gestione connessione ibrida è configurata con quella specifica connessione ed è in grado di raggiungere Azure. Se lo stato della connessione ibrida non è Connesso, la connessione ibrida non è configurata in alcuna istanza di Gestione connessione ibrida che abbia accesso ad Azure. Quando gestione connessione consente di visualizzare Non connesso , è necessario verificare alcuni aspetti:

  • L'host ha accesso in uscita ad Azure sulla porta 443? È possibile eseguire test dall'host di Gestione connessione HCM usando il comando di PowerShell Test-NetConnection Destination -P Port

  • Gestione configurazione HCM è potenzialmente in uno stato non valido? Provare a riavviare il servizio locale "Azure Gestione connessione ibrida Service".

  • È installato un software in conflitto? Gestione connessione ibrida non può coesistere con Biztalk Gestione connessione ibrida o bus di servizio per Windows Server. Di conseguenza, quando si installa Gestione configurazione HCM, tutte le versioni di questi pacchetti devono essere rimosse per prime.

Se lo stato è Connesso ma l'app non riesce a raggiungere l'endpoint:

  • Assicurarsi di usare un nome DNS nella connessione ibrida. Se si usa un indirizzo IP, la ricerca DNS del client richiesta potrebbe non essere possibile. Se il client in esecuzione nell'app Web non esegue una ricerca DNS, la connessione ibrida non funzionerà
  • verificare che il nome DNS usato nella connessione ibrida possa essere risolto dall'host di Gestione connessione ibrida. Controllare la risoluzione usando nslookup EndpointDNSname dove EndpointDNSname corrisponde esattamente a ciò che viene usato nella definizione della connessione ibrida.
  • testare l'accesso dall'host di Gestione connessione HCM all'endpoint usando il comando di PowerShell Test-NetConnection EndpointDNSname -P Porta Se non è possibile raggiungere l'endpoint dall'host di Gestione connessione HCM, controllare i firewall tra i due host, inclusi eventuali firewall basati su host nell'host di destinazione.
  • Se si usa un Servizio app in Linux, assicurarsi di non usare "localhost" come host dell'endpoint. Usare invece il nome del computer se si sta tentando di creare una connessione con una risorsa nel computer locale.

In servizio app, lo strumento da riga di comando tcpping può essere richiamato dalla console di Strumenti avanzati (Kudu). Questo strumento può indicare se si ha accesso a un endpoint TCP, ma non se si ha accesso a un endpoint di connessione ibrida. Quando si usa lo strumento nella console su un endpoint di connessione ibrida, si conferma solo che usa una combinazione host:porta.

Se si dispone di un client da riga di comando per l'endpoint, è possibile testare la connettività dalla console dell'app. Ad esempio, è possibile testare l'accesso agli endpoint del server Web usando curl.