Подключение к серверу IBM MQ из рабочего процесса службы Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

В этой статье показано, как получить доступ к локальному или локальному серверу MQ Azure из рабочего процесса в Azure Logic Apps с помощью соединителя MQ. Затем можно создать автоматизированные рабочие процессы, которые получают и отправляют сообщения, хранящиеся на сервере MQ. Например, рабочий процесс может найти одно сообщение в очереди, а затем выполнить другие действия.

Соединитель MQ предоставляет оболочку вокруг клиента Microsoft MQ, который включает все возможности обмена сообщениями для взаимодействия с удаленным сервером MQ через сеть TCP/IP. Этот соединитель определяет подключения, операции и параметры для вызова клиента MQ.

Поддерживаемые версии IBM WebSphere MQ

  • MQ 7.5
  • MQ 8.0
  • MQ 9.0, 9.1, 9.2 и 9.3

технический справочник по Подключение or

Соединитель MQ имеет разные версии, основанные на типе приложения логики и среде узла.

Приложение логики Среда версия Подключение ion
Потребление Мультитенантная среда Azure Logic Apps и среда службы интеграции (ISE) Управляемый соединитель, который отображается в конструкторе под меткой Enterprise . Этот соединитель предоставляет только действия, а не триггеры. В локальных сценариях сервера MQ управляемый соединитель поддерживает только проверку подлинности сервера с шифрованием TLS (SSL).

Дополнительные сведения см. в следующей документации:

- Справочник по управляемому соединителю MQ
- Управляемые соединители в Azure Logic Apps
Стандартные Azure Logic Apps с одним клиентом и Среда службы приложений версии 3 (ASE версии 3 только с планами Windows) Управляемый соединитель, который отображается в коллекции соединителей в разделе "Общая среда выполнения" и встроенный соединитель, который отображается в коллекции соединителей в разделе "Среда выполнения>>в приложении" и является поставщиком услуг. Встроенная версия отличается следующим образом:

— Встроенная версия включает действия и триггеры.

— Встроенный соединитель может напрямую подключаться к серверу MQ и получать доступ к виртуальным сетям Azure с помощью строка подключения без локального шлюза данных.

— Встроенная версия поддерживает проверку подлинности сервера и проверку подлинности сервера с помощью шифрования TLS (SSL) для передаваемых данных, кодирования сообщений для операций отправки и получения, а также интеграции виртуальной сети Azure.

Дополнительные сведения см. в следующей документации:

- Справочник по управляемому соединителю MQ
- Справочник по встроенному соединителю MQ
- Встроенные соединители в Azure Logic Apps

Проверка подлинности с помощью шифрования TLS (SSL)

В зависимости от того, используется ли управляемый соединитель MQ (рабочие процессы потребления или стандартные) или встроенный соединитель MQ (только для стандартных рабочих процессов), соединитель MQ поддерживает одно или оба из следующих направлений проверки подлинности:

Проверка подлинности Поддерживаемый тип приложения логики и соединитель MQ Процесс
Только сервер
(односторонняя)
— потребление: только управляемое

— Стандартный: управляемый или встроенный
Для проверки подлинности сервера MQ сервер отправляет сертификат закрытого ключа( общедоступный или ненадежный) клиенту приложения логики для проверки. Соединитель MQ проверяет сертификат входящего сервера для проверки подлинности с помощью сертификатов открытого ключа, известных также как сертификаты подписывания, с помощью стандартной проверки SSL-потока .NET.

Приложение логики не отправляет сертификат клиента.
Сервер-клиент
(двустороннее)
— потребление: не поддерживается

— Стандартный: только встроенная
Сведения о проверке подлинности сервера см. в предыдущей строке.

Для проверки подлинности клиента приложения логики клиент отправляет сертификат закрытого ключа на сервер MQ для проверки. Сервер MQ проверяет входящие сертификаты клиента для проверки подлинности с помощью сертификата открытого ключа.

Заметки о сертификатах закрытого ключа и открытого ключа

  • Сертификат, требующий проверки, всегда является сертификатом закрытого ключа. Сертификат, используемый для проверки, всегда является сертификатом открытого ключа.

  • Сертификат открытого закрытого ключа выдан распознаваемым центром сертификации. Сертификат закрытого ключа, отличный от открытого доверия, включает самозаверяющий, частный ЦС и аналогичные сертификаты.

  • Чтобы проверить сертификат закрытого ключа, отправленный с сервера MQ, соединитель MQ использует сертификаты открытого ключа, которые обычно существуют на узле виртуальной машины приложения логики в хранилище доверенных корневых центров сертификации узла .

    Однако если у узла нет всех необходимых сертификатов открытого ключа или если сервер 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

      Сервер MQ Требования
      Сервер MQ, размещенный в Azure Сервер MQ должен отправить сертификат закрытого ключа, выданный доверенным центром сертификации клиенту приложения логики для проверки.
      Локальный сервер MQ с помощью локального шлюза данных Для отправки сертификата закрытого ключа, не являющегося общедоступным, например самозаверяющего или закрытого сертификата ЦС, необходимо добавить сертификат в хранилище доверенных корневых центров сертификации (ЦС) на локальном компьютере с установкой локального шлюза данных. Для этой задачи можно использовать диспетчер сертификатов Windows (certmgr.exe).
    • Встроенный соединитель MQ

      Стандартные приложения логики используют службу приложение Azure в качестве хост-платформы и обрабатывают сертификаты. Для приложений логики уровня "Стандартный" в любом плане WS* можно добавлять общедоступные, частные, пользовательские или самозаверяемые сертификаты в хранилище сертификатов локального компьютера. Однако если необходимо добавить сертификаты в хранилище доверенных корневых ЦС на узле виртуальной машины, где выполняется приложение логики уровня "Стандартный", Служба приложений требует, чтобы приложение логики выполнялось в изолированном Среда службы приложений версии 3 (ASE) с помощью только Windows и плана Служба приложений на основе ASE. Дополнительные сведения см. в разделе "Сертификаты" и Среда службы приложений.

      Рекомендация. Обновление до сервера MQ версии 9.0 или более поздней версии. Кроме того, на сервере MQ необходимо настроить канал подключения к серверу с набором шифров, который соответствует спецификации шифра, используемой подключением клиента, например , ANY_TLS12_OR_HIGHER. Дополнительные сведения см. в следующем элементе о требованиях шифра.

  • Требования к спецификации шифров

    Для сервера 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)

Приведенные ниже сведения относятся только к рабочим процессам приложения логики уровня "Стандартный" для встроенного соединителя MQ, используя только серверную или серверную проверку подлинности с шифрованием TLS (SSL).

Просмотр и подтверждение отпечатков для существующих сертификатов открытого ключа

Чтобы проверка, что отпечатки необходимых сертификатов открытого ключа существуют на узле виртуальной машины приложения логики уровня "Стандартный" в хранилище доверенных корневых ЦС, выполните следующие действия, чтобы запустить cert скрипт PowerShell из меню ресурсов приложения логики уровня "Стандартный".

  1. На портале Azure откройте свой ресурс приложения логики категории "Стандартный". В меню ресурсов приложения логики в разделе "Средства разработки" выберите "Расширенные инструменты> Go".

  2. В меню консоли отладки Kudu выберите PowerShell.

  3. После появления окна PowerShell в командной строке PowerShell выполните следующий сценарий:

    dir cert:\localmachine\root

    В окне PowerShell перечислены существующие отпечатки и описания, например:

    Screenshot showing existing example thumbprints and descriptions.

Добавление сертификата открытого ключа

Чтобы добавить сертификат открытого ключа в доверенное корневое хранилище ЦС на этом узле виртуальной машины, где выполняется приложение логики уровня "Стандартный", выполните следующие действия.

  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 с одним клиентом.

    Примечание.

    Если указать отпечаток для частного сертификата ЦС, встроенный соединитель MQ не выполняет проверку сертификата, например проверка дату окончания срока действия или источник сертификата. Если стандартная проверка SSL .NET завершается ошибкой, соединитель сравнивает только любое значение отпечатка, переданное в соответствии со значением в параметре WEBSITE_LOAD_ROOT_CERTIFICATES .

  7. Если добавленный сертификат не отображается в списке сертификатов открытого ключа, на панели инструментов нажмите кнопку "Обновить".

Добавление сертификата закрытого ключа

Чтобы добавить сертификат закрытого ключа в доверенное корневое хранилище ЦС на узле виртуальной машины, где выполняется приложение логики уровня "Стандартный", выполните следующие действия.

  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. В конфигурации канала подключения сервера обновите спецификацию шифра, чтобы она соответствовала спецификации шифра в сообщении о событии.

Следующие шаги