Подключение к серверу 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
Технический справочник по соединителю
Соединитель MQ имеет разные версии, основанные на типе приложения логики и среде узла.
Приложение логики | Среда | Версия подключения |
---|---|---|
Потребление | Мультитенантные Azure Logic Apps | Управляемый соединитель, который отображается в коллекции соединителей в разделе "Общая среда выполнения>". Этот соединитель предоставляет только действия, а не триггеры. В локальных сценариях сервера 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
В следующей таблице описаны предварительные требования к сертификату на основе вашего сценария:
Входящий сертификат сервера MQ Требования Общедоступный доверенный сертификат закрытого ключа, выданный доверенным центром сертификации Как правило, приложению логики не нужна другая настройка, так как узел виртуальной машины приложения логики обычно имеет необходимые сертификаты открытого ключа для проверки входящего сертификата закрытого ключа сервера MQ. Чтобы убедиться в том, что эти сертификаты открытого ключа существуют, выполните инструкции по просмотру и подтверждению отпечатков существующих сертификатов открытого ключа.
Если на узле виртуальной машины нет всех необходимых сертификатов открытого ключа для проверки сертификата закрытого ключа входящего сервера MQ и всех сертификатов цепочки, выполните следующие действия:
1. Повторно создайте приложение логики уровня "Стандартный", используя среду службы приложение Azure версии 3 (ASE) только для Windows и план Служба приложений на основе ASE.
2. Вручную добавьте необходимые сертификаты открытого ключа в доверенное корневое хранилище ЦС узла.Ненадежный сертификат закрытого ключа, например самозаверяющий или закрытый сертификат ЦС Узел виртуальной машины приложения логики не будет иметь необходимые сертификаты открытого ключа в доверенном корневом хранилище ЦС узла для проверки цепочки сертификатов сервера MQ. В этом случае выполните следующие действия:
1. Повторно создайте приложение логики уровня "Стандартный", используя среду службы приложение Azure версии 3 (ASE) только для Windows и план Служба приложений на основе ASE.
2. Вручную добавьте необходимые сертификаты открытого ключа в доверенное корневое хранилище ЦС узла.
Дополнительные сведения см. в следующей документации:
- Привязки к сертификату и среда службы приложений
- Добавление TLS/SSL-сертификатов и управление ими в службе приложений AzureПроверка подлинности клиента приложения логики
Вы можете добавить сертификат закрытого ключа для отправки в качестве сертификата клиента, а затем указать значение отпечатка сертификата в сведениях о подключении для встроенного соединителя MQ. Подробнее см. в разделе Добавление сертификата закрытого ключа.
Рекомендация: выполните обновление до сервера MQ версии 9.0 или более поздней версии. Кроме того, на сервере MQ необходимо настроить канал подключения к серверу с набором шифров, который соответствует спецификации шифра, используемой подключением клиента, например ANY_TLS12_OR_HIGHER. Подробнее см. в пункте ниже о требованиях к шифрам.
Требования к спецификации шифров
Для сервера MQ необходимо определить спецификацию шифра для подключений, использующих шифрование TLS (SSL). Эта спецификация шифра должна соответствовать наборам шифров, которые поддерживаются, выбираются и используются операционной системой, где выполняется сервер MQ. В конечном итоге спецификация шифра, используемая клиентским подключением, должна соответствовать наборам шифров, настроенным на канале подключения к серверу MQ.
Дополнительные сведения см. в разделе Проблемы при подключении и проверке подлинности.
Добавление триггера MQ (только стандартное приложение логики)
Следующие шаги применяются только к рабочим процессам приложения логики уровня "Стандартный", которые могут использовать триггеры, предоставляемые встроенным соединителем MQ. Управляемый соединитель MQ не включает триггеры.
Эти действия используют портал Azure, но с соответствующим расширением Azure Logic Apps можно также использовать Visual Studio Code для создания рабочего процесса приложения логики уровня "Стандартный".
В портал Azure откройте пустой рабочий процесс приложения логики в конструкторе.
Выполните следующие общие действия, чтобы добавить встроенный триггер MQ, который требуется. Дополнительные сведения см. в разделе встроенных триггеров соединителя MQ.
Укажите необходимые сведения для проверки подлинности подключения. По завершении нажмите Создать.
Когда появится поле сведений об триггере, укажите необходимые сведения для триггера.
Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.
Добавление действия MQ
Рабочий процесс приложения логики потребления может использовать только управляемый соединитель MQ. Однако рабочий процесс приложения логики уровня "Стандартный" может использовать управляемый соединитель MQ и встроенный соединитель MQ. Каждая версия имеет несколько действий. Например, у управляемых и встроенных версий соединителей есть собственные действия для просмотра сообщения.
Действия управляемого соединителя: эти действия выполняются в рабочем процессе приложения логики "Потребление" или "Стандартный".
Встроенные действия соединителя: эти действия выполняются только в рабочем процессе приложения логики "Стандартный".
Следующие шаги используют портал Azure, но с соответствующим расширением Azure Logic Apps можно также использовать следующие средства для создания рабочих процессов приложения логики:
Рабочие процессы приложения логики потребления: Visual Studio или Visual Studio Code
Стандартные рабочие процессы приложения логики: Visual Studio Code
Откройте рабочий процесс приложения логики в конструкторе на портале Azure.
Выполните следующие общие действия, чтобы добавить нужное действие MQ. Дополнительные сведения см. в разделе "Действия соединителя MQ".
Укажите необходимые сведения для проверки подлинности подключения. По завершении нажмите Создать.
Когда появится поле сведений о действии, укажите необходимые сведения для действия.
Закончив работу, сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.
Тестирование рабочего процесса
Чтобы убедиться, что рабочий процесс возвращает ожидаемые результаты, запустите рабочий процесс и просмотрите выходные данные из журнала выполнения рабочего процесса.
Запустите рабочий процесс.
Приложение логики потребления: на панели инструментов конструктора рабочих процессов выберите запуск триггера.>
Стандартное приложение логики: в меню ресурсов рабочего процесса выберите "Обзор". На панели инструментов Обзор выберите Запустить триггер>Выполнить.
После завершения выполнения конструктор отображает журнал выполнения рабочего процесса вместе с состоянием каждого шага.
Чтобы проверить входные и выходные данные для каждого выполненного (не пропущенного) этапа, разверните или выберите этот этап.
Чтобы просмотреть дополнительные сведения о входных данных, выберите команду Показать необработанные входные данные.
Чтобы просмотреть дополнительные сведения о выходных данных, выберите команду Показать необработанные выходные данные. Если для параметра IncludeInfo задано значение true, отображаются дополнительные выходные данные.
Просмотр и добавление сертификатов для проверки подлинности с помощью шифрования TLS (SSL)
Приведенные ниже сведения относятся только к рабочим процессам приложения логики уровня "Стандартный" для встроенного соединителя MQ, используя только серверную или серверную проверку подлинности с шифрованием TLS (SSL).
Просмотр и подтверждение отпечатков для существующих сертификатов открытого ключа
Чтобы убедиться, что отпечатки необходимых сертификатов открытого ключа существуют на узле виртуальной машины приложения логики уровня "Стандартный" в хранилище доверенных корневых ЦС, выполните следующие действия, чтобы запустить cert
сценарий PowerShell из меню ресурсов приложения логики уровня "Стандартный".
На портале Azure откройте свой ресурс приложения логики категории "Стандартный". В меню ресурсов приложения логики в разделе "Средства разработки" выберите "Расширенные инструменты> Go".
В меню консоли отладки Kudu выберите PowerShell.
После появления окна PowerShell в командной строке PowerShell выполните следующий сценарий:
dir cert:\localmachine\root
В окне PowerShell перечислены существующие отпечатки и описания, например:
Добавление сертификата открытого ключа
Чтобы добавить сертификат открытого ключа в доверенное корневое хранилище ЦС на этом узле виртуальной машины, где выполняется приложение логики уровня "Стандартный", выполните следующие действия.
На портале Azure откройте свой ресурс приложения логики категории "Стандартный". В меню ресурсов приложения логики в разделе "Параметры" выберите параметры TLS/SSL (классическая модель).
На странице параметров TLS/SSL (классическая модель) выберите вкладку "Сертификаты открытого ключа" (.cer) и нажмите кнопку "Отправить сертификат открытого ключа".
В открывшемся разделе "Добавление сертификата открытого ключа" (.cer) введите имя для описания сертификата. Найдите и выберите файл сертификата открытого ключа (.cer). По завершении выберите Отправить.
После добавления сертификата из столбца отпечатка скопируйте значение отпечатка сертификата.
В меню ресурсов приложения логики выберите "Конфигурация".
На вкладке Параметры приложения выберите Новый параметр приложения. Добавьте новый параметр приложения с именем WEBSITE_LOAD_ROOT_CERTIFICATES и введите значение отпечатка сертификата, скопированное ранее. Если у вас несколько значений отпечатка сертификата, обязательно разделите каждое значение запятой (,).
Дополнительные сведения см. в статье "Изменение параметров узла и приложения" для приложений логики "Стандартный" в azure Logic Apps с одним клиентом.
Примечание.
Если указать отпечаток для частного сертификата ЦС, встроенный соединитель MQ не выполняет проверку сертификата, например проверку срока действия или источника сертификата. Если стандартная проверка SSL .NET завершается ошибкой, соединитель сравнивает только любое значение отпечатка, переданное в соответствии со значением в параметре WEBSITE_LOAD_ROOT_CERTIFICATES .
Если добавленный сертификат не отображается в списке сертификатов открытого ключа, на панели инструментов нажмите кнопку "Обновить".
Добавление сертификата закрытого ключа
Чтобы добавить сертификат закрытого ключа в доверенное корневое хранилище ЦС на узле виртуальной машины, где выполняется приложение логики уровня "Стандартный", выполните следующие действия.
Откройте ресурс приложения логики на портале Azure. В меню ресурсов приложения логики в разделе "Параметры" выберите параметры TLS/SSL (классическая модель).
На странице параметров TLS/SSL (классическая модель) перейдите на вкладку "Сертификаты закрытого ключа" (PFX), а затем нажмите кнопку "Отправить сертификат".
На открывающейся панели добавления сертификата закрытого ключа (PFX) найдите и выберите файл сертификата закрытого ключа (PFX), а затем введите пароль сертификата. По завершении выберите Отправить.
После добавления сертификата из столбца отпечатка скопируйте значение отпечатка сертификата.
В меню ресурсов приложения логики выберите "Конфигурация".
На вкладке Параметры приложения выберите Новый параметр приложения. Добавьте новый параметр приложения с именем WEBSITE_LOAD_CERTIFICATES и введите значение отпечатка сертификата, скопированное ранее.
Дополнительные сведения см. в статье "Изменение параметров узла и приложения" для приложений логики "Стандартный" в azure Logic Apps с одним клиентом.
Если добавленный сертификат не отображается в списке сертификатов закрытого ключа, на панели инструментов нажмите кнопку "Обновить".
При создании подключения с помощью встроенного соединителя 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, производит выбор нужного набора. Чтобы обеспечить соответствие конфигурации, измените настройку сервера MQ, чтобы спецификация шифра соответствовала параметру, выбранному в согласовании TLS.
При попытке подключения сервер MQ регистрирует сообщение о событии, указывающее на ошибку подключения, так как сервер MQ использовал неверную спецификацию шифра. Сообщение о событии содержит спецификацию шифра, выбранную из списка сервером MQ. Измените спецификацию шифра в конфигурации канала подключения к серверу, чтобы она соответствовала спецификации шифра в сообщении о событии.