Creare una connessione ibrida di Inoltro di Azure

Completato

Inoltro di Azure permette di connettere servizi oltre i limiti di rete e i firewall, senza dover riconfigurare la sicurezza.

Si è scelto di spostare tutti i sistemi dell'organizzazione finanziaria nel cloud. Tuttavia, le normative in vigore nella propria giurisdizione impediscono di eseguire la migrazione del servizio di verifica del credito. Questo servizio deve restare in locale per scopi di protezione dei dati. È necessario trovare un modo per connettere i servizi cloud al servizio di verifica del credito. Idealmente, è preferibile evitare di aprire porte aggiuntive nel firewall locale o creare una rete privata virtuale.

In questa unità viene illustrato come Inoltro di Azure può fornire questa connessione.

Che cos'è Inoltro di Azure?

Molte organizzazioni stanno eseguendo la migrazione dei propri sistemi nel cloud. Questo processo viene spesso eseguito componente per componente, con un approccio graduale. Un approccio di questo tipo limita l'impatto dei possibili problemi durante la migrazione, ma comporta anche alcune sfide. Un componente cloud appena migrato, ad esempio, deve spesso comunicare con un altro componente che resta in locale, ma è protetto da un firewall o da altri sistemi di sicurezza.

In altri casi, si potrebbe notare che non è possibile eseguire la migrazione di un servizio locale nel cloud. Ad esempio, la giurisdizione potrebbe imporre requisiti di sicurezza aggiuntivi per i sistemi finanziari, impossibili da soddisfare in un sistema cloud.

In situazioni come queste, è necessario che i servizi locali siano raggiungibili da client Internet o componenti cloud. È possibile aprire una porta del firewall per consentire questa comunicazione, ma questo approccio può avere conseguenze impreviste. Ad esempio, si potrebbe esporre accidentalmente servizi diversi da quello che si vuole abilitare. Nelle organizzazioni di grandi dimensioni si potrebbe non avere accesso alla gestione del firewall. Una modifica al regime di sicurezza potrebbe richiedere un'autorizzazione di alto livello ottenibile solo dopo qualche tempo.

Inoltro di Azure permette di affrontare questo tipo di problemi fornendo un punto nel cloud in cui i componenti locali e quelli basati su Internet possono connettersi tra loro. Poiché il sistema locale avvia questa connessione, non è necessario aprire alcuna porta del firewall o riconfigurare la rete locale in alcun modo.

Connessioni ibride e connessioni Windows Communication Foundation

Inoltro di Azure stabilisce una connessione tra due componenti, ad esempio una funzione di Azure e un servizio locale. Una volta stabilita la connessione, le richieste e le risposte possono essere scambiate tramite l'inoltro, come in una connessione diretta. In Inoltro di Azure è possibile stabilire due tipi di connessioni:

  • Connessioni ibride: le connessioni ibride sono flussi bidirezionali di dati binari che usano standard WebSocket o HTTP. Poiché queste connessioni sono basate su standard aperti, possono essere usate praticamente in qualsiasi linguaggio o framework di codifica. Ad esempio, è possibile usarle per connettere un server Node.js locale a un processo Web di Azure scritto in C# e in .NET Framework.
  • Connessioni WCF: alcuni sviluppatori usano Windows Communication Foundation (WCF) per abilitare le chiamate di procedura remota. WCF è stato comunemente usato per le comunicazioni di rete con le versioni precedenti di .NET Framework. WCF è ora considerato un protocollo legacy, ma continua a essere usato nelle applicazioni meno recenti. Poiché Inoltro di Azure supporta WCF, è possibile usarlo con componenti .NET Framework esistenti che usano questo standard, senza doverli riscrivere.

Usare connessioni ibride a meno che non sia necessario supportare componenti .NET Framework esistenti che usano WCF.

Connessioni WebSocket e connessioni HTTP

Le connessioni ibride possono usare uno di questi protocolli:

  • HTTP: questo protocollo senza stato è costituito da richieste come GET e POST e viene usato per trasferire pagine Web tra server Web e browser. In genere, HTTP usa la porta TCP 80 o 443 quando la richiesta è protetta con Secure Sockets Layer. Questo protocollo è ampiamente supportato ed è facile scrivere codice per esso. Tuttavia, poiché è un protocollo senza stato, è meno efficiente per le comunicazioni permanenti.
  • WebSocket: questo protocollo crea un canale di comunicazione duplex completo sulla porta 80 o 443, più efficiente del protocollo HTTP senza stato. Una connessione WebSocket è particolarmente efficiente quando la comunicazione è costituita da molti messaggi, non da una sola richiesta e una sola risposta.

Poiché il processo in questo modulo è una semplice richiesta di verifica del credito, seguita da una singola risposta, si usa una connessione ibrida e il protocollo HTTP.

Funzionamento di Inoltro di Azure

Poiché sia i componenti ospitati nel cloud sia quelli locali avviano la connessione a Inoltro di Azure, i firewall locali non intervengono. Una volta stabilita la connessione, le comunicazioni possono essere inviate in entrambe le direzioni.

Il diagramma seguente mostra come viene stabilita la connessione:

Diagram showing how Azure Relay exchanges messages.

  1. Il client in ascolto invia una richiesta di ascolto al servizio Inoltro di Azure. Il servizio di bilanciamento del carico di Azure indirizza la richiesta a uno dei nodi del gateway.
  2. Il servizio Inoltro di Azure crea un inoltro nell'archivio gateway.
  3. Il client di invio invia una richiesta per la connessione al servizio in ascolto.
  4. Il gateway che riceve la richiesta cerca l'inoltro nell'archivio gateway.
  5. Il gateway inoltra la richiesta di connessione al gateway corretto indicato nell'archivio gateway.
  6. Il gateway invia una richiesta al client in ascolto per creare un canale temporaneo con il nodo del gateway più vicino al client di invio.
  7. Il client in ascolto crea un canale temporaneo per il gateway più vicino al client di invio. Ora che la connessione tra i client è stata stabilita tramite un gateway, i client possono scambiarsi messaggi.
  8. Il gateway inoltra i messaggi dal client in ascolto al client di invio.
  9. Il gateway inoltra i messaggi dal client di invio al client in ascolto.

Come creare un inoltro

Per creare un inoltro, è necessario uno spazio dei nomi univoco all'interno del dominio servicebus.windows.net. È anche possibile specificare una sottoscrizione, un gruppo di risorse e una posizione per l'inoltro, che deve essere vicino alla maggior parte dei client.

Per controllare che cosa possono fare i client quando si connettono, usare criteri di accesso condiviso. Questi criteri permettono di specificare se i client possono inviare o leggere messaggi dall'inoltro. Ogni criterio di accesso condiviso include chiavi primarie e secondarie. Per connettersi all'inoltro, ogni client deve fornire una di queste chiavi.

È infine necessario creare una connessione nello spazio dei nomi. Può trattarsi di una connessione ibrida o una connessione WCF.