Connessioni ibride del servizio app di Azure
La funzionalità Connessioni ibride è sia un servizio di Azure che una funzionalità del servizio app di Azure. Come servizio, include funzionalità e che usano oltre quelle usate in 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.
All'interno di servizio app, le connessioni ibride possono essere usate per accedere alle risorse dell'applicazione in qualsiasi rete in grado di effettuare chiamate in uscita ad Azure sulla porta 443. Connessioni ibride consente l'accesso dall'app a un endpoint TCP. Non abilita un nuovo modo per accedere all'app. Usate nel servizio app, le connessioni ibride vengono correlate ognuna a una singola combinazione di host e porta TCP.
Questa funzionalità consente alle app di accedere alle risorse in qualsiasi sistema operativo, purché si tratti di un endpoint TCP. La funzionalità Connessioni ibride non conosce o importa qual è il protocollo dell'applicazione o cosa si sta accedendo. Fornisce semplicemente l'accesso alla rete.
Funzionamento
Per le connessioni ibride è necessario distribuire un agente di inoltro in cui può raggiungere sia l'endpoint desiderato che Azure. L'agente di inoltro, Gestione connessione ibrida (HCM), chiama Inoltro di Azure sulla porta 443. Dal sito dell'app Web, l'infrastruttura servizio app si connette anche all'inoltro di Azure per conto dell'applicazione. Tramite le connessioni aggiunte, 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.
Quando l'app effettua una richiesta DNS corrispondente a un endpoint di connessione ibrida configurato, il traffico TCP in uscita viene reindirizzato tramite la connessione ibrida.
Nota
Questo significa che è consigliabile provare a usare sempre un nome DNS per la connessione ibrida. Alcuni software client non eseguono una ricerca DNS se l'endpoint usa invece un indirizzo IP.
Vantaggi della funzionalità Connessioni ibride di Servizio app di Azure
La funzionalità Connessioni ibride offre molti vantaggi, tra cui:
- Le app possono accedere in modo sicuro ai sistemi e ai servizi locali.
- La funzionalità non richiede un endpoint accessibile da Internet.
- È facile e veloce da configurare. Nessun gateway necessario.
- Ogni connessione ibrida corrisponde a una singola combinazione host:porta, il che risulta utile per la sicurezza.
- Normalmente non richiede fori del firewall. Le connessioni sono tutte in uscita su porte Web standard.
- Poiché la funzionalità è a livello di rete, è indipendente dalla lingua usata dall'app e dalla tecnologia usata dall'endpoint.
- Può essere usata per fornire l'accesso a più reti da una singola app.
- Supportato in disponibilità generale per le app di Windows e le app Linux. Le connessioni ibride non sono supportate per i contenitori personalizzati di Windows.
Operazioni che non è possibile eseguire con le connessioni ibride
Le operazioni che non è possibile eseguire con le connessioni ibride includono:
- 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 un ruolo di lavoro servizio app a un dominio.
Aggiungere e creare connessioni ibride nell'app
Per creare una connessione ibrida:
Nella portale di Azure selezionare l'app. Selezionare Impostazioni>Networking.
Accanto a Connessioni ibride selezionare il collegamento Non configurato . Da qui è possibile visualizzare le connessioni ibride configurate per l'app.
Per aggiungere una nuova connessione ibrida, selezionare Aggiungi connessione ibrida. Viene visualizzato un elenco delle connessioni ibride già create. Per aggiungere una o più connessioni all'app, selezionare quelle desiderate e quindi selezionare Aggiungi connessione ibrida selezionata.
Se si intende creare una nuova connessione ibrida, selezionare Crea nuova connessione ibrida. Specificare i valori seguenti:
- Nome connessione ibrida.
- Nome host dell'endpoint.
- Porta dell'endpoint.
- Spazio dei nomi del bus di servizio che si vuole usare.
Ogni connessione ibrida è associata a uno spazio dei nomi bus di servizio. Ogni spazio dei nomi bus di servizio si trova in un'area di Azure. Per evitare la latenza indotta dalla rete, usare uno spazio dei nomi bus di servizio nella stessa area dell'app.
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.
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.
- Avere un elemento di metadati e un endpoint denominato che contiene una combinazione host:port 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 |
---|---|
Di base | 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.
Per visualizzare i dettagli, selezionare la connessione ibrida. È possibile vedere tutte le informazioni disponibili nella visualizzazione dell'app, oltre al numero di app nello stesso piano che usano la connessione ibrida selezionata.
Esiste un limite al numero di endpoint di connessione ibrida che possono essere usati in un piano di servizio app. Ogni connessione ibrida usata può essere usata in un numero qualsiasi di app in tale piano. 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 del piano servizio app, è previsto un costo aggiuntivo per l'uso delle connessioni ibride. È previsto un addebito per ogni listener usato da una connessione ibrida. Il listener è l'agente Gestione connessione ibrida. Se si disponesse di cinque connessioni ibride supportate da due Gestione connessione ibrida che sarebbero 10 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 HCM:
- Nella portale di Azure selezionare l'app. Selezionare Impostazioni>Networking.
- Accanto a Connessioni ibride selezionare il collegamento per aprire la pagina Connessioni ibride.
- Selezionare Scarica gestione connessione.
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 aver installato HCM, è 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 puoi anche cercare Gestione connessione ibrida'interfaccia utente nella casella di ricerca.
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:
Avviare l'interfaccia utente di Gestione connessione ibrida.
Selezionare Aggiungi una nuova connessione ibrida.
Accedere con l'account Azure per ottenere le connessioni ibride disponibili con le sottoscrizioni. Gestione connessione ibrida non continua a usare l'account Azure oltre questo passaggio.
Scegliere una sottoscrizione.
Selezionare le connessioni ibride che si vuole vengano inoltrate tramite Gestione connessione ibrida.
Seleziona Salva.
Ora è possibile visualizzare le connessioni ibride che sono state aggiunte. È anche possibile selezionare la connessione ibrida configurata per visualizzarne i dettagli.
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 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. A causa di questo fatto, HCM non è supportato nei sistemi precedenti a Windows Server 2012.
Ridondanza
Ogni istanza di Gestione connessione ibrida può supportare più connessioni ibride. Più HCM possono supportare qualsiasi 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.
Aggiornamento
A Gestione connessione ibrida vengono apportati aggiornamenti periodici per correggere errori o aggiungere miglioramenti. Quando vengono rilasciati gli aggiornamenti, viene visualizzata una finestra di dialogo nell'interfaccia utente di HCM. L'applicazione dell'aggiornamento applica le modifiche e riavvia gestione connessione ibrida.
Aggiunta di una connessione ibrida all'app a livello di codice
È disponibile il supporto dell'interfaccia della riga di comando di Azure per le connessioni ibride. I comandi forniti operano sia a livello di app che di piano servizio app. 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 comandi di piano servizio app consentono di impostare la chiave usata 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. Questa opzione consente di cambiare i tasti 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
Qualsiasi utente che dispone di autorizzazioni sufficienti per un inoltro bus di servizio di Azure può aggiungere una connessione ibrida esistente per tale inoltro ad altre app Web servizio app. Per impedire ad altri utenti di riutilizzare la stessa connessione ibrida, bloccare l'accesso all'inoltro bus di servizio di Azure. Questa situazione può verificarsi quando la risorsa di destinazione è un servizio che non dispone di altre misure di sicurezza per impedire l'accesso non autorizzato.
Chiunque abbia Reader
accesso all'inoltro è in grado di visualizzare la connessione ibrida se tenta di aggiungerla all'app Web nella portale di Azure. Non possono aggiungerlo perché non dispongono delle autorizzazioni per recuperare il stringa di connessione usato per stabilire la connessione di inoltro. Per aggiungere la connessione ibrida, è necessario disporre dell'autorizzazione listKeys
(Microsoft.Relay/namespaces/hybridConnections/authorizationRules/listKeys/action
). Il Contributor
ruolo o qualsiasi altro ruolo che include questa autorizzazione per l'inoltro consente agli utenti di usare la connessione ibrida e aggiungerla al proprio App Web.
Gestire le connessioni ibride
Se è necessario modificare l'host o la porta dell'endpoint per una connessione ibrida, seguire questa procedura:
- Nella Gestione connessione ibrida selezionare la connessione per visualizzarne la finestra dei dettagli. Selezionare Rimuovi.
- Nella portale di Azure selezionare l'app. Selezionare Impostazioni>Networking.
- Accanto a Connessioni ibride selezionare il collegamento Configurato .
- In Connessioni ibride fare clic con il pulsante destro del mouse sulla connessione e scegliere Disconnetti.
- Passare all'inoltro per l'endpoint da aggiornare. Nel menu di spostamento, in Entità selezionare Connessioni ibride in Entità.
- Selezionare la connessione ibrida. Nel menu di spostamento, in Impostazioni, selezionare Proprietà.
- Apportare le modifiche e selezionare Salva modifiche.
- Tornare alle impostazioni connessioni ibride per il servizio app e aggiungere di nuovo la connessione ibrida. Verificare che l'endpoint venga aggiornato come previsto. Se non viene visualizzata la connessione ibrida nell'elenco, aggiornare in 5-10 minuti.
- Tornare al Gestione connessione ibrida nel computer locale e aggiungere di nuovo la connessione.
Risoluzione dei problemi
Lo stato connected indica che almeno una gestione connessione ibrida è configurata con tale connessione ibrida ed è in grado di raggiungere Azure. Se lo stato per la connessione ibrida non indica Connesso, la connessione ibrida non è configurata in qualsiasi HCM che abbia accesso ad Azure. Quando il modulo di protezione hardware mostra Not Connected( Non connesso), è necessario verificare alcuni aspetti:
L'host ha accesso in uscita ad Azure sulla porta 443? È possibile eseguire il test dall'host HCM usando il comando
Test-NetConnection Destination -P Port
di PowerShell .HCM è potenzialmente in uno stato non valido? Provare a riavviare il servizio locale del servizio Gestione connessione ibrida di Azure.
Il software in conflitto è installato? Gestione connessione ibrida non possono coesistere con Gestione connessione ibrida Biztalk o bus di servizio per Windows Server. Quando si installa HCM, è necessario rimuovere prima tutte le versioni di questi pacchetti.
È disponibile un firewall tra l'host HCM e Azure? In questo caso, è necessario consentire l'accesso in uscita sia all'URL dell'endpoint bus di servizio che ai gateway bus di servizio che servono la connessione ibrida.
È possibile trovare l'URL dell'endpoint bus di servizio nell'interfaccia utente di Gestione connessione ibrida.
I gateway bus di servizio sono le risorse che accettano la richiesta nella connessione ibrida e passano attraverso l'inoltro di Azure. È necessario consentire l'elenco di tutti i 128 gateway. I gateway sono nel formato :
G#-prod-[stamp]-sb.servicebus.windows.net
. Il segno di numero,#
, è un numero compreso tra 0 e 127 edstamp
è il nome dell'istanza all'interno del data center di Azure in cui è presente l'endpoint bus di servizio.Se è possibile usare un carattere jolly, è possibile consentire l'elenco *.servicebus.windows.net.
Se non è possibile usare un carattere jolly, è necessario consentire tutti i 128 gateway.
È possibile trovare lo stamp usando nslookup nell'URL dell'endpoint bus di servizio.
In questo esempio il timbro è
sn3-010
. Per consentire l'elenco dei gateway bus di servizio, sono necessarie le voci seguenti:G0-prod-sn3-010-sb.servicebus.windows.net
G1-prod-sn3-010-sb.servicebus.windows.net
G2-prod-sn3-010-sb.servicebus.windows.net
G3-prod-sn3-010-sb.servicebus.windows.net
... G126-prod-sn3-010-sb.servicebus.windows.net
G127-prod-sn3-010-sb.servicebus.windows.net
Se lo stato è Connesso ma l'app non riesce a raggiungere l'endpoint, allora:
- Assicurarsi di usare un nome DNS nella connessione ibrida. Se si usa un indirizzo IP, la ricerca DNS client richiesta potrebbe non verificarsi. Se il client in esecuzione nell'app Web non esegue una ricerca DNS, la connessione ibrida non funziona.
- Verificare che il nome DNS usato nella connessione ibrida possa essere risolto dall'host HCM. Controllare la risoluzione usando nslookup EndpointDNSname dove EndpointDNSname è una corrispondenza esatta a ciò che viene usato nella definizione della connessione ibrida.
- Testare l'accesso dall'host HCM all'endpoint usando il comando
Test-NetConnection EndpointDNSname -P Port
di PowerShell . Se non è possibile raggiungere l'endpoint dall'host HCM, controllare i firewall tra i due host, inclusi i firewall basati su host nell'host di destinazione. - Se si usa servizio app in Linux, assicurarsi di non usare
localhost
come host endpoint. Usare invece il nome del computer se si sta provando a creare una connessione con una risorsa nel computer locale.
In servizio app, lo strumento da riga di comando tcpping può essere richiamato dalla console strumenti avanzati (Kudu). Questo strumento può indicare se si ha accesso a un endpoint TCP, ma non indica se si ha accesso a un endpoint di connessione ibrida. Quando si usa lo strumento nella console per un endpoint di connessione ibrida, si conferma solo che usa una combinazione host:port.
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 server Web usando curl.