Compartilhar via


Conectar-se a um servidor do IBM MQ a partir de um fluxo de trabalho dos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)

Este artigo mostra como acessar um servidor MQ hospedado no Azure ou local de um fluxo de trabalho nos Aplicativos Lógicos do Azure usando o conector MQ. Em seguida, você pode criar fluxos de trabalho que recebem e enviam mensagens armazenadas no servidor MQ. Por exemplo, seu fluxo de trabalho pode procurar uma só mensagem em uma fila e executar outras ações.

O conector do MQ fornece um wrapper ao redor de um cliente do Microsoft MQ, que inclui todos os recursos de mensagens para se comunicar com um servidor MQ remoto em uma rede TCP/IP. Esse conector define as conexões, as operações e os parâmetros para chamar o cliente MQ.

Versões compatíveis 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 do MQ tem versões diferentes, com base no tipo de aplicativo lógico e no ambiente do host.

Aplicativo lógico Ambiente Versão da conexão
Consumo Aplicativos Lógicos Multilocatários do Azure Conector gerenciado, que aparece na galeria de conectores em Runtime>Compartilhado. Esse conector só fornece ações, não gatilhos. Em cenários de servidor MQ local, o conector gerenciado dá suporte apenas à autenticação do servidor com criptografia TLS (SSL).

Para saber mais, consulte a seguinte documentação:

- Referência do conector gerenciado do 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 para ASE v3 com planos do Windows) O conector gerenciado, que aparece na galeria de conectores em Runtime>Compartilhado, e o conector interno, que aparece na galeria de conectores em Runtime>No aplicativo e é baseado em provedor de serviços. A versão interna é diferente das seguintes maneiras:

– A versão interna inclui ações e gatilhos.

- O conector interno pode se conectar diretamente a um servidor SFTP e acessar redes virtuais do Azure usando uma cadeia de conexão sem um gateway de dados local.

- A versão interna dá suporte à autenticação do servidor e à autenticação servidor-cliente 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 saber mais, consulte a seguinte documentação:

- Referência do conector gerenciado do MQ
- Referência do conector interno do MQ
- Conectores internos em Aplicativos Lógicos do Azure

Autenticação com criptografia TLS (SSL)

Com base no uso do conector gerenciado do MQ (fluxos de trabalho padrão ou consumo) ou do conector interno do MQ (somente fluxos de trabalho Padrão), o conector MQ dá suporte a uma ou ambas as seguintes direções de autenticação:

Autenticação Tipo de aplicativo lógico com suporte e conector MQ Processo
Somente servidor
(unidirecional)
- Consumo: somente gerenciado

- Standard: gerenciado ou interno
Para autenticação de servidor, o servidor MQ envia um certificado de chave privada, publicamente confiável ou não publicamente confiável, ao cliente do 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 de "signatário", 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: sem suporte

- Padrão: somente interno
Para autenticação de servidor, consulte a linha anterior.

Para autenticação de cliente, o cliente de aplicativo lógico envia um certificado de chave privada ao servidor MQ para validação. O servidor MQ valida o certificado do cliente de entrada para autenticidade também usando um certificado de chave pública.

Anotações sobre chave privada e certificados 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 confiável publicamente é emitido por uma Autoridade de Certificação reconhecida. Um certificado de chave privada não confiável publicamente inclui certificados autoassinados, privados e certificados semelhantes.

  • Para validar um certificado de chave privada enviado do servidor MQ, o conector do MQ usa certificados de chave pública que geralmente existem no host da máquina virtual do aplicativo lógico no Repositório de Autoridades de Certificação Raiz Confiáveis (CA) 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 confiável publicamente, você precisará executar etapas extras. Para obter mais informações, veja Pré-requisitos.

  • Para validar o certificado de chave privada de um cliente enviado do aplicativo lógico Standard, o servidor MQ usa certificados de chave pública que existem no repositório de certificados do servidor MQ. Para adicionar um certificado de chave privada para seu aplicativo lógico usar como um certificado de cliente, consulte Como adicionar um certificado de chave privada.

Limitações

  • Autenticação com criptografia TLS (SSL)

    Conector do MQ Direção de autenticação com suporte
    Gerenciada Somente servidor (unidirecional)
    Interno - Servidor-cliente (bidirecional)
    - Somente servidor (unidirecional)
  • Validação do certificado do servidor

    O conector interno do MQ não valida a data de validade do certificado de servidor nem a cadeia de certificados.

  • Conversões de conjunto de caracteres

    • O conector gerenciado do MQ não usa o campo de Formato da mensagem e não faz conversões de conjuntos de caracteres. O conector copia apenas os dados exibidos no campo de mensagem e envia a mensagem.

    • O conector interno do MQ pode fazer conversões de conjunto de caracteres, mas somente quando o formato de dados é uma cadeia de caracteres. Se você fornecer uma 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 dá suporte a mensagens segmentadas.

Para obter mais informações, veja a referência do conector gerenciado do MQ ou a referência do conector interno do MQ.

Pré-requisitos

  • Requisitos de especificação de criptografia

    O servidor MQ requer que você defina a especificação de criptografia para conexões que usam criptografia TLS (SSL). Essa especificação de codificação deve corresponder aos conjuntos de codificação que sã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 conjuntos de codificação configurados no canal de conexão do servidor no servidor MQ.

    Para saber mais, confira Problemas de conexão e autenticação.

Adicionar um gatilho do MQ (somente aplicativo lógico Standard)

As etapas a seguir só se aplicam aos fluxos de trabalho do aplicativo lógico Standard, que podem usar gatilhos fornecidos pelo conector interno do MQ. O conector gerenciado do MQ não inclui nenhum gatilho.

Estas etapas usam o portal do Azure, mas com a extensão apropriada dos Aplicativos Lógicos do Azure, você também pode usar o Visual Studio Code para criar um fluxo de trabalho do aplicativo lógico Standard.

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

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

  3. Forneça as informações necessárias para autenticar sua conexão. Quando terminar, 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 o fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

Adicionar uma ação do MQ

Um fluxo de trabalho de aplicativo lógico de Consumo só pode usar o conector gerenciado do MQ. No entanto, um fluxo de trabalho de aplicativo lógico Standard pode usar o conector gerenciado do MQ e o conector interno do MQ. Cada versão tem várias ações. Por exemplo, as versões dos conectores gerenciado e interno têm ações próprias para navegar por uma mensagem.

  • Ações do conector gerenciado: essas ações são executadas em um fluxo de trabalho de aplicativo lógico do tipo Consumo ou Padrão.

  • Ações do conector interno: essas ações são executadas somente em um fluxo de trabalho de aplicativo lógico Padrão.

As seguintes etapas usam o portal do Azure, mas com a extensão de Aplicativos Lógicos do Azure adequada, você também pode usar as seguintes ferramentas para compilar fluxos de trabalho de aplicativo lógico:

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

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

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

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

  5. Quando terminar, salve o fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

Testar seu fluxo de trabalho

Para verificar se o fluxo de trabalho retorna os resultados esperados, execute o fluxo de trabalho e analise as saídas do histórico de execuções do fluxo de trabalho.

  1. Executar seu fluxo de trabalho.

    • Aplicativo lógico de Consumo: na barra de ferramentas do designer de fluxo de trabalho, selecione Executar Gatilho>Execução.

    • Aplicativo lógico Standard: no menu de recursos do fluxo de trabalho, selecione Visão geral. Na barra de ferramentas do painel Visão geral, selecione Executar Gatilho>Executar.

    Após a conclusão da execução, o designer mostra o histórico de execuções do fluxo de trabalho, acompanhado do status de cada etapa.

  2. Para examinar as entradas e saídas de cada etapa executada (não ignorada), expanda ou selecione a etapa.

    • Para examinar mais detalhes de entrada, selecione Mostrar entradas brutas.

    • Para examinar mais detalhes de saída, selecione Mostrar saídas brutas. Se você definir IncludeInfo como true, será adicionada uma quantidade maior à saí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 Standard para o conector interno do MQ usando a autenticação somente servidor ou servidor-cliente com criptografia TLS (SSL).

Exibir e confirmar impressões digitais para 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 aplicativo lógico Standard na Repositório de AC Raiz Confiável, siga estas etapas para executar ocertscript do PowerShell no menu de recursos do aplicativo lógico Standard.

  1. No portal do Azure, abra seu recurso de aplicativo lógico Padrão. No menu do aplicativo lógico, acesse Ferramentas de Desenvolvimento e selecione Ferramentas Avançadas>Go.

  2. No menu do Console de Depuração do Kudu, 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:

    Captura de tela mostrando impressões digitais e descrições de exemplo existentes.

Adicionar um certificado de chave pública

Para adicionar um certificado de chave pública ao Repositório da AC Raiz Confiável no host da máquina virtual em que o aplicativo lógico Standard é 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 de TLS/SSL (clássico).

  2. Na página configurações do TLS/SSL (clássico), 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). Ao concluir, selecione Carregar.

  4. Depois de adicionar o certificado, na coluna Impressão Digital, copie o valor da impressão digital do certificado.

    Captura de tela mostrando o portal do Azure e o recurso lógico Standard com os seguintes itens selecionados:

  5. No menu de recursos do aplicativo lógico, selecione Configuração.

  6. Na guia Configurações de aplicativo, selecione Novas configurações de aplicativo. Adicione uma nova configuração de aplicativo chamada WEBSITE_LOAD_ROOT_CERTIFICATES e insira o valor de impressão digital do certificado copiado anteriormente. Se você tiver vários valores de impressão digital de certificado, separe cada valor com uma vírgula (,).

    Para obter mais informações, consulte Editar configurações de host e aplicativo para aplicativos lógicos nos Aplicativos Lógicos do Azure de locatário único.

    Observação

    Se você especificar uma impressão digital para um certificado de autoridade privado, o conector interno do 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 só comparará qualquer valor de impressão digital passado em relação ao 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 o Certificado de Chave Privada

Para adicionar um certificado de chave privada à Loja da AC Raiz Confiável no host da máquina virtual em que o aplicativo lógico Standard é executado, siga estas etapas:

  1. Abra o recurso de aplicativo lógico no portal do Azure. No menu de recursos do aplicativo lógico, em Configurações, selecione configurações de TLS/SSL (clássico).

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

  3. No painel Adicionar Certificado de Chave Privada (.pfx) que é aberto, localize e selecione o arquivo de certificado de chave privada (.pfx) e insira a senha do certificado. Ao concluir, selecione Carregar.

  4. Depois de adicionar o certificado, na coluna Impressão Digital, copie o valor da impressão digital do certificado.

    Captura de tela mostrando o portal do Azure e o recurso lógico Standard com os seguintes itens selecionados:

  5. No menu de recursos do aplicativo lógico, selecione Configuração.

  6. Na guia Configurações de aplicativo, selecione Novas configurações de aplicativo. Adicione uma nova configuração de aplicativo chamada WEBSITE_LOAD_CERTIFICATES e insira o valor de impressão digital do certificado copiado anteriormente.

    Para obter mais informações, consulte Editar configurações de host e aplicativo para aplicativos lógicos nos 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 do MQ, na caixa de informações de conexão, selecione Usar TLS.

  9. Na propriedade Impressão Digital do Certificado do Cliente, insira o valor de impressão digital copiado anteriormente para o certificado de chave privada, que permite a autenticação de servidor-cliente (bidirecional). Se você não inserir um valor de impressão digital, o conector usará a autenticação somente servidor (unidirecional).

    Captura de tela mostrando o designer de fluxo de trabalho do aplicativo lógico Standard, a caixa de conexão interna do MQ com a opção

Solução de problemas

Falhas em ações de procura 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:

Captura de tela que mostra o erro

Problemas de conexão e autenticação

Quando o fluxo de trabalho usa o conector gerenciado do MQ para se conectar ao servidor MQ local, você pode receber 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 criptografia que deseja usar para conexões TSL. No entanto, para fins de segurança e para incluir os melhores conjuntos de segurança, o sistema operacional Windows envia um conjunto de especificações de criptografia com suporte.

    O sistema operacional em que o servidor MQ é executado escolhe os conjuntos a usar. Para fazer a correspondência de configuração, você precisa alterar a configuração do servidor MQ para que a especificação de criptografia corresponda à opção escolhida na negociação de TLS.

    Quando você tenta conectar, o servidor MQ registra uma mensagem de evento que indica que a conexão falhou porque a outra extremidade usou a especificação de criptografia incorreta. A mensagem de evento contém a especificação de criptografia que o servidor MQ escolheu na lista. Atualize a especificação de criptografia na configuração do canal servidor-conexão para que corresponda à especificação de criptografia na mensagem do evento.

Próximas etapas