從 Azure Logic Apps 的工作流程連線至 IBM MQ 伺服器

適用於:Azure Logic Apps (使用量 + 標準)

本文說明如何使用 MQ 連接器,從 Azure Logic Apps 中的工作流程存取 Azure 裝載或內部部署的 MQ 伺服器。 然後,您可以建立自動化工作流程,以接收並傳送儲存在 MQ 伺服器中的訊息。 例如,您的工作流程可以瀏覽佇列中的單一訊息,然後執行其他動作。

MQ 連接器提供 Microsoft MQ 用戶端的包裝函式,其中包含跨 TCP/IP 網路與遠端 MQ 伺服器通訊的所有傳訊功能。 此連接器會定義用來呼叫 MQ 用戶端的連線、作業和參數。

支援的 IBM WebSphere MQ 版本

  • MQ 7.5
  • MQ 8.0
  • MQ 9.0、9.1、9.2 和 9.3

連接器技術參考

根據邏輯應用程式類型和主機環境,MQ 連接器會有不同的版本。

邏輯應用程式 Environment 連線版本
耗用 多租用戶 Azure Logic Apps 和整合服務環境 (ISE) 受控連接器,其顯示在設計工具的 [企業] 標籤下。 此連接器僅提供動作,不提供觸發程序。 在內部部署 MQ 伺服器案例中,受控連接器僅支援使用 TLS (SSL) 加密進行驗證的伺服器。

如需詳細資訊,請參閱下列文件:

- MQ 受控連接器參考
- Azure Logic Apps 的受控連接器
標準 單一租用戶 Azure Logic Apps 和 App Service 環境 v3 (僅限 ASE v3 搭配 Windows 方案) 受控連接器 (顯示在連接器資源庫的 [執行階段]> [共用] 下),以及內建連接器 (顯示在連接器資源庫的 [執行階段]> [應用程式內] 下),並且以服務提供者為基礎。 內建版本在以下方面有相異之處:

- 內建版本包含動作觸發程序。

- 內建連接器可以使用連接字串直接連線至 MQ 伺服器並存取 Azure 虛擬網路,而無需內部部署資料閘道。

- 內建版本針對傳輸中資料同時支援使用 TLS (SSL) 加密的伺服器驗證和伺服器-用戶端驗證、傳送和接收作業的訊息編碼,以及 Azure 虛擬網路整合。

如需詳細資訊,請參閱下列文件:

- MQ 受控連接器參考
- MQ 內建連接器參考
- Azure Logic Apps 中的內建連接器

使用 TLS (SSL) 加密驗證

根據您是使用 MQ 受控連接器 (使用量或標準工作流程)或 MQ 內建連接器 (僅限標準工作流程),MQ 連接器會支援下列其中一個或兩個驗證方向:

驗證 支援的邏輯應用程式類型和 MQ 連接器 處理
僅限伺服器
(單向)
- 使用量:僅限受控

- 標準:受控或內建
針對伺服器驗證,MQ 伺服器會將公開信任或非公開信任的私密金鑰憑證傳送至邏輯應用程式用戶端以進行驗證。 MQ 連接器則使用標準 .NET SSL 資料流驗證方式,將傳入的伺服器憑證比對公開金鑰憑證 (也稱為「簽署者」憑證) 以驗證其真實性。

邏輯應用程式不會傳送用戶端憑證。
伺服器-用戶端
(雙向)
- 使用量:不支援

- 標準:僅限內建
如需伺服器驗證,請參閱上一列。

針對用戶端驗證,邏輯應用程式用戶端會傳送一個私密金鑰憑證至 MQ 伺服器以進行驗證。 MQ 伺服器也會使用公開金鑰憑證來驗證傳入的用戶端憑證的真實性。

私密金鑰和公開金鑰憑證的相關注意事項

  • 需要驗證的憑證一律是私密金鑰憑證。 用來執行驗證的憑證一律是公開金鑰憑證。

  • 公開信任的私密金鑰憑證是由獲認可的憑證授權單位核發。 非公開信任的私密金鑰憑證包括自我簽署、私人 CA 和類似的憑證。

  • 若要驗證從 MQ 伺服器傳送的私密金鑰憑證,MQ 連接器會使用通常存在於您邏輯應用程式的虛擬機器主機上 (在主機的受信任根憑證授權單位 (CA) 存放區中) 的公開金鑰憑證。

    不過,如果主機沒有所有必要的公開金鑰憑證,或您的 MQ 伺服器傳送非公開信任的私密金鑰憑證,您需要採取額外的步驟。 如需詳細資訊,請參閱必要條件

  • 若要驗證從標準邏輯應用程式傳送的用戶端私密金鑰憑證,MQ 伺服器會使用存在於 MQ 伺服器憑證存放區中的公開金鑰憑證。 若要為邏輯應用程式新增私密金鑰憑證,以作為用戶端憑證,請參閱新增私密金鑰憑證

限制

  • 使用 TLS (SSL) 加密驗證

    MQ 連接器 支援的驗證方向
    受控 僅限伺服器 (單向)
    內建 - 伺服器-用戶端 (雙向)
    - 僅限伺服器 (單向)
  • 伺服器憑證驗證

    MQ 內建連接器不會驗證伺服器憑證的到期日或憑證鏈結。

  • 字元集轉換

    • MQ 受控連接器不會進行任何字元集轉換,也不會使用訊息的格式欄位。 連接器只會複製訊息欄位中出現的任何資料,並隨著訊息傳送。

    • MQ 內建連接器可以進行字元集轉換,但只有在資料格式為字串時。 如果您提供不同的字元集識別碼 (字碼頁),連接器會嘗試將資料轉換成新的字碼頁。

  • MQ 連接器不支援分段的訊息。

如需詳細資訊,請檢閱 MQ 受控連接器參考MQ 內建連接器參考

必要條件

  • Azure 帳戶和訂用帳戶。 如果您沒有 Azure 訂用帳戶,請先註冊免費的 Azure 帳戶

  • 若要連線內部部署 MQ 伺服器,您必須在您網路內的伺服器上安裝內部部署資料閘道。 若要讓 MQ 連接器運作,具有內部部署資料閘道的伺服器也必須安裝 .NET Framework 4.6。

    在安裝閘道之後,您也必須在 Azure 建立資料閘道資源。 MQ 連接器會利用該資源來存取您的 MQ 伺服器。 如需詳細資訊,請檢閱設定資料閘道連線

    注意

    您在以下情況無需閘道:

    • 您的 MQ 伺服器已公開提供或可透過 Azure 取得。
    • 您將使用 MQ 內建連接器,而不是受控連接器。
  • 要存取 MQ 伺服器所在的邏輯應用程式資源和工作流程。

    • 若要使用 MQ 受控連接器搭配內部部署資料閘道,邏輯應用程式資源必須使用與 Azure 中閘道資源相同的位置。

    • 若要使用未提供任何觸發程序的 MQ 受控連接器,請確定您的工作流程是使用觸發程序啟動,或您先將觸發程序新增至工作流程。 例如,讓您可利用 重複觸發器

    • 若要使用來自 MQ 內建連接器的觸發程序,請務必從空白的工作流程開始。

  • 使用 TLS (SSL) 加密進行驗證的憑證需求

  • 加密規格需求

    MQ 伺服器要求您定義用於採用 TLS (SSL) 加密連線的加密規格。 此加密規格必須符合執行 MQ 伺服器的作業系統所支援、選擇和使用的加密套件。 最後,用戶端連線所使用的加密規格必須符合在 MQ 伺服器上伺服器連線通道所設定的加密套件。

    如需詳細資訊,請參閱連線和驗證問題

新增 MQ 觸發程序 (僅限標準邏輯應用程式)

下列步驟僅適用於標準邏輯應用程式工作流程;這種工作流程可使用 MQ 內建連接器提供的觸發程序。 MQ 受控連接器未包含任何觸發程序。

這些步驟會使用 Azure 入口網站進行,但若搭配適當的 Azure Logic Apps 擴充功能,也可以使用 Visual Studio Code 來建立標準邏輯應用程式工作流程。

  1. Azure 入口網站上,於設計工具中開啟您的空白邏輯應用程式工作流程。

  2. 遵循這些一般步驟來新增您想要的 MQ 內建觸發程序。 如需詳細資訊,請參閱 MQ 內建連接器觸發程序

  3. 提供驗證連線所需的資訊。 完成時,選取建立

  4. 觸發程序資訊方塊出現時,提供觸發程序的必要資訊

  5. 完成後,請儲存您的工作流程。 在設計師工具列上選取儲存

加入 MQ 動作

使用量邏輯應用程式工作流程只能使用 MQ 受控連接器。 不過,標準邏輯應用程式工作流程可以使用 MQ 受控連接器和 MQ 內建連接器。 每個版本都有多個動作。 例如,受控和內建連接器版本都有自己的動作來瀏覽訊息。

  • 受控連接器動作:這些動作會在使用量或標準邏輯應用程式工作流程中執行。

  • 內建連接器動作:這些動作只會在標準邏輯應用程式工作流程中執行。

下列步驟會使用 Azure 入口網站進行,但若搭配適當的 Azure Logic Apps 延伸模組,則也可以使用下列工具來建立邏輯應用程式工作流程:

  1. Azure 入口網站中,在設計工具中開啟您的邏輯應用程式工作流程。

  2. 遵循這些一般步驟來新增您想要的 MQ 動作。 如需詳細資訊,請參閱 MQ 連接器動作

  3. 提供驗證連線所需的資訊。 完成時,選取建立

  4. 動作資訊方塊出現時,提供動作的必要資訊

  5. 完成後,請儲存您的工作流程。 在設計師工具列上選取儲存

測試工作流程

若要檢查您的工作流程傳回您預期的結果,請執行工作流程,然後檢閱工作流程執行歷程記錄的輸出。

  1. 執行您的工作流程。

    • 使用量邏輯應用程式:在工作流程設計工具工具列上,選取 [執行觸發程序]> [執行]

    • 標準邏輯應用程式:在工作流程資源功能表上,選取 [概觀]。 在 [概觀] 窗格工具列上,選取 [執行觸發程序]> [執行]

    執行結束後,設計工具會顯示工作流程的執行歷程記錄以及每個步驟的狀態。

  2. 若要檢閱每個已執行 (未略過) 步驟的輸入及輸出,請展開或選取該步驟。

    • 若要檢視更多輸入詳細資料,請選取顯示原始輸入

    • 若要檢閱更多輸出詳細資料,請選取顯示原始輸出。 如果將 IncludeInfo 設定為 true,則包含更多輸出。

檢視和新增使用 TLS (SSL) 加密進行驗證的憑證

下列資訊僅適用使用 TLS (SSL) 加密運用僅限伺服器或伺服器-用戶端驗證的 MQ 內建連接器的標準邏輯應用程式工作流程。

檢視並確認現有公開金鑰憑證的指紋

若要檢查標準邏輯應用程式虛擬機器主機上受信任根 CA 存放區中是否存在必要公開金鑰憑證的指紋,請遵循下列步驟,從標準邏輯應用程式的資源功能表執行 cert PowerShell 指令碼

  1. Azure 入口網站中,開啟您的標準邏輯應用程式資源。 在邏輯應用程式資源功能表的 [開發工具] 下,選取 [進階工具]> [執行]

  2. 從 Kudu [偵錯主控台] 功能表中,選取 [PowerShell]

  3. PowerShell 視窗出現之後,從 PowerShell 命令提示字元執行下列指令碼:

    dir cert:\localmachine\root

    PowerShell 視窗會列出現有的指紋和描述,例如:

    Screenshot showing existing example thumbprints and descriptions.

新增公開金鑰憑證

若要將公開金鑰憑證新增至標準邏輯應用程式執行所在虛擬機器主機上的受信任根 CA 存放區,請遵循下列步驟:

  1. Azure 入口網站中,開啟您的標準邏輯應用程式資源。 在邏輯應用程式資源功能表上的 [設定] 底下,選取 [TLS/SSL 設定 (傳統)]

  2. 在 [TLS/SSL 設定 (傳統)] 頁面上,選取 [公開金鑰憑證 (.cer)] 索引標籤,然後選取 [上傳公開金鑰憑證]

  3. 在開啟的 [新增公開金鑰憑證 (.cer)] 窗格中,輸入描述憑證的名稱。 尋找並選取公開金鑰憑證檔案 (.cer)。 完成時,請選取 [上傳]

  4. 新增憑證之後,從 [指紋] 資料行,複製憑證的指紋值。

    Screenshot showing the Azure portal and Standard logic resource with the following items selected: 'TLS/SSL settings (classic)', 'Public Key Certificates (.cer)', and 'Upload Public Key Certificate'.

  5. 在邏輯應用程式資源功能表上,選取 [設定]

  6. 在 [應用程式設定] 索引標籤上,選取 [新增應用程式設定]。 新增名為 WEBSITE_LOAD_ROOT_CERTIFICATES 的新應用程式設定,然後輸入您先前複製的憑證指紋值。 如果您有多個憑證指紋值,請務必以逗號分隔每個值 (,)。

    如需詳細資訊,請參閱在單一租用戶 Azure Logic Apps 中,編輯標準邏輯應用程式的主機和應用程式設定

    注意

    如果您指定私人 CA 憑證的指紋,MQ 內建連接器不會執行任何憑證驗證,例如檢查憑證的到期日或來源。 如果標準 .NET SSL 驗證失敗,連接器只會將傳入的任何指紋值與 WEBSITE_LOAD_ROOT_CERTIFICATES 設定中的值比較。

  7. 如果新增的憑證未出現在公開金鑰憑證清單中,請在工具列上選取 [重新整理]

新增私密金鑰憑證

若要將私密金鑰憑證新增至標準邏輯應用程式執行所在虛擬機器主機上的受信任根 CA 存放區,請遵循下列步驟:

  1. Azure 入口網站中,開啟您的邏輯應用程式資源。 在邏輯應用程式資源功能表上的 [設定] 底下,選取 [TLS/SSL 設定 (傳統)]

  2. 在 [TLS/SSL 設定 (傳統)] 頁面上,選取 [私密金鑰憑證 (.pfx)] 索引標籤,然後選取 [上傳憑證]

  3. 在開啟的 [新增私密金鑰憑證 (.pfx)] 窗格中,尋找並選取私密金鑰憑證檔案 (.pfx),然後輸入憑證密碼。 完成時,請選取 [上傳]

  4. 新增憑證之後,從 [指紋] 資料行,複製憑證的指紋值。

    Screenshot showing the Azure portal and Standard logic resource with the following items selected: 'TLS/SSL settings (classic)', 'Private Key Certificates (.pfx)', and 'Upload Certificate'.

  5. 在邏輯應用程式資源功能表上,選取 [設定]

  6. 在 [應用程式設定] 索引標籤上,選取 [新增應用程式設定]。 新增名為 WEBSITE_LOAD_CERTIFICATES 的新應用程式設定,然後輸入您先前複製的憑證指紋值。

    如需詳細資訊,請參閱在單一租用戶 Azure Logic Apps 中,編輯標準邏輯應用程式的主機和應用程式設定

  7. 如果新增的憑證未出現在私密金鑰憑證清單中,請在工具列上選取 [重新整理]

  8. 使用 MQ 內建連接器建立連線時,請在 [連線資訊] 方塊中,選取 [使用 TLS]

  9. 在 [用戶端憑證指紋] 屬性中,輸入先前為私密金鑰憑證複製的指紋值,其可啟用伺服器用戶端 (雙向) 驗證。 如果您未輸入指紋值,則連接器會使用僅限伺服器 (單向) 驗證。

    Screenshot showing Standard logic app workflow designer, MQ built-in connection box with 'Use TLS' option selected and the 'Client Cert Thumbprint' property with private key certificate thumbprint entered.

疑難排解問題

瀏覽或接收動作失敗

如果對空佇列執行流覽或接收動作,此動作將失敗,其標題輸出如下:

Screenshot showing the MQ

連線和驗證問題

當您的工作流程使用 MQ 受控連接器連線到內部部署 MQ 伺服器,您可能會收到下列錯誤:

"MQ: Could not Connect the Queue Manager '<queue-manager-name>': The Server was expecting an SSL connection."

  • MQ 伺服器必須提供受信任的憑證授權單位所核發的憑證。

  • MQ 伺服器要求您定義要與 TLS 連線搭配使用的密碼規格。 不過,為了安全起見,並包含最佳的安全性套件,Windows 作業系統會傳送一組受支援的加密規格。

    MQ 伺服器執行的作業系統會選取要使用的套件。 若要讓設定相符,您必須變更 MQ 伺服器設定,使加密規格符合在 TLS 交涉中所選的選項。

    嘗試連線時,MQ 伺服器會記錄因 MQ 伺服器選擇錯誤的加密規格而導致連線嘗試失敗的事件訊息。 事件訊息包含 MQ 伺服器從清單選擇的加密規格。 在伺服器連線通道設定中,請更新加密規格,以符合事件訊息中的加密規格。

下一步