Conexión a un servidor IBM MQ desde un flujo de trabajo en Azure Logic Apps

Se aplica a: Azure Logic Apps (consumo + estándar)

En este artículo se muestra cómo acceder a un servidor MQ hospedado o local de Azure desde un flujo de trabajo de Azure Logic Apps mediante el conector MQ. A continuación, puede crear flujos de trabajo automatizados que reciban y envíen mensajes almacenados en el servidor MQ. Por ejemplo, el flujo de trabajo puede buscar un mensaje en una cola y, después, ejecutar otras acciones.

El conector MQ proporciona un contenedor alrededor de un cliente de Microsoft MQ, que incluye todas las funcionalidades de mensajería para comunicarse con un servidor MQ remoto a través de una red TCP/IP. Este conector define las conexiones, las operaciones y los parámetros para llamar al cliente MQ.

Versiones de IBM WebSphere MQ admitidas

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

Referencia técnica del conector

El conector MQ tiene versiones diferentes en función del tipo de aplicación lógica y del entorno de host.

Aplicación lógica Entorno Versión de conexión
Consumo Entorno del servicio Azure Logic Apps e integración multiinquilino (ISE) El conector administrado, que aparece en el diseñador con la etiqueta Enterprise. Este conector proporciona únicamente acciones, no desencadenadores. En escenarios de servidor MQ locales, el conector administrado solo admite la autenticación del servidor con cifrado TLS (SSL).

Para obtener más información, revise la siguiente documentación:

- Referencia del conector administrado MQ
- Conectores administrados en Azure Logic Apps
Estándar Azure Logic Apps y App Service Environment v3 de un solo inquilino (solo ASE v3 con planes de Windows) El conector administrado, que aparece en la galería de conectores en Runtime>Compartido y el conector integrado, que aparece en la galería de conectores en Runtime>En la aplicación y se basa en el proveedor de servicios. La versión integrada difiere de las maneras siguientes:

- La versión integrada incluye acciones y desencadenadores.

- El conector integrado puede conectarse directamente a un servidor MQ y acceder a redes virtuales de Azure mediante un cadena de conexión sin una puerta de enlace de datos local.

- La versión integrada admite tanto la autenticación de servidor como la autenticación de cliente de servidor con cifrado TLS (SSL) para los datos en tránsito, la codificación de mensajes para las operaciones de envío y recepción y la integración de red virtual de Azure.

Para obtener más información, revise la siguiente documentación:

- Referencia del conector administrado MQ
- Referencia del conector integrado de MQ
- Conectores integrados en Azure Logic Apps

Autenticación con cifrado TLS (SSL)

En función de si usa el conector administrado mq (flujos de trabajo de consumo o estándar) o el conector integrado mq (solo flujos de trabajo estándar), el conector MQ admite una o ambas de las siguientes direcciones de autenticación:

Autenticación Tipo de aplicación lógica compatible y conector MQ Proceso
Solo servidor
(unidireccional)
- Consumo: solo administrado

- Estándar: administrado o integrado
Para la autenticación del servidor, el servidor MQ envía un certificado de clave privada, ya sea de confianza pública o no de confianza pública, al cliente de la aplicación lógica para la validación. El conector MQ valida el certificado de servidor entrante para la autenticidad de los certificados de clave pública, conocidos también como certificados "firmantes", mediante la validación estándar de flujos SSL de .NET.

La aplicación lógica no envía un certificado de cliente.
Server-client
(bidireccional)
- Consumo: no compatible

- Estándar: solo integrado
Para la autenticación del servidor, consulte la fila anterior.

Para la autenticación de cliente, el cliente de la aplicación lógica envía un certificado de clave privada al servidor MQ para su validación. El servidor MQ valida el certificado de cliente entrante para la autenticidad también mediante un certificado de clave pública.

Notas sobre las claves privadas y los certificados de clave pública

  • El certificado que requiere validación siempre es un certificado de clave privada. El certificado usado para realizar la validación siempre es un certificado de clave pública.

  • Una entidad de certificación reconocida emite un certificado de clave privada de confianza pública. Un certificado de clave privada que no es de confianza pública incluye certificados autofirmados, entidad de certificación privada y similares.

  • Para validar un certificado de clave privada enviado desde el servidor MQ, el conector MQ usa certificados de clave pública que normalmente existen en el host de máquina virtual de la aplicación lógica en el almacén de entidades de certificación raíz de confianza (CA) del host.

    Sin embargo, si el host no tiene todos los certificados de clave pública necesarios, o si el servidor MQ envía un certificado de clave privada que no es de confianza pública, debe realizar pasos adicionales. Para obtener más información, consulte Requisitos previos.

  • Para validar el certificado de clave privada de un cliente enviado desde la aplicación lógica Estándar, el servidor MQ usa certificados de clave pública que existen en el almacén de certificados del servidor MQ. Para agregar un certificado de clave privada para que la aplicación lógica se use como certificado de cliente, consulte Incorporación de un certificado de clave privada.

Limitaciones

  • Autenticación con cifrado TLS (SSL)

    Conector MQ Dirección de autenticación admitida
    Administrado Solo servidor (unidireccional)
    Integrado - Cliente-servidor (bidireccional)
    - Solo servidor (unidireccional)
  • Validación de certificados de servidor

    El conector integrado mq no valida la fecha de expiración del certificado de servidor ni la cadena de certificados.

  • Conversiones de juego de caracteres

    • El conector administrado de MQ no realiza ninguna conversión de juego de caracteres ni usa el campo Formato del mensaje. El conector solo copia los datos que aparecen en el campo de mensaje y envía el mensaje.

    • El conector integrado mq puede realizar conversiones de juego de caracteres, pero solo cuando el formato de datos es una cadena. Si proporciona un identificador de juego de caracteres diferente (página de códigos), el conector intenta convertir los datos en la nueva página de códigos.

  • El conector MQ no admite mensajes segmentados.

Para obtener más información, consulte la referencia del conector administrado de MQ o la referencia del conector integrado de MQ.

Requisitos previos

  • Una cuenta y una suscripción de Azure. Si no tiene una suscripción de Azure, regístrese para obtener una cuenta gratuita de Azure.

  • Para conectarse con un servidor MQ local, debe instalar la puerta de enlace de datos local en un servidor de la red. Para que el conector de MQ funcione, el servidor donde se instala la puerta de enlace de datos local también debe tener instalado .NET Framework 4.6.

    Después de instalar la puerta de enlace, debe crear también un recurso de puerta de enlace de datos en Azure. El conector de MQ usa este recurso para acceder al servidor MQ. Para más información, consulte Conexión a orígenes de datos locales desde Azure Logic Apps.

    Nota:

    No se necesita la puerta de enlace en los escenarios siguientes:

    • El servidor MQ está disponible públicamente o está disponible en Azure.
    • Va a usar el conector integrado de MQ, no el conector administrado.
  • El recurso y el flujo de trabajo de la aplicación lógica en los que desea acceder al servidor MQ.

    • Para usar el conector administrado de MQ con la puerta de enlace de datos local, el recurso de la aplicación lógica debe usar la misma ubicación que el recurso de puerta de enlace en Azure.

    • Para usar el conector administrado de MQ, que no proporciona ningún desencadenador, asegúrese de que el flujo de trabajo comienza con un desencadenador o que primero agrega un desencadenador al flujo de trabajo. Por ejemplo, puede usar el desencadenador de periodicidad.

    • Para usar un desencadenador desde el conector integrado mq, asegúrese de empezar con un flujo de trabajo en blanco.

  • Requisitos de certificado para la autenticación con cifrado TLS (SSL)

    • Conector administrado de MQ

      Servidor MQ Requisitos
      Servidor MQ hospedado en Azure El servidor MQ debe enviar un certificado de clave privada emitido por una entidad de certificación de confianza al cliente de la aplicación lógica para su validación.
      Servidor MQ local mediante la puerta de enlace de datos local Para enviar un certificado de clave privada que no sea de confianza pública, como un certificado de entidad de certificación privada o autofirmado, debe agregar el certificado al almacén de entidades de certificación raíz de confianza (CA) en el equipo local con la instalación de la puerta de enlace de datos local. Para esta tarea, puedes usar el Administrador de certificados de Windows (certmgr.exe).
    • Conector integrado de MQ

      Las aplicaciones lógicas estándar usan App de Azure Service como plataforma host y para controlar los certificados. En el caso de las aplicaciones lógicas estándar en cualquier plan de WS*, puede agregar certificados públicos, privados, personalizados o autofirmados al almacén de certificados del equipo local. Sin embargo, si tiene que agregar certificados al almacén de CA raíz de confianza en el host de máquina virtual donde se ejecuta la aplicación lógica estándar, App Service requiere que la aplicación lógica se ejecute en una instancia aislada de App Service Environment v3 (ASE) con un plan de App Service basado en Windows y basado en ASE. Para más información, consulte Certificados y App Service Environment.

      • Autenticación de servidor MQ

        En la tabla siguiente se describen los requisitos previos del certificado, en función del escenario:

        Certificado de servidor MQ entrante Requisitos
        Certificado de clave privada de confianza pública emitido por una entidad de certificación de confianza Normalmente, la aplicación lógica no necesita ninguna otra configuración porque el host de máquina virtual de la aplicación lógica normalmente tiene los certificados de clave pública necesarios para validar el certificado de clave privada del servidor MQ entrante. Para comprobar que existen estos certificados de clave pública, siga los pasos para Ver y confirmar las huellas digitales de los certificados de clave pública existentes.

        Si el host de máquina virtual no tiene todos los certificados de clave pública necesarios para validar el certificado de clave privada del servidor MQ entrante y los certificados de encadenamiento, complete los pasos siguientes:

        1. Vuelva a crear la aplicación lógica estándar mediante un App de Azure Service Environment v3 (ASE) con un plan de App Service basado en Windows y basado en ASE.

        2. Agregue manualmente los certificados de clave pública necesarios al almacén de CA raíz de confianza del host.
        Certificado de clave privada que no es de confianza pública, como un certificado de entidad de certificación privada o autofirmado El host de máquina virtual de la aplicación lógica no tendrá los certificados de clave pública necesarios en el almacén de CA raíz de confianza del host para validar la cadena de certificados del servidor MQ. En este caso, complete los pasos siguientes:

        1. Vuelva a crear la aplicación lógica estándar mediante un App de Azure Service Environment v3 (ASE) con un plan de App Service basado en Windows y basado en ASE.

        2. Agregue manualmente los certificados de clave pública necesarios al almacén de CA raíz de confianza del host.

        Para obtener más información, consulte la siguiente documentación:
        - Enlaces de certificado y App Service Environment
        - Incorporación y administración de certificados TLS/SSL en Azure App Service
      • Autenticación de cliente de aplicación lógica

        Puede agregar un certificado de clave privada para enviar como certificado de cliente y, a continuación, especificar el valor de huella digital del certificado en los detalles de conexión del conector integrado mq. Para obtener más información, consulte Adición de un certificado de clave privada.

      Recomendación: Actualice al servidor MQ 9.0 o posterior. Además, en el servidor MQ, asegúrese de configurar el canal de conexión de servidor con un conjunto de cifrado que coincida con la especificación de cifrado usada por la conexión de cliente, por ejemplo, ANY_TLS12_OR_HIGHER. Para obtener más información, vea el siguiente elemento sobre los requisitos de cifrado.

  • Requisitos de especificación de cifrado

    El servidor MQ requiere que defina la especificación de cifrado para las conexiones que usan el cifrado TLS (SSL). Esta especificación de cifrado debe coincidir con los conjuntos de cifrado admitidos, elegidos y usados por el sistema operativo donde se ejecuta el servidor MQ. En última instancia, la especificación de cifrado usada por la conexión de cliente debe coincidir con los conjuntos de cifrado configurados en el canal de conexión de servidor en el servidor MQ.

    Para obtener más información, consulte Connection and authentication problems (Problemas de conexión y autenticación).

Adición de un desencadenador de MQ (solo aplicación lógica estándar)

Los pasos siguientes solo se aplican a los flujos de trabajo de la aplicación lógica estándar, que pueden usar desencadenadores proporcionados por el conector integrado de MQ. El conector administrado de MQ no incluye ningún desencadenador.

Aunque en estos pasos se usa Azure Portal, también puede usar Visual Studio Code para crear un flujo de trabajo de aplicación lógica estándar si usa la extensión de Azure Logic Apps adecuada.

  1. Abra el flujo de trabajo vacío de la aplicación lógica en el diseñador de Azure Portal.

  2. Siga estos pasos generales para agregar el desencadenador integrado mq que desee. Para más información, consulte Desencadenadores de conector integrados de MQ.

  3. Proporcione la información necesaria para autenticar la conexión. Seleccione Crear cuando haya terminado.

  4. Cuando aparezca el cuadro de información del desencadenador, proporcione la información necesaria para el desencadenador.

  5. Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

Adición de una acción de MQ

Un flujo de trabajo de aplicación lógica de consumo solo puede usar el conector administrado de MQ. En cambio, un flujo de trabajo de aplicación lógica estándar puede usar el conector administrado de MQ y el conector integrado de MQ. Cada versión tiene varias acciones. Por ejemplo, las versiones de conectores administradas y integradas tienen sus propias acciones para examinar un mensaje.

  • Acciones del conector administrado: estas acciones se ejecutan en un flujo de trabajo de aplicación lógica estándar o consumo.

  • Acciones del conector integradas: estas acciones solo se ejecutan en un flujo de trabajo de aplicación lógica estándar.

Aunque en los siguientes pasos se usa Azure Portal, también puede usar las siguientes herramientas para crear flujos de trabajo de aplicaciones lógicas si usa la extensión Azure Logic Apps adecuada:

  1. En Azure Portal abra el flujo de trabajo de la aplicación lógica en el diseñador.

  2. Siga estos pasos generales para agregar la acción mq que desee. Para más información, consulte Acciones del conector mq.

  3. Proporcione la información necesaria para autenticar la conexión. Seleccione Crear cuando haya terminado.

  4. Cuando aparezca el cuadro de información de la acción, proporcione la información necesaria para la acción.

  5. Cuando haya terminado, guarde el flujo de trabajo. En la barra de herramientas del diseñador, seleccione Save (Guardar).

Prueba del flujo de trabajo

Para comprobar que el flujo de trabajo devuelve los resultados esperados, ejecute el flujo de trabajo y revise las salidas del historial de ejecución del flujo de trabajo.

  1. Ejecución del flujo de trabajo.

    • Aplicación lógica de consumo: en la barra de herramientas del diseñador de flujos de trabajo, seleccione Ejecutar desencadenador> Ejecutar.

    • Aplicación lógica estándar: en el menú de recursos del flujo de trabajo, seleccione Información general. En la barra de herramientas del panel Información general, seleccione Ejecutar desencadenador>Ejecutar.

    Una vez que ha finalizado la ejecución, el diseñador muestra el historial de ejecución del flujo de trabajo junto con el estado de cada paso.

  2. Para revisar las entradas y salidas de cada paso que se ejecutó (no omitido), expanda o seleccione el paso.

    • Para revisar más detalles de entrada, seleccione Mostrar entradas sin procesar.

    • Para revisar más detalles de salida, seleccione Mostrar salidas sin procesar. Si establece IncludeInfo en true, se incluirá una salida adicional.

Visualización y adición de certificados para la autenticación con cifrado TLS (SSL)

La siguiente información solo se aplica a los flujos de trabajo de aplicaciones lógicas estándar para el conector integrado MQ mediante la autenticación solo de servidor o cliente de servidor con cifrado TLS (SSL).

Visualización y confirmación de huellas digitales para certificados de clave pública existentes

Para comprobar que las huellas digitales de los certificados de clave pública necesarios existen en el host de máquina virtual de la aplicación lógica estándar en el almacén de CA raíz de confianza, siga estos pasos para ejecutar el script de PowerShell desde el cert menú de recursos de la aplicación lógica estándar.

  1. En Azure Portal, abra el recurso Aplicación lógica estándar. En el menú de recursos de la aplicación lógica, en Herramientas de desarrollo, seleccione Herramientas>avanzadas Ir.

  2. En el menú de la consola de depuración de Kudu, seleccione PowerShell.

  3. Una vez que aparezca la ventana de PowerShell, desde el símbolo del sistema de PowerShell, ejecute el siguiente script:

    dir cert:\localmachine\root

    En la ventana de PowerShell se enumeran las huellas digitales y descripciones existentes, por ejemplo:

    Screenshot showing existing example thumbprints and descriptions.

Adición de un certificado de clave pública

Para agregar un certificado de clave pública al almacén de CA raíz de confianza en ese host de máquina virtual donde se ejecuta la aplicación lógica estándar, siga estos pasos:

  1. En Azure Portal, abra el recurso Aplicación lógica estándar. En el menú de recursos de la aplicación lógica, en Configuración, seleccione Configuración de TLS/SSL (clásico).

  2. En la página Configuración de TLS/SSL (clásico), seleccione la pestaña Certificados de clave pública (.cer) y, a continuación, seleccione Cargar certificado de clave pública.

  3. En el panel Agregar certificado de clave pública (.cer) que se abre, escriba un nombre para describir el certificado. Busque y seleccione el archivo de certificado de clave pública (.cer). Cuando finalice, seleccione Cargar.

  4. Después de agregar el certificado, desde la columna Huella digital , copie el valor de huella digital del certificado.

    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. En el menú de recursos de la aplicación lógica, seleccione Configuración.

  6. En la pestaña Configuración de la aplicación, seleccione Nueva configuración de la aplicación. Agregue una nueva configuración de aplicación denominada WEBSITE_LOAD_ROOT_CERTIFICATES y escriba el valor de huella digital del certificado que copió anteriormente. Si tiene varios valores de huella digital de certificado, asegúrese de separar cada valor con una coma (,).

    Para más información, consulte Edición de la configuración de host y aplicación para aplicaciones lógicas estándar en Azure Logic Apps de inquilino único.

    Nota:

    Si especifica una huella digital para un certificado de entidad de certificación privada, el conector integrado mq no ejecuta ninguna validación de certificado, como comprobar la fecha de expiración o el origen del certificado. Si se produce un error en la validación estándar de SSL de .NET, el conector solo compara cualquier valor de huella digital que se pase con el valor de la configuración de WEBSITE_LOAD_ROOT_CERTIFICATES .

  7. Si el certificado agregado no aparece en la lista de certificados de clave pública, en la barra de herramientas, seleccione Actualizar.

Adición de un certificado de clave privada

Para agregar un certificado de clave privada al almacén de CA raíz de confianza en el host de máquina virtual donde se ejecuta la aplicación lógica estándar, siga estos pasos:

  1. En Azure Portal, abra el recurso de aplicación lógica. En el menú de recursos de la aplicación lógica, en Configuración, seleccione Configuración de TLS/SSL (clásico).

  2. En la página Configuración de TLS/SSL (clásico), seleccione la pestaña Certificados de clave privada (.pfx) y, a continuación, seleccione Cargar certificado.

  3. En el panel Agregar certificado de clave privada (.pfx) que se abre, busque y seleccione el archivo de certificado de clave privada (.pfx) y escriba la contraseña del certificado. Cuando finalice, seleccione Cargar.

  4. Después de agregar el certificado, desde la columna Huella digital , copie el valor de huella digital del certificado.

    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. En el menú de recursos de la aplicación lógica, seleccione Configuración.

  6. En la pestaña Configuración de la aplicación, seleccione Nueva configuración de la aplicación. Agregue una nueva configuración de aplicación denominada WEBSITE_LOAD_CERTIFICATES y escriba el valor de huella digital del certificado que copió anteriormente.

    Para más información, consulte Edición de la configuración de host y aplicación para aplicaciones lógicas estándar en Azure Logic Apps de inquilino único.

  7. Si el certificado agregado no aparece en la lista certificados de clave privada, en la barra de herramientas, seleccione Actualizar.

  8. Al crear una conexión mediante el conector integrado mq, en el cuadro de información de conexión, seleccione Usar TLS.

  9. En la propiedad Huella digital del certificado de cliente, escriba el valor de huella digital copiado previamente para el certificado de clave privada, que habilita la autenticación de cliente-servidor (bidireccional). Si no especifica un valor de huella digital, el conector usa la autenticación de solo servidor (unidireccional).

    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.

Solucionar problemas

Errores con las acciones de exploración o recepción

Si ejecuta una acción de exploración o recepción en una cola vacía, se produce un error en la acción con las siguientes salidas de encabezado:

Screenshot showing the MQ

Problemas de conexión y autenticación

Cuando el flujo de trabajo usa el conector administrado de MQ para conectarse al servidor MQ local, es posible que reciba el siguiente error:

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

  • El servidor MQ debe proporcionar un certificado emitido por una entidad de certificación de confianza.

  • El servidor MQ requiere que defina la especificación de cifrado que se va a usar para las conexiones TLS. Sin embargo, por motivos de seguridad y para incluir los mejores conjuntos de seguridad, el sistema operativo Windows envía un conjunto de especificaciones de cifrado admitidas.

    El sistema operativo donde se ejecuta el servidor MQ elige los conjuntos que se usarán. Para que la configuración coincida, debe cambiar la configuración del servidor MQ para que la especificación de cifrado coincida con la opción elegida en la negociación de TLS.

    Al intentar la conexión, el servidor MQ registra un mensaje de evento que indica que se produjo un error en el intento de conexión porque el servidor MQ ha elegido una especificación de cifrado incorrecta. El mensaje del evento contiene la especificación de cifrado que el servidor MQ eligió de la lista. En la configuración del canal de conexión del servidor, actualice la especificación de cifrado para que coincida con la especificación de cifrado en el mensaje de evento.

Pasos siguientes