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 em torno de um cliente Microsoft MQ, que inclui todos os recursos de mensagens para se 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 Ambiente Versão da conexão
Consumo Aplicativos Lógicos do Azure Multilocatários e ISE (Integration Service Environment) Conector gerenciado, que aparece no designer sob o rótulo Empresa . 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 nos 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 o 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 de servidor, seu servidor MQ envia um certificado de chave privada, publicamente confiável ou não confiável, para seu cliente de aplicativo lógico para validação. O conector MQ valida o certificado do servidor de entrada para autenticidade em relação a certificados de chave pública, conhecidos também como certificados "signatários", usando a validação de fluxo SSL padrão do .NET.

O aplicativo lógico 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 de cliente, o cliente do aplicativo lógico envia um certificado de chave privada para seu servidor MQ para validação. O servidor MQ valida o certificado de cliente de entrada para autenticidade também usando um certificado de chave pública.

Notas sobre certificados de chave privada e 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 Raiz (CA) Confiáveis do host.

    No entanto, se o host não tiver todos os certificados de chave pública necessários, ou se o 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
    Geridas 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 copia apenas 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 você fornecer um ID de conjunto de caracteres diferente (página de código), o conector tentará converter os dados para a nova página de código.

  • 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 usar um gatilho do conector interno MQ, certifique-se de começar com um fluxo de trabalho em branco.

  • Requisitos de certificado para autenticação com criptografia 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 esta tarefa, você pode usar o Gerenciador de Certificados do Windows (certmgr.exe).
    • Conector integrado MQ

      Os aplicativos lógicos padrão usam o Serviço de Aplicativo do Azure como a plataforma de host e para lidar com certificados. Para aplicativos lógicos padrão em qualquer plano WS*, você pode adicionar certificados públicos, privados, personalizados ou autoassinados ao armazenamento de certificados da máquina local. No entanto, se você precisar adicionar certificados ao Armazenamento de CA Raiz Confiável no host da máquina virtual em que seu aplicativo lógico padrão é executado, o Serviço de Aplicativo exigirá que seu aplicativo lógico seja executado em um Ambiente de Serviço de Aplicativo v3 (ASE) isolado com um plano somente para Windows e um plano de Serviço de Aplicativo baseado em ASE. Para obter mais informações, consulte Certificados e o ambiente do Serviço de Aplicativo.

      • Autenticação do 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 certificação confiável Normalmente, seu aplicativo lógico não precisa de nenhuma outra configuração porque o host da máquina virtual do aplicativo lógico 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 esses certificados de chave pública existem, siga as etapas para Exibir e confirmar impressões digitais 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 CA 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:
        - Associações de certificado e o Ambiente do Serviço de Aplicativo
        - Adicionar e gerenciar certificados TLS/SSL no Serviço de Aplicativo do Azure
      • Autenticação de cliente de aplicativo lógico

        Você pode adicionar um certificado de chave privada para enviar como o certificado do cliente e, em seguida, especificar o valor de impressão digital do certificado nos detalhes da conexão para o conector integrado 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, em seu servidor MQ, certifique-se de configurar o canal de conexão do servidor com um conjunto de codificação que corresponda à especificação de codificação usada pela conexão do cliente, por exemplo, ANY_TLS12_OR_HIGHER. Para obter mais informações, consulte o próximo item sobre Requisitos de cifra.

  • Requisitos de especificação de cifra

    O servidor MQ requer que você defina a especificação de codificação para conexões que usam criptografia TLS (SSL). Essa especificação de codificação deve corresponder aos pacotes de codificação suportados, escolhidos e usados pelo sistema operacional onde o servidor MQ é executado. Em última análise, a especificação de codificação usada pela conexão do cliente deve corresponder aos pacotes de codificação configurados no canal de conexão do servidor no servidor MQ.

    Para obter mais informações, consulte Problemas de conexão e autenticação.

Adicionar um gatilho MQ (somente aplicativo lógico padrão)

As etapas a seguir se aplicam somente aos fluxos de trabalho do aplicativo lógico padrão, que podem usar gatilhos fornecidos pelo conector interno 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.

  1. No portal do Azure, abra seu fluxo de trabalho de aplicativo lógico em branco no designer.

  2. Siga estas etapas gerais para adicionar o gatilho integrado MQ desejado. Para obter mais informações, consulte Gatilhos de conector integrados MQ.

  3. Forneça as informações necessárias para autenticar sua conexão. Quando tiver terminado, selecione Criar.

  4. Quando a caixa de informações do gatilho for exibida, forneça as informações necessárias para o gatilho.

  5. Quando terminar, salve seu 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 de Aplicativos Lógicos do Azure, você também pode usar as seguintes ferramentas para criar fluxos de trabalho de aplicativos lógicos:

  1. No portal do Azure, abra o fluxo de trabalho do aplicativo lógico no designer.

  2. Siga estas etapas gerais para adicionar a ação MQ desejada. Para obter mais informações, consulte Ações do conector MQ.

  3. Forneça as informações necessárias para autenticar sua conexão. Quando tiver terminado, selecione Criar.

  4. Quando a caixa de informações da ação for exibida, forneça as informações necessárias para sua ação.

  5. Quando terminar, salve seu 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.

  1. 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.

  2. 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.

  1. 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.

  2. No menu do console Kudu Debug, selecione PowerShell.

  3. 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:

    Screenshot showing existing example thumbprints and descriptions.

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:

  1. 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).

  2. 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.

  3. 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.

  4. Depois de adicionar o certificado, na coluna Impressão digital, copie o valor da impressão digital do 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. No menu de recursos do aplicativo lógico, selecione Configuração.

  6. 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 interno 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 .

  7. 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:

  1. 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).

  2. Na página Configurações de TLS/SSL (clássicas), selecione a guia Certificados de Chave Privada (.pfx) e selecione Carregar Certificado.

  3. 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.

  4. Depois de adicionar o certificado, na coluna Impressão digital, copie o valor da impressão digital do 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. No menu de recursos do aplicativo lógico, selecione Configuração.

  6. 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.

  7. Se o certificado adicionado não aparecer na lista de certificados de chave privada, na barra de ferramentas, selecione Atualizar.

  8. Ao criar uma conexão usando o conector interno MQ, na caixa de informações de conexão, selecione Usar TLS.

  9. 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).

    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.

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:

Screenshot showing the MQ

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, você tem que alterar a configuração do servidor MQ para que a especificação de cifra corresponda à opção escolhida na negociação TLS.

    Quando você tenta se conectar, o servidor MQ registra uma mensagem de evento informando que a tentativa de conexão falhou porque o servidor MQ escolheu a especificação de codificação 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 conexão do servidor, atualize a especificação de codificação para corresponder à especificação de codificação na mensagem de evento.

Próximos passos