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
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 utilizar un desencadenador desde el conector integrado de MQ, asegúrese de comenzar 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 a el 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, puede usar Administrador de certificados de Windows (certmgr.exe). Conector integrado de MQ
Las aplicaciones lógicas estándar utilizan Azure App 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 entidades de certificación raíz de confianza en el host de la 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 únicamente en Windows y con un plan de App Service basado en ASE. Para más información, consulte Certificados y la instancia de App Service Environment.
Autenticación del servidor MQ
En la tabla siguiente se describen los requisitos previos del certificado, en función del escenario:
Certificado del 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 la máquina virtual de la aplicación lógica suele tener 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 Azure App Service Environment v3 (ASE) con un plan de App Service basado en Windows y basado en ASE.
2. Manualmente agregar 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, siga los pasos siguientes:
1. Vuelva a crear la aplicación lógica Estándar mediante un Azure App Service Environment v3 (ASE) con un plan de App Service basado en Windows y basado en ASE.
2. Manualmente agregar los certificados de clave pública necesarios al almacén de CA raíz de confianza del host.
Para más información, consulte la siguiente documentación:
- Enlaces de certificados y App Service Environment
- Incorporación y administración de certificados TLS/SSL en Azure App ServiceAutenticación del cliente de la 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 la huella digital del certificado en los detalles de conexión del conector integrado en MQ. Para obtener más información, consulte Incorporació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 del servidor con un conjunto de cifrado que coincida con la especificación de cifrado que utiliza la conexión de cliente, por ejemplo, ANY_TLS12_OR_HIGHER. Para obtener más información, consulte 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 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.
Abra el flujo de trabajo vacío de la aplicación lógica en el diseñador de Azure Portal.
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.
Proporcione la información necesaria para autenticar la conexión. Seleccione Crear cuando haya terminado.
Cuando aparezca el cuadro de información del desencadenador, proporcione la información necesaria para el desencadenador.
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:
Flujos de trabajo de aplicaciones lógicas basados en consumo: Visual Studio o Visual Studio Code
Flujos de trabajo de aplicaciones lógicas estándar: Visual Studio Code
En Azure Portal abra el flujo de trabajo de la aplicación lógica en el diseñador.
Siga estos pasos generales para agregar la acción MQ que desea. Para obtener más información, consulte Acciones del conector MQ.
Proporcione la información necesaria para autenticar la conexión. Seleccione Crear cuando haya terminado.
Cuando aparezca el cuadro de información de la acción, proporcione la información necesaria para la acción.
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.
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.
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.
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.
En el menú de la Consola de depuración de Kudu, seleccione PowerShell.
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:
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:
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).
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.
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.
Después de agregar el certificado, desde la columna Huella digital, copie el valor de huella digital del certificado.
En el menú de recursos de la aplicación lógica, seleccione Configuración.
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.
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:
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).
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.
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.
Después de agregar el certificado, desde la columna Huella digital, copie el valor de huella digital del certificado.
En el menú de recursos de la aplicación lógica, seleccione Configuración.
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.
Si el certificado agregado no aparece en la lista certificados de clave privada, en la barra de herramientas, seleccione Actualizar.
Al crear una conexión mediante el conector integrado MQ, en el cuadro de información de conexión, seleccione Usar TLS.
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).
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:
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.