次の方法で共有


Azure Logic Apps のワークフローからの IBM MQ サーバーへの接続

適用対象: Azure Logic Apps (従量課金プラン + Standard)

このガイドでは、MQ コネクタを使用して、Azure Logic Apps のワークフローから、Azure でホストされる、またはオンプレミスの MQ サーバーにアクセスする方法について説明します。 その後、MQ サーバーに格納されるメッセージを送受信する自動ワークフローを作成できます。 たとえば、ワークフローでキュー内の 1 つのメッセージを参照してから、他のアクションを実行できます。

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 コネクタには、ロジック アプリの種類とホスト環境に基づいてさまざまなバージョンがあります。

ロジック アプリ 環境 接続のバージョン
従量課金プラン マルチテナント Azure Logic Apps マネージド コネクタ。コネクタ ギャラリーの [ランタイム]>[共有] の下に表示されます。 このコネクタでは、アクションのみが提供され、トリガーは提供されません。 オンプレミスの MQ サーバーのシナリオでは、マネージド コネクタは TLS (SSL) 暗号化による認証を使用するサーバーのみをサポートします。

詳細については、次のドキュメントを確認してください。

- MQ マネージド コネクタのリファレンス
- Azure Logic Apps のマネージド コネクタ
Standard シングルテナント Azure Logic Apps と App Service Environment v3 (ASE v3 と Windows のプランのみ) コネクタ ギャラリーの [ランタイム]>[共有] に表示されるマネージド コネクタと、コネクタ ギャラリーの [ランタイム]>[アプリ内] に表示されるサービス プロバイダーベースの組み込みコネクタ。 組み込みバージョンには次のような違いがあります。

- 組み込みバージョンには、アクションとトリガーの "両方" が含まれています。

- 組み込みコネクタは、オンプレミス データ ゲートウェイなしで接続文字列を使って、MQ サーバーに直接接続し、Azure 仮想ネットワークにアクセスできます。

- 組み込みバージョンは、転送中のデータの TLS (SSL) 暗号化を使用したサーバー認証とサーバー クライアント認証の両方、送信と受信両方の操作のメッセージ エンコード、Azure 仮想ネットワーク統合をサポートします。

詳細については、次のドキュメントを確認してください。

- MQ マネージド コネクタのリファレンス
- MQ 組み込みコネクタのリファレンス
- Azure Logic Apps の組み込みコネクタ

TLS (SSL) 暗号化による認証

MQ マネージド コネクタ (従量課金ワークフローまたは Standard ワークフロー) または MQ 組み込みコネクタ (Standard ワークフローのみ) のどちらを使うかに基づいて、MQ コネクタは次の認証の向きの一方または両方をサポートします。

認証 サポートされるロジック アプリの種類と MQ コネクタ Process
サーバーのみ
(一方向)
- 従量課金: マネージドのみ

- Standard: マネージドまたは組み込み
サーバー認証の場合、MQ サーバーは、検証のために、秘密キー証明書 (パブリックに信頼されているもの、またはパブリックに信頼されていないもの) を、ロジック アプリ クライアントに送信します。 MQ コネクタは、標準の .NET SSL ストリーム検証を使い、公開キー証明書 ("署名者証明書" とも呼ばれます) に照らして、受け取ったサーバー証明書の信頼性を検証します。

ロジック アプリ ワークフローではクライアント証明書は送信されません。
サーバー - クライアント
(双方向)
- 従量課金: サポートされていません

- Standard: 組み込みのみ
サーバー認証については、前の行を参照してください。

クライアント認証の場合、ロジック アプリ クライアントは検証のために秘密キー証明書を MQ サーバーに送信します。 MQ サーバーは、公開キー証明書を使用して、受信クライアント証明書の信頼性も検証します。

重要

運用環境では、資格情報、証明書、拇印、アクセス キー、接続文字列などの秘匿性の高い情報とシークレットを常に保護します。 このような情報は、Microsoft Entra ID と Azure Key Vault を使用して必ず安全に保存してください。 この情報をハードコーディングしたり、他のユーザーと共有したり、他のユーザーがアクセスできる場所にプレーンテキストで保存したりしないでください。 この情報が侵害された可能性があると思われる場合は、できるだけ早くシークレットをローテーションします。 詳細については、Azure Key Vault の概要に関する記事を参照してください。

秘密キーと公開キー証明書に関する注意事項

  • 検証する必要がある証明書は、常に秘密キー証明書です。 検証の実行に使われる証明書は、常に公開キー証明書です。

  • パブリックに信頼された秘密キー証明書は、認識された証明機関によって発行されます。 パブリックに信頼されていない秘密キー証明書には、自己署名、プライベート CA、および同様の証明書が含まれます。

  • MQ サーバーから送信された秘密キー証明書を検証するため、MQ コネクタは、ロジック アプリの仮想マシン ホスト上のホストの信頼されたルート証明機関 (CA) ストアに通常存在する公開キー証明書を使います。

    ただし、ホストにすべての必要な公開キー証明書がない場合、または MQ サーバーがパブリックに信頼されていない秘密キー証明書を送信する場合は、追加の手順を行う必要があります。 詳細については、「前提条件」を参照してください。

  • Standard ロジック アプリから送信されたクライアントの秘密キー証明書を検証するため、MQ サーバーはその証明書ストアに存在する公開キー証明書を使います。 ロジック アプリがクライアント証明書として使う秘密キー証明書の追加については、「秘密キー証明書を追加する」をご覧ください。

制限事項

  • TLS (SSL) 暗号化による認証

    MQ コネクタ サポートされている認証の向き
    マネージド サーバーのみ (一方向)
    組み込み - サーバー - クライアント (双方向)
    - サーバーのみ (一方向)
  • サーバー証明書の検証

    MQ の組み込みコネクタでは、サーバー証明書の有効期限も証明書チェーンも検証されません。

  • 文字セットの変換

    • MQ のマネージド コネクタでは、文字セットの変換は行われず、メッセージの Format フィールドも使われません。 コネクタは、メッセージ フィールドのデータをそのままコピーして、メッセージを送信するだけです。

    • MQ の組み込みコネクタは、文字セットの変換を行うことができますが、データ形式が文字列の場合のみです。 ユーザーが異なる文字セット ID (コード ページ) を指定すると、コネクタは新しいコード ページへのデータの変換を試みます。

  • MQ コネクタは、セグメント化されたメッセージをサポートしていません。

詳しくは、MQ マネージド コネクタのリファレンスまたは MQ 組み込みコネクタのリファレンスに関する記事をご覧ください。

前提条件

  • Azure アカウントとサブスクリプション。 Azure サブスクリプションがない場合は、無料の Azure アカウントにサインアップしてください。

  • オンプレミスの MQ サーバーと接続するには、ネットワーク内のサーバーにオンプレミス データ ゲートウェイをインストールする必要があります。 MQ コネクタが動作するには、オンプレミスのデータ ゲートウェイを備えるサーバーに .NET Framework 4.6 もインストールする必要があります。

    ゲートウェイをインストールしたら、Azure でデータ ゲートウェイのリソースも作成しなければなりません。 MQ コネクタは、このリソースを使用して MQ サーバーにアクセスします。 詳細については、データ ゲートウェイ接続の設定に関する記事を確認してください。

    Note

    次のシナリオでは、ゲートウェイは必要ありません。

    • MQ サーバーは、Azure で一般公開されているか、使用可能です。
    • マネージド コネクタではなく、MQ 組み込みコネクタを使います。
  • MQ サーバーにアクセスするロジック アプリのリソースとワークフロー。

    • オンプレミス データ ゲートウェイでを MQ のマネージド コネクタを使うには、ロジック アプリ リソースで Azure のゲートウェイ リソースと同じ場所を使う必要があります。

    • トリガーが提供されない MQ マネージド コネクタを使うには、ワークフローがトリガーで始まるようにするか、または最初にワークフローにトリガーを追加するようにします。 たとえば、繰り返しトリガーを使用できます。

    • MQ 組み込みコネクタからのトリガーを使うには、ブランクのワークフローで始めるようにします。

  • TLS (SSL) 暗号化を使用する認証の証明書の要件

  • 暗号化仕様の要件

    MQ サーバーでは、TLS (SSL) 暗号化を使用する接続の暗号化仕様を定義する必要があります。 この暗号化仕様は、MQ サーバーが実行されるオペレーティング システムでサポート、選択、使用される暗号スイートと一致する必要があります。 最終的に、クライアント接続で使用する暗号化仕様は、MQ サーバー上のサーバー接続チャネルでセットアップされている暗号スイートと一致する必要があります。

    詳細については、「接続と認証の問題」を参照してください。

MQ トリガーを追加する (Standard ロジック アプリのみ)

次の手順は、MQ 組み込みコネクタによって提供されるトリガーを使用できる Standard ロジック アプリ ワークフローにのみ適用されます。 MQ マネージド・コネクターにはトリガーは含まれません。

次の手順では Azure portal を使いますが、適切な Azure Logic Apps 拡張機能があれば、Visual Studio Code を使って Standard ロジック アプリ ワークフローを作成することもできます。

  1. Azure portal で、空のロジック アプリ ワークフローをデザイナーで開きます。

  2. こちらの一般的な手順のようにして、必要な MQ 組み込みトリガーを追加します。 詳しくは、MQ 組み込みコネクタのトリガーに関する記事をご覧ください。

  3. 接続の認証を行うために必要な情報を指定します。 完了したら [作成] を選択します。

  4. トリガー情報ボックスが表示されたら、必要なトリガーの情報を入力します。

  5. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

MQ アクションを追加する

従量課金ロジック アプリ ワークフローでは、MQ マネージド コネクタのみを使用できます。 一方、Standard ロジック アプリ ワークフローでは、MQ マネージド コネクタと MQ 組み込みコネクタを使用できます。 各バージョンには複数のアクションがあります。 たとえば、マネージドと組み込み両方のコネクタ バージョンに、メッセージを参照するための独自のアクションがあります。

  • マネージド コネクタ アクション: これらのアクションは、従量課金プランまたは Standard ロジック アプリ ワークフローで実行されます。

  • 組み込みコネクタ アクション: これらのアクションは、Standard ロジック アプリ ワークフローでのみ実行されます。

次に示す手順では Azure portal を使用しますが、適切な Azure Logic Apps 拡張機能を使用すれば、次のツールでロジック アプリ ワークフローをビルドすることもできます。

  1. Azure portal で、ロジック アプリ ワークフローをデザイナーで開きます。

  2. こちらの一般的な手順のようにして、必要な MQ アクションを追加します。 詳しくは、MQ コネクタのアクションに関する記事をご覧ください。

  3. 接続の認証を行うために必要な情報を指定します。 完了したら [作成] を選択します。

  4. アクション情報ボックスが表示されたら、必要なアクションの情報を入力します。

  5. 完了したら、ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

ワークフローのテスト

ワークフローから望む結果が返されることを調べるには、ワークフローを実行し、ワークフローの実行履歴から出力を確認します。

  1. ワークフローを実行する。

    • 従量課金ワークフロー: ワークフロー デザイナーのツール バーで、[実行]>[実行] を選択します。

    • Standard ワークフロー: ワークフロー メニューの [設定] で、[実行履歴] を選択します。 ツール バーの [実行]>[実行] を選択します。

    実行が完了した後、ワークフローの実行履歴と各ステップの状態が、デザイナーに表示されます。

  2. (スキップせずに) 実行された各ステップの入力と出力を確認するには、ステップを展開するか選択します。

    • 詳細な入力の詳細を確認するには、[Show raw inputs]\(未加工入力の表示\) を選択します。

    • その他の出力の詳細を確認するには、[Show raw outputs]\(未加工出力の表示\) を選択します。 [IncludeInfo]true に設定した場合は、その他の出力が表示されます。

TLS (SSL) 暗号化を使用した認証用の証明書を表示および追加する

次の情報は、TLS (SSL) 暗号化でサーバーのみまたはサーバー - クライアントの認証を使う MQ 組み込みコネクタの Standard ロジック アプリ ワークフローにのみ適用されます。

既存の公開キー証明書用のサムプリントを表示して確認する

必要な公開キー証明書のサムプリントが、Standard ロジック アプリの仮想マシン ホスト上の信頼されたルート CA ストアに存在することを確認するには、次のようにして、Standard ロジック アプリのリソース メニューから cert PowerShell スクリプトを実行します。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。 ロジック アプリのリソース メニューの [開発ツール] で、[高度なツール]>[Go] を選びます。

  2. Kudu の[Debug console] (デバッグ コンソール) メニューから、[PowerShell] を選びます。

  3. PowerShell ウィンドウが表示されたら、PowerShell のコマンド プロンプトから次のスクリプトを実行します。

    dir cert:\localmachine\root

    PowerShell ウィンドウに、既存のサムプリントと説明の一覧が表示されます。次に例を示します。

    スクリーンショットは、拇印と説明の例を示しています。

公開キー証明書を追加する

次の手順に従って、Standard ロジック アプリが実行されている仮想マシン ホスト上の信頼されたルート CA ストアに公開キー証明書を追加します。

  1. Azure portal で、Standard ロジック アプリ リソースを開きます。 ロジック アプリのリソース メニューの [設定] で、[証明書] を選択します。

  2. [公開キー証明書 (.cer)] タブを選択し、[証明書の追加] を選択します。

  3. 表示された [公開キー証明書の追加] ペインで、追加する公開キー証明書ファイル (.cer) を見つけて選択します。 証明書を説明するフレンドリ名を入力します。 終了したら、 [追加] を選択します。

  4. 証明書を追加した後、[拇印] 列から証明書のサムプリントの値をコピーします。

    スクリーンショットは、選択した項目 (証明書、公開キー証明書、証明書の追加) を含む Standard ロジック アプリを示しています。

  5. ロジック アプリ リソースのメニューで、[構成] を選びます。

  6. [アプリケーションの設定] タブで、 [新しいアプリケーション設定] を選択します。 WEBSITE_LOAD_ROOT_CERTIFICATES という名前の新しいアプリケーション設定を追加し、前にコピーした証明書のサムプリントの値を入力します。 証明書のサムプリントの値が複数ある場合は、各値をコンマ () で区切ります。

    詳しくは、「シングルテナントの Azure Logic Apps で Standard ロジック アプリのホストとアプリの設定を編集する」をご覧ください。

    Note

    プライベート CA 証明書のサムプリントを指定した場合、MQ 組み込みコネクタでは、証明書の有効期限やソースのチェックなど、証明書の検証は実行されません。 標準の .NET SSL 検証が失敗した場合、コネクタは渡されたサムプリントの値と WEBSITE_LOAD_ROOT_CERTIFICATES 設定の値の比較だけを行います。

  7. 追加した証明書が公開キー証明書の一覧に表示されない場合は、ツール バーの [最新の情報に更新] を選びます。

秘密キー証明書を追加する

次の手順に従って、Standard ロジック アプリが実行されている仮想マシン ホスト上の信頼されたルート CA ストアに秘密キー証明書を追加します。

  1. Azure portal で、ロジック アプリ リソースを開きます。 ロジック アプリのリソース メニューの [設定] で、[証明書] を選択します。

  2. [Bring Your Own Certificate (.pfx)] タブを選択し、[証明書の追加] を選択します。

    スクリーンショットは、[証明書]、[Bring Your Own Certificate]、[証明書の追加] のオプションが選択された Standard ロジック アプリを示しています。

  3. 表示された [秘密キー証明書の追加] ペインの [ソース] で、次のオプションのいずれかを選択します。

    • 証明書 (.pfx) をアップロードする

      1. 次の値を指定します。

        パラメーター 説明
        PFX 証明書ファイル 秘密キー証明書 (.pfx) ファイルを見つけて選択します。
        証明書のパスワード PFX ファイルをエクスポートする際に作成したパスワードを入力します。
        証明書のフレンドリ名 ロジック アプリ リソースに表示する証明書名を入力します。
      2. 完了したら、[検証]>[追加] を選択します。

    • キー コンテナーからインポートする

      1. [キー コンテナー証明書の選択] を選択して次の値を入力します。

        パラメーター 説明
        サブスクリプション キー コンテナーに関連付けられている Azure サブスクリプションを選択します。
        Key vault 秘密キー証明書 (.pfx) ファイルが格納されているキー コンテナーを選択します。
        [証明書] キー コンテナーで PKSCS12 証明書を選択します。 コンテナー内のすべての PKCS12 証明書がその拇印と共に一覧表示されますが、Azure Logic Apps ですべてがサポートされているわけではありません。
      2. 完了したら、[選択]>[検証]>[追加] を選択します。

  4. 証明書を追加した後、[拇印] 列から証明書のサムプリントの値をコピーします。

  5. ロジック アプリのリソース メニューの [設定] で、[構成] を選択します。

  6. [アプリケーションの設定] タブで、 [新しいアプリケーション設定] を選択します。 WEBSITE_LOAD_CERTIFICATES という名前の新しいアプリケーション設定を追加し、前にコピーした証明書のサムプリントの値を入力します。

    詳しくは、「シングルテナントの Azure Logic Apps で Standard ロジック アプリのホストとアプリの設定を編集する」をご覧ください。

  7. 追加した証明書が秘密キー証明書の一覧に表示されない場合は、ツール バーの [最新の情報に更新] を選びます。

  8. MQ 組み込みコネクタを使って接続を作成する場合は、接続情報ボックスで [Use TLS] (TLS を使用) を選びます。

  9. [Client Cert Thumbprint] (クライアント証明書のৠ印) プロパティに、前にコピーした秘密キー証明書のサムプリントの値を入力します。これにより、サーバー - クライアント (双方向) 認証が有効になります。 サムプリントの値を入力しない場合、コネクタはサーバーのみの (一方向) 認証を使います。

    スクリーンショットは、Standard ワークフロー、MQ 組み込み接続ボックス、オンになっている [TLS プロパティを使用する] プロパティ、拇印の値が指定された [クライアント証明書の拇印] プロパティを示しています。

問題のトラブルシューティング

アクションの参照または受信の失敗

空のキューでアクションの参照または受信を実行すると、アクションは次のヘッダーを出力して失敗します。

スクリーンショットは、

接続と認証の問題

ワークフローで MQ マネージド コネクタを使ってオンプレミスの MQ サーバーに接続すると、次のエラーが発生する可能性があります。

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

  • 信頼された証明機関によって発行された証明書を、MQ サーバーで提供する必要があります。

  • MQ サーバーでは、TLS 接続に使用する暗号化仕様を定義する必要があります。 ただし、セキュリティ上の目的や、最適なセキュリティ スイートを含めるために、Windows オペレーティング システムは一連のサポートされている暗号仕様を送信します。

    MQ サーバーが実行されているオペレーティング システムは、使用するスイートを選択します。 構成を一致させるには、暗号化の仕様が TLS ネゴシエーションで選択されたオプションと一致するように MQ サーバーのセットアップを変更する必要があります。

    接続しようとすると、MQ サーバーが間違った暗号化仕様を選択したために接続が失敗したことを示すイベント メッセージをログに記録します。 イベント メッセージには、MQ サーバーが一覧から選択した暗号仕様が含まれています。 サーバー接続チャネル構成で、イベント メッセージ内の暗号化仕様に一致するように暗号化使用を更新します。