建立 Azure 轉送混合式連線

已完成

Azure 轉送可供跨網路界限和防火牆連線服務,而不需要重新設定安全性設定。

您想要將金融組織中的所有系統移至雲端。 不過,所屬管轄區域中的法規使您無法移轉信用查核服務。 基於資料保護目的,此服務必須保留在內部部署。 您需要一種方法來將雲端服務連線到信用查核服務。 在理想的情況下,最好不要在內部部署防火牆上開啟額外的連接埠,也不要建立虛擬私人網路。

在本單元中,您會了解 Azure 轉送如何提供此連線。

什麼是 Azure 轉送?(機器翻譯)

許多組織正在將其系統移轉到雲端。 此程序通常會以階段式方法逐元件完成。 這類方法可限制移轉期間可能發生的問題影響,但有其自身的挑戰。 例如,新移轉的雲端元件通常需要與其他保留在內部部署,但受到防火牆或其他安全性系統保護的元件進行通訊。

在其他情況下,您可能會發現無法將內部部署服務移轉到雲端。 例如,所屬管轄區域可能對金融系統有額外的安全性需求,而您無法在雲端系統中符合這些需求。

在此情況下,您需要能夠從網際網路用戶端或雲端元件定址內部部署服務。 您可以開啟防火牆連接埠來進行此通訊,但該方法可能會產生非預期的結果。 例如,您可能會不小心公開非預期的服務。 在大型組織中,防火牆的負責人可能不是您。 變更安全體制可能需要高層級授權,而取得此授權會很耗時。

Azure 轉送藉由在雲端中提供一個可讓內部部署元件與以網際網路為基礎元件連線的點,以來解決這類問題。 由於內部部署系統會起始此連線,因此不需要開啟任何防火牆連接埠,或以任何方式重新設定內部部署網路。

混合式連線和 Windows Communication Foundation 連線

Azure 轉送會在兩個元件 (例如 Azure 函式與內部部署服務) 之間建立連線。 建立連線之後,即可透過轉送交換要求和回應,就像是有直接連線一樣。 您可以在 Azure 轉送中建立兩種連線類型:

  • 混合式連線:混合式連線是使用 WebSocket 或 HTTP 標準的雙向二進位資料流。 由於這些連線是以開放式標準為基礎,因此可以透過絶大多數任何語言或程式碼架構來使用。 例如,您可以使用這些連線,將內部部署 Node.js 伺服器連線到以 C# 和 .NET Framework 撰寫的 Azure Web 工作。
  • WCF 連線:有些開發人員使用 Windows Communication Foundation (WCF) 來啟用遠端程序呼叫。 WCF 常用於與舊版 .NET Framework 進行網路通訊。 WCF 現在被視為舊版通訊協定,但仍常用於舊版應用程式。 由於 Azure 轉送支援 WCF,因此可以將其與使用此標準的現有 .NET Framework 元件搭配使用,而不需要重寫元件。

除非想要支援使用 WCF 的現有 .NET Framework 元件,否則請使用混合式連線。

WebSocket 連線和 HTTP 連線

混合式連線可以使用下列其中一個通訊協定:

  • HTTP:此無狀態通訊協定是由 GET 和 POST 等要求所組成,並用於在網頁伺服器與網頁瀏覽器之間轉送網頁。 通常,當使用安全通訊端層保護要求時,HTTP 會使用 TCP 通訊埠 80 或 443。 此通訊協定受到廣泛支援,且容易對其撰寫程式碼。 不過,由於此通訊協定為無狀態,因此持續通訊的效率較低。
  • WebSocket:此通訊協定會透過通訊埠 80 或 443 建立全雙面通訊通道,這比無狀態 HTTP 通訊協定更有效率。 當通訊是由許多訊息 (而不只是單一要求和回應) 所組成時,WebSocket 連線會特別有效率。

在本課程模組中,由於是簡單信用查核要求後面接著單一回應的程序,因此您會使用混合式連線和 HTTP 通訊協定。

Azure 轉送的運作方式

由於雲端所裝載元件和內部部署元件會起始與 Azure 轉送的連線,因此內部部署防火牆不會介入。 建立連線之後,即可雙向傳送通訊。

下圖顯示如何建立連線:

Diagram showing how Azure Relay exchanges messages.

  1. 接聽方用戶端會將接聽要求傳送至 Azure 轉送服務。 Azure 負載平衡器會將要求路由遞送到其中一個閘道節點。
  2. Azure 轉送服務會在閘道存放區中建立一個中繼點。
  3. 傳送方用戶端會傳送要求來連接至接聽服務。
  4. 接收要求的閘道會在閘道存放區中查找該中繼點。
  5. 該閘道會將連線要求轉遞到閘道存放區中提及的正確閘道。
  6. 該閘道會將要求傳送至接聽方用戶端,讓其建立一個暫時通道,以便連接到距離傳送方用戶端最近的閘道節點。
  7. 接聽方用戶端會建立一個暫時通道,以便連接到距離傳送用戶端最近的閘道。 現在透過閘道已在用戶端之間建立了連線,這些用戶端可以彼此交換訊息。
  8. 閘道會將來自接聽方用戶端的任何訊息轉送至傳送方用戶端。
  9. 閘道會將來自傳送方用戶端的任何訊息轉送至接聽方用戶端。

如何建立轉送

若要建立轉送,則需要 servicebus.windows.net 網域內唯一的命名空間。 您也會指定訂用帳戶、資源群組和轉送位置 (應該接近您大部分的用戶端)。

若要控制用戶端可在連線時執行的作業,請使用共用存取原則。 您可以使用這些原則,來允許用戶端能否將訊息傳送到轉送,或從轉送讀取訊息。 每個共用存取原則都有主要和次要金鑰。 若要連線到轉送,每個用戶端都必須提供其中一個金鑰。

最後,您應該在命名空間中建立連線。 這可以是混合式連線或 WCF 連線。