Conectar-se a um servidor IBM MQ a partir de um fluxo de trabalho no Azure Logic Apps
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
Este artigo mostra como acessar um servidor MQ hospedado no Azure ou local a partir de um fluxo de trabalho nos Aplicativos Lógicos do Azure usando o conector MQ. Você pode então criar fluxos de trabalho automatizados que recebem e enviam mensagens armazenadas em seu servidor MQ. Por exemplo, seu fluxo de trabalho pode procurar uma única mensagem em uma fila e, em seguida, executar outras ações.
O conector MQ fornece um wrapper num cliente Microsoft MQ, que inclui todas as capacidades de mensagens para comunicar com um servidor MQ remoto através de uma rede TCP/IP. Este conector define as conexões, operações e parâmetros para chamar o cliente MQ.
Versões suportadas do IBM WebSphere MQ
- MQ 7.5
- MQ 8.0
- MQ 9.0, 9.1, 9.2 e 9.3
Referência técnica do conector
O conector MQ tem diferentes versões, com base no tipo de aplicativo lógico e no ambiente do host.
Aplicação lógica | Environment | Versão da conexão |
---|---|---|
Consumo | Aplicativos Lógicos do Azure Multilocatários | Conector gerenciado, que aparece na galeria de conectores em Runtime>Shared. Este conector fornece apenas ações, não gatilhos. Em cenários de servidor MQ local, o conector gerenciado suporta autenticação somente de servidor com criptografia TLS (SSL). Para obter mais informações, consulte a seguinte documentação: - Referência do conector gerenciado MQ - Conectores gerenciados em Aplicativos Lógicos do Azure |
Standard | Aplicativos Lógicos do Azure de locatário único e Ambiente do Serviço de Aplicativo v3 (somente planos ASE v3 com Windows) | Conector gerenciado, que aparece na galeria de conectores em Runtime>Shared, e conector interno, que aparece na galeria de conectores em Runtime>In-App e é baseado em provedor de serviços. A versão integrada difere das seguintes maneiras: - A versão integrada inclui ações e gatilhos. - O conector interno pode se conectar diretamente a um servidor MQ e acessar redes virtuais do Azure usando uma cadeia de conexão sem um gateway de dados local. - A versão interna suporta autenticação de servidor e autenticação de cliente-servidor com criptografia TLS (SSL) para dados em trânsito, codificação de mensagens para as operações de envio e recebimento e integração de rede virtual do Azure. Para obter mais informações, consulte a seguinte documentação: - Referência do conector gerenciado MQ - Referência do conector integrado MQ - Conectores internos nos Aplicativos Lógicos do Azure |
Autenticação com criptografia TLS (SSL)
Com base no uso do conector gerenciado MQ (fluxos de trabalho Consumo ou Padrão) ou do conector integrado MQ (somente fluxos de trabalho Padrão), o conector MQ suporta uma ou ambas as seguintes direções de autenticação:
Autenticação | Tipo de aplicativo lógico suportado e conector MQ | Processo |
---|---|---|
Apenas servidor (só ida) |
- Consumo: Apenas gerido - Padrão: Gerenciado ou embutido |
Para autenticação do servidor, o servidor MQ envia um certificado de chave privada, publicamente fidedigno ou não publicamente fidedigno, para o cliente de aplicação lógica para validação. O conector MQ valida a autenticidade do certificado do servidor de entrada em termos de certificados de chave pública, conhecidos também como certificados "signatários", utilizando a validação de fluxos SSL .NET padrão. A aplicação lógica não envia um certificado de cliente. |
Servidor-cliente (bidirecional) |
- Consumo: Não suportado - Padrão: Built-in apenas |
Para autenticação do servidor, consulte a linha anterior. Para autenticação do cliente, o cliente da aplicação lógica envia um certificado de chave privada para o seu servidor MQ para validação. O servidor MQ valida a autenticidade do certificado de cliente de entrada também utilizando um certificado de chave pública. |
Notas sobre certificados de chave privada e de chave pública
O certificado que requer validação é sempre um certificado de chave privada. O certificado usado para executar a validação é sempre um certificado de chave pública.
Um certificado de chave privada publicamente confiável é emitido por uma Autoridade de Certificação reconhecida. Um certificado de chave privada não publicamente confiável inclui certificados autoassinados, CA privada e similares.
Para validar um certificado de chave privada enviado do seu servidor MQ, o conector MQ usa certificados de chave pública que geralmente existem no host da máquina virtual do seu aplicativo lógico no armazenamento de Autoridades de Certificação (CA) Raiz Confiáveis do host.
No entanto, se o host não tiver todos os certificados de chave pública necessários, ou se seu servidor MQ enviar um certificado de chave privada não publicamente confiável, você precisará executar etapas extras. Para obter mais informações, veja os Pré-requisitos.
Para validar o certificado de chave privada de um cliente enviado do seu aplicativo lógico Standard, o servidor MQ usa certificados de chave pública que existem no armazenamento de certificados do seu servidor MQ. Para adicionar um certificado de chave privada para seu aplicativo lógico usar como um certificado de cliente, consulte Adicionar um certificado de chave privada.
Limitações
Autenticação com criptografia TLS (SSL)
Conector MQ Direção de autenticação suportada Não gerido Apenas servidor (unidirecional) Incorporada - Servidor-cliente (bidirecional)
- Apenas servidor (unidirecional)Validação de certificado do servidor
O conector integrado MQ não valida a data de expiração do certificado do servidor nem a cadeia de certificados.
Conversões de conjuntos de caracteres
O conector gerenciado MQ não faz conversões de conjunto de caracteres nem usa o campo Formato da mensagem. O conector apenas copia os dados que aparecem no campo de mensagem e envia a mensagem junto.
O conector integrado MQ pode fazer conversões de conjunto de caracteres, mas somente quando o formato de dados é uma cadeia de caracteres. Se fornecer um ID de conjunto de carateres diferente (página de códigos), o conector tentará converter os dados para a nova página de códigos.
O conector MQ não suporta mensagens segmentadas.
Para obter mais informações, revise a referência do conector gerenciado MQ ou a referência do conector integrado MQ.
Pré-requisitos
Uma conta e subscrição do Azure. Se não tiver uma subscrição do Azure, inscreva-se para obter uma conta do Azure gratuita.
Para se conectar a um servidor MQ local, você deve instalar o gateway de dados local em um servidor dentro de sua rede. Para que o conector MQ funcione, o servidor com o gateway de dados local também deve ter o .NET Framework 4.6 instalado.
Depois de instalar o gateway, você também deve criar um recurso de gateway de dados no Azure. O conector MQ usa esse recurso para acessar seu servidor MQ. Para obter mais informações, consulte Configurar a conexão do gateway de dados.
Nota
Você não precisa do gateway nos seguintes cenários:
- Seu servidor MQ está disponível publicamente ou disponível no Azure.
- Você vai usar o conector interno MQ, não o conector gerenciado.
O recurso do aplicativo lógico e o fluxo de trabalho onde você deseja acessar seu servidor MQ.
Para usar o conector gerenciado MQ com o gateway de dados local, seu recurso de aplicativo lógico deve usar o mesmo local que seu recurso de gateway no Azure.
Para usar o conector gerenciado MQ, que não fornece nenhum gatilho, certifique-se de que seu fluxo de trabalho comece com um gatilho ou que você primeiro adicione um gatilho ao seu fluxo de trabalho. Por exemplo, você pode usar o gatilho Recorrência.
Para utilizar um acionador do conector incorporado do MQ, certifique-se de que começa com um fluxo de trabalho vazio.
Requisitos de certificado para autenticação com encriptação TLS (SSL)
Conector gerenciado MQ
Servidor MQ Requisitos Servidor MQ hospedado no Azure O servidor MQ deve enviar um certificado de chave privada emitido por uma autoridade de certificação confiável para seu cliente de aplicativo lógico para validação. Servidor MQ local usando gateway de dados local Para enviar um certificado de chave privada não publicamente confiável, como um certificado de CA autoassinado ou privado, você precisa adicionar o certificado ao Armazenamento de Autoridades de Certificação (CA) Raiz Confiáveis no computador local com a instalação do gateway de dados local. Para essa tarefa, você pode usar o Gerenciador de Certificados do Windows (certmgr.exe). Conector integrado MQ
As aplicações lógicas utilizam o Serviço de Aplicações do Azure como plataforma anfitriã e para processar certificados. Para aplicações lógicas padrão em qualquer plano WS*, pode adicionar certificados públicos, privados, personalizados ou autoassinados ao arquivo de certificados do computador local. No entanto, se precisar de adicionar certificados ao Arquivo de AC de Raiz Confiável no anfitrião da máquina virtual em que a aplicação lógica padrão é executada, o Serviço de Aplicações exigirá que a aplicação lógica seja executada num Ambiente de Serviço de Aplicações v3 (ASE) isolado com um plano do Serviço de Aplicações baseado apenas no Windows e um plano do Serviço de Aplicações baseado em ASE. Para obter mais informações, consulte Certificados e Ambiente de Serviço de Aplicações.
Autenticação de servidor MQ
A tabela a seguir descreve os pré-requisitos do certificado com base no seu cenário:
Certificado do servidor MQ de entrada Requisitos Certificado de chave privada publicamente confiável emitido por uma autoridade de certificado confiável Normalmente, a sua aplicação lógica não precisa de nenhuma outra configuração porque o anfitrião da máquina virtual da aplicação lógica geralmente tem os certificados de chave pública necessários para validar o certificado de chave privada do servidor MQ de entrada. Para verificar se estes certificados de chave pública existem, siga os passos para Ver e confirmar thumbprints para certificados de chave pública existentes.
Se o host da máquina virtual não tiver todos os certificados de chave pública necessários para validar o certificado de chave privada do servidor MQ de entrada e quaisquer certificados de encadeamento, conclua as seguintes etapas:
1. Recrie seu aplicativo lógico padrão usando um Ambiente do Serviço de Aplicativo do Azure v3 (ASE) com um plano do Serviço de Aplicativo somente para Windows e baseado em ASE.
2. Adicione manualmente os certificados de chave pública necessários ao Armazenamento de CA Raiz Confiável do host.Certificado de chave privada não publicamente confiável, como um certificado de AC autoassinado ou privado O host da máquina virtual do seu aplicativo lógico não terá os certificados de chave pública necessários no Trusted Root CA Store do host para validar a cadeia de certificados do servidor MQ. Nesse caso, conclua as seguintes etapas:
1. Recrie seu aplicativo lógico padrão usando um Ambiente do Serviço de Aplicativo do Azure v3 (ASE) com um plano do Serviço de Aplicativo somente para Windows e baseado em ASE.
2. Adicione manualmente os certificados de chave pública necessários ao Armazenamento de CA Raiz Confiável do host.
Para obter mais informações, consulte a seguinte documentação:
- Enlaces de certificados e o Ambiente do Serviço de Aplicações
Consulte - Adicionar e gerir certificados TLS/SSL no Serviço de Aplicações do AzureAutenticação do cliente da aplicação lógica
Pode adicionar um certificado de chave privada a enviar como certificado do cliente e, em seguida, especificar o valor do thumbprint do certificado nos detalhes de ligação para o conector incorporado do MQ. Para obter mais informações, consulte adicionar um certificado de chave privada.
Recomendação: Atualize para o servidor MQ 9.0 ou posterior. Além disso, no seu servidor MQ, certifique-se de que configura o canal de ligação do servidor com um conjunto de cifras que corresponda à especificação de cifra utilizada pela ligação do cliente; por exemplo ANY_TLS12_OR_HIGHER. Para obter mais informações, consulte o item seguinte sobre Requisitos de cifra.
Requisitos da especificação de cifra
O servidor MQ requer que defina a especificação de cifra para ligações que utilizam encriptação TLS (SSL). Esta especificação de cifra tem de corresponder aos conjuntos de cifra suportados, escolhidos e utilizados pelo sistema operativo em que o servidor MQ é executado. Em última análise, a especificação de cifra utilizada pela ligação do cliente tem de corresponder aos conjuntos de cifra configurados no canal de ligação do servidor no servidor MQ.
Para obter mais informações, consulte Problemas de ligação e autenticação.
Adicionar um gatilho MQ (somente aplicativo lógico padrão)
Os passos seguintes aplicam-se apenas aos fluxos de trabalho da Aplicação Lógica Padrão, que podem utilizar acionadores fornecidos pelo conector incorporado do MQ. O conector gerenciado MQ não inclui nenhum gatilho.
Essas etapas usam o portal do Azure, mas com a extensão apropriada de Aplicativos Lógicos do Azure, você também pode usar o Visual Studio Code para criar um fluxo de trabalho de aplicativo lógico padrão.
No portal do Azure, abra seu fluxo de trabalho de aplicativo lógico em branco no designer.
Siga estas etapas gerais para adicionar o gatilho interno MQ desejado. Para obter mais informações, consulte Gatilhos de conector integrados MQ.
Forneça as informações necessárias para autenticar sua conexão. Quando tiver terminado, selecione Criar.
Quando a caixa de informações do gatilho for exibida, forneça as informações necessárias para o gatilho.
Quando tiver terminado, guarde o fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.
Adicionar uma ação MQ
Um fluxo de trabalho de aplicativo lógico de consumo pode usar apenas o conector gerenciado MQ. No entanto, um fluxo de trabalho de aplicativo lógico padrão pode usar o conector gerenciado MQ e o conector interno MQ. Cada versão tem várias ações. Por exemplo, as versões de conector gerenciado e interno têm suas próprias ações para procurar uma mensagem.
Ações de conector gerenciado: essas ações são executadas em um fluxo de trabalho de aplicativo lógico de consumo ou padrão.
Ações internas do conector: essas ações são executadas somente em um fluxo de trabalho de aplicativo lógico padrão.
As etapas a seguir usam o portal do Azure, mas com a extensão apropriada dos Aplicativos Lógicos do Azure, você também pode usar as seguintes ferramentas para criar fluxos de trabalho de aplicativos lógicos:
- Fluxos de trabalho de consumo: Visual Studio Code
- Fluxos de trabalho padrão: Visual Studio Code
No portal do Azure, abra o fluxo de trabalho do aplicativo lógico no designer.
Siga estas etapas gerais para adicionar a ação MQ desejada. Para obter mais informações, consulte Ações do conector MQ.
Forneça as informações necessárias para autenticar sua conexão. Quando tiver terminado, selecione Criar.
Quando a caixa de informações da ação for exibida, forneça as informações necessárias para sua ação.
Quando tiver terminado, guarde o fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.
Testar o fluxo de trabalho
Para verificar se o fluxo de trabalho retorna os resultados esperados, execute o fluxo de trabalho e revise as saídas do histórico de execução do fluxo de trabalho.
Execute seu fluxo de trabalho.
Aplicativo de lógica de consumo: na barra de ferramentas do designer de fluxo de trabalho, selecione Executar execução de gatilho>.
Aplicativo lógico padrão: no menu de recursos do fluxo de trabalho, selecione Visão geral. Na barra de ferramentas do painel Visão geral, selecione Executar execução de gatilho>.
Após a conclusão da execução, o designer mostra o histórico de execução do fluxo de trabalho juntamente com o status de cada etapa.
Para revisar as entradas e saídas para cada etapa executada (não ignorada), expanda ou selecione a etapa.
Para revisar mais detalhes de entrada, selecione Mostrar entradas brutas.
Para rever mais detalhes de saída, selecione Mostrar saídas brutas. Se você definir IncludeInfo como true, mais saída será incluída.
Exibir e adicionar certificados para autenticação com criptografia TLS (SSL)
As informações a seguir se aplicam somente aos fluxos de trabalho do aplicativo lógico padrão para o conector integrado MQ usando autenticação somente servidor ou servidor-cliente com criptografia TLS (SSL).
Exibir e confirmar impressões digitais de certificados de chave pública existentes
Para verificar se as impressões digitais dos certificados de chave pública necessários existem no host da máquina virtual do seu aplicativo lógico padrão no Trusted Root CA Store, siga estas etapas para executar o cert
script PowerShell no menu de recursos do seu aplicativo lógico padrão.
No portal do Azure, abra seu recurso de aplicativo lógico padrão. No menu de recursos do aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Advanced Tools>Go.
No menu do console Kudu Debug, selecione PowerShell.
Depois que a janela do PowerShell for exibida, no prompt de comando do PowerShell, execute o seguinte script:
dir cert:\localmachine\root
A janela do PowerShell lista as impressões digitais e descrições existentes, por exemplo:
Adicionar um certificado de chave pública
Para adicionar um certificado de chave pública ao Armazenamento de CA Raiz Confiável no host da máquina virtual em que seu aplicativo lógico padrão é executado, siga estas etapas:
No portal do Azure, abra seu recurso de aplicativo lógico padrão. No menu de recursos do aplicativo lógico, em Configurações, selecione Configurações TLS/SSL (clássicas).
Na página Configurações de TLS/SSL (clássicas ), selecione a guia Certificados de Chave Pública (.cer) e selecione Carregar Certificado de Chave Pública.
No painel Adicionar Certificado de Chave Pública (.cer) que é aberto, insira um nome para descrever o certificado. Localize e selecione o arquivo de certificado de chave pública (.cer). Quando terminar, selecione Carregar.
Depois de adicionar o certificado, na coluna Impressão digital, copie o valor da impressão digital do certificado.
No menu de recursos do aplicativo lógico, selecione Configuração.
Na guia Configurações do aplicativo, selecione Nova configuração do aplicativo. Adicione uma nova configuração de aplicativo chamada WEBSITE_LOAD_ROOT_CERTIFICATES e insira o valor de impressão digital do certificado que você copiou anteriormente. Se você tiver vários valores de impressão digital do certificado, certifique-se de separar cada valor com uma vírgula (,).
Para obter mais informações, consulte Editar configurações de host e aplicativo para aplicativos lógicos padrão em aplicativos lógicos do Azure de locatário único.
Nota
Se você especificar uma impressão digital para um certificado de CA privado, o conector integrado MQ não executará nenhuma validação de certificado, como verificar a data de validade ou a origem do certificado. Se a validação SSL padrão do .NET falhar, o conector compara apenas qualquer valor de impressão digital que é passado com o valor na configuração WEBSITE_LOAD_ROOT_CERTIFICATES .
Se o certificado adicionado não aparecer na lista de certificados de chave pública, na barra de ferramentas, selecione Atualizar.
Adicionar um certificado de chave privada
Para adicionar um certificado de chave privada ao Armazenamento de CA Raiz Confiável no host da máquina virtual onde seu aplicativo lógico padrão é executado, siga estas etapas:
No portal do Azure, abra seu recurso de aplicativo lógico. No menu de recursos do aplicativo lógico, em Configurações, selecione Configurações TLS/SSL (clássicas).
Na página Configurações de TLS/SSL (clássicas), selecione a guia Certificados de Chave Privada (.pfx) e selecione Carregar Certificado.
No painel Adicionar Certificado de Chave Privada (.pfx) que se abre, localize e selecione o ficheiro de certificado de chave privada (.pfx) e, em seguida, introduza a palavra-passe do certificado. Quando terminar, selecione Carregar.
Depois de adicionar o certificado, na coluna Impressão digital, copie o valor da impressão digital do certificado.
No menu de recursos do aplicativo lógico, selecione Configuração.
Na guia Configurações do aplicativo, selecione Nova configuração do aplicativo. Adicione uma nova configuração de aplicativo chamada WEBSITE_LOAD_CERTIFICATES e insira o valor de impressão digital do certificado que você copiou anteriormente.
Para obter mais informações, consulte Editar configurações de host e aplicativo para aplicativos lógicos padrão em aplicativos lógicos do Azure de locatário único.
Se o certificado adicionado não aparecer na lista de certificados de chave privada, na barra de ferramentas, selecione Atualizar.
Ao criar uma conexão usando o conector interno MQ, na caixa de informações de conexão, selecione Usar TLS.
Na propriedade Client Cert Thumbprint, insira o valor de impressão digital copiado anteriormente para o certificado de chave privada, que permite a autenticação servidor-cliente (bidirecional). Se você não inserir um valor de impressão digital, o conector usará autenticação somente de servidor (unidirecional).
Resolução de problemas
Falhas com ações de navegação ou recebimento
Se você executar uma ação de navegação ou recebimento em uma fila vazia, a ação falhará com as seguintes saídas de cabeçalho:
Problemas de conexão e autenticação
Quando seu fluxo de trabalho usa o conector gerenciado MQ para se conectar ao seu servidor MQ local, você pode obter o seguinte erro:
"MQ: Could not Connect the Queue Manager '<queue-manager-name>': The Server was expecting an SSL connection."
O servidor MQ precisa fornecer um certificado emitido por uma autoridade de certificação confiável.
O servidor MQ requer que você defina a especificação de codificação a ser usada com conexões TLS. No entanto, para fins de segurança e para incluir os melhores pacotes de segurança, o sistema operacional Windows envia um conjunto de especificações de codificação suportadas.
O sistema operacional onde o servidor MQ é executado escolhe as suítes a serem usadas. Para fazer a correspondência de configuração, tem de alterar a configuração do servidor MQ para que a especificação de cifra corresponda à opção escolhida na negociação de TLS.
Quando tenta estabelecer ligação, o servidor MQ regista uma mensagem de evento a indicar que a tentativa de ligação falhou porque o servidor MQ escolheu a especificação de cifra incorreta. A mensagem de evento contém a especificação de cifra que o servidor MQ escolheu na lista. Na configuração do canal de ligação do servidor, atualize a especificação de cifra para corresponder à especificação de cifra na mensagem de evento.