Partekatu honen bidez:


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 envoltorio alrededor de un cliente de MQ de Microsoft, que incluye todas las funcionalidades de mensajería para comunicarse con un servidor MQ remoto mediante 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 Azure Logic Apps multiinquilino Conector administrado, que aparece en la galería de conectores en Runtime>Shared. 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 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 siguientes maneras:

- 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 una 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 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 de un servidor, el servidor MQ envía un certificado de clave privada, ya sea 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 de "firmante", mediante la validación estándar de flujos SSL de .NET.

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

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

Para la autenticación del 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 la autenticidad del certificado de cliente entrante 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.

  • Un certificado de clave privada de confianza pública lo emite una Entidad de certificación reconocida. 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 Adició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)
    Integrada - 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

  • Requisitos de especificación de cifrado

    El servidor MQ requiere que defina la especificación de cifrado para las conexiones que utilicen cifrado TLS (SSL). Esta especificación de cifrado debe coincidir con los conjuntos de cifrado admitidos, elegidos y utilizados por el sistema operativo donde se ejecute el servidor MQ. En última instancia, la especificación de cifrado utilizada por la conexión de cliente debe coincidir con los conjuntos de cifrado configurados en el canal de conexión del 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 desea. Para obtener 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 desea. Para obtener 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 cert script de PowerShell desde el 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 aplicación lógica, en Herramientas de desarrollo, seleccione Herramientas avanzadas>Go.

  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:

    Captura de pantalla que muestra las huellas digitales y descripciones de ejemplo existentes.

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.

    Captura de pantalla que muestra Azure Portal y el recurso lógico Estándar con los siguientes elementos seleccionados:

  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 obtener más información, consulte Editar la configuración del host y la aplicación para aplicaciones lógicas Estándar en Azure Logic Apps de un solo inquilino.

    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.

    Captura de pantalla que muestra Azure Portal y el recurso lógico Estándar con los siguientes elementos seleccionados:

  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 obtener más información, consulte Editar la configuración del host y la aplicación para aplicaciones lógicas Estándar en Azure Logic Apps de un solo inquilino.

  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 anteriormente para el certificado de clave privada, que habilita la autenticación bidireccional de cliente-servidor. Si no especifica un valor de huella digital, el conector usa la autenticación de solo servidor (unidireccional).

    Captura de pantalla que muestra el diseñador de flujos de trabajo de aplicación lógica estándar, el cuadro de conexión integrado MQ con la opción

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:

Captura de pantalla en la que se muestra el error

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. Actualice la especificación de cifrado en la configuración del canal de conexión al servidor para que coincida con la especificación de cifrado del mensaje del evento.

Pasos siguientes