Connessione a un server IBM MQ da un flusso di lavoro in App per la logica di Azure

Si applica a: App per la logica di Azure (consumo + standard)

Questo articolo illustra come accedere a un server MQ ospitato in Azure o locale da un flusso di lavoro in App per la logica di Azure usando il connettore MQ. È quindi possibile creare flussi di lavoro automatizzati che ricevono e inviano messaggi archiviati nel server MQ. Ad esempio, il flusso di lavoro può cercare un singolo messaggio in una coda e quindi eseguire altre azioni.

Il connettore MQ fornisce un wrapper intorno a un client MQ Microsoft, che include tutte le funzionalità di messaggistica per comunicare con un server MQ remoto in una rete TCP/IP. Questo connettore definisce le connessioni, le operazioni e i parametri per chiamare il client MQ.

Versioni supportate di IBM WebSphere MQ

  • MQ 7.5
  • MQ 8.0
  • MQ 9.0, 9.1, 9.2 e 9.3

Riferimento tecnico Connessione or

Il connettore MQ ha versioni diverse, in base al tipo di app per la logica e all'ambiente host.

App per la logica Ambiente versione di Connessione ion
Consumo Ambiente del servizio di integrazione e App per la logica di Azure multi-tenant (I edizione Standard) Connettore gestito, visualizzato nella finestra di progettazione sotto l'etichetta Enterprise . Questo connettore fornisce solo azioni, non trigger. Negli scenari di server MQ locali, il connettore gestito supporta l'autenticazione server solo con crittografia TLS (SSL).

Per altre informazioni, vedere la documentazione seguente:

- Informazioni di riferimento sul connettore gestito mq
- Connettori gestiti in App per la logica di Azure
Standard App per la logica di Azure a tenant singolo e ambiente del servizio app v3 (A edizione Standard v3 solo con piani di Windows) Connettore gestito, visualizzato nella raccolta connettori in Runtime>Condiviso e connettore predefinito, visualizzato nella raccolta connettori in Runtime>in-App ed è basato sul provider di servizi. La versione predefinita è diversa nei modi seguenti:

- La versione predefinita include azioni e trigger.

- Il connettore predefinito può connettersi direttamente a un server MQ e accedere alle reti virtuali di Azure usando un stringa di connessione senza un gateway dati locale.

- La versione predefinita supporta sia l'autenticazione server che l'autenticazione server-client con la crittografia TLS (SSL) per i dati in transito, la codifica dei messaggi per le operazioni di invio e ricezione e l'integrazione della rete virtuale di Azure.

Per altre informazioni, vedere la documentazione seguente:

- Informazioni di riferimento sul connettore gestito mq
- Informazioni di riferimento sul connettore predefinito MQ
- Connettori predefiniti in App per la logica di Azure

Autenticazione con crittografia TLS (SSL)

In base al fatto che si usi il connettore gestito MQ (flussi di lavoro a consumo o Standard) o il connettore predefinito MQ (solo flussi di lavoro Standard), il connettore MQ supporta una o entrambe le direzioni di autenticazione seguenti:

Authentication Tipo di app per la logica e connettore MQ supportati Process
Solo server
(unidirezionale)
- Consumo: solo gestito

- Standard: gestito o predefinito
Per l'autenticazione server, il server MQ invia un certificato di chiave privata, attendibile pubblicamente o non pubblicamente attendibile, al client dell'app per la logica per la convalida. Il connettore MQ convalida il certificato del server in ingresso per l'autenticità rispetto ai certificati di chiave pubblica, noti anche come certificati "firmatari", usando la convalida standard del flusso SSL .NET.

L'app per la logica non invia un certificato client.
Server-client
(bidirezionale)
- Consumo: non supportato

- Standard: solo incorporato
Per l'autenticazione server, vedere la riga precedente.

Per l'autenticazione client, il client dell'app per la logica invia un certificato di chiave privata al server MQ per la convalida. Il server MQ convalida anche il certificato client in ingresso per l'autenticità usando un certificato di chiave pubblica.

Note sui certificati di chiave privata e chiave pubblica

  • Il certificato che richiede la convalida è sempre un certificato di chiave privata. Il certificato usato per eseguire la convalida è sempre un certificato di chiave pubblica.

  • Un certificato di chiave privata pubblicamente attendibile viene rilasciato da un'autorità di certificazione riconosciuta. Un certificato di chiave privata non pubblicamente attendibile include certificati autofirmati, CA privati e certificati simili.

  • Per convalidare un certificato di chiave privata inviato dal server MQ, il connettore MQ usa certificati di chiave pubblica che in genere esistono nell'host della macchina virtuale dell'app per la logica nell'archivio autorità di certificazione radice attendibili (CA) dell'host.

    Tuttavia, se l'host non dispone di tutti i certificati di chiave pubblica necessari o se il server MQ invia un certificato di chiave privata non pubblicamente attendibile, è necessario eseguire ulteriori passaggi. Per altre informazioni, consulta Prerequisiti.

  • Per convalidare il certificato di chiave privata di un client inviato dall'app per la logica Standard, il server MQ usa i certificati di chiave pubblica esistenti nell'archivio certificati del server MQ. Per aggiungere un certificato di chiave privata per l'app per la logica da usare come certificato client, vedere Aggiungere un certificato di chiave privata.

Limiti

  • Autenticazione con crittografia TLS (SSL)

    Connettore MQ Direzione di autenticazione supportata
    Gestito Solo server (unidirezionale)
    Predefinito - Server-client (bidirezionale)
    - Solo server (unidirezionale)
  • Convalida del certificato server

    Il connettore predefinito MQ non convalida la data di scadenza del certificato del server né la catena di certificati.

  • Conversioni dei set di caratteri

    • Il connettore gestito MQ non esegue conversioni di set di caratteri né usa il campo Formato del messaggio. Il connettore copia solo i dati visualizzati nel campo del messaggio e invia il messaggio.

    • Il connettore predefinito MQ può eseguire conversioni di set di caratteri, ma solo quando il formato dei dati è una stringa. Se si specifica un ID set di caratteri diverso (tabella codici), il connettore tenta di convertire i dati nella nuova tabella codici.

  • Il connettore MQ non supporta messaggi segmentati.

Per altre informazioni, vedere il riferimento al connettore gestito MQ o il riferimento al connettore predefinito MQ.

Prerequisiti

  • Account e sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, iscriversi per creare un account Azure gratuito.

  • Per connettersi con un server MQ locale, è necessario installare il gateway dati locale in un server all'interno della rete. Per il funzionamento del connettore MQ, anche il server con il gateway dati locale deve avere installato .NET Framework 4.6.

    Dopo aver installato il gateway, è necessario creare anche una risorsa gateway dati in Azure. Il connettore MQ usa questa risorsa per accedere al server MQ. Per altre informazioni, vedere Configurare la connessione al gateway dati.

    Nota

    Non è necessario il gateway negli scenari seguenti:

    • Il server MQ è disponibile pubblicamente o disponibile in Azure.
    • Si userà il connettore predefinito MQ, non il connettore gestito.
  • La risorsa e il flusso di lavoro dell'app per la logica in cui si vuole accedere al server MQ.

    • Per usare il connettore gestito MQ con il gateway dati locale, la risorsa dell'app per la logica deve usare la stessa posizione della risorsa gateway in Azure.

    • Per usare il connettore gestito MQ, che non fornisce trigger, assicurarsi che il flusso di lavoro inizi con un trigger o che si aggiunga prima un trigger al flusso di lavoro. Ad esempio, è possibile usare il trigger Ricorrenza.

    • Per usare un trigger dal connettore predefinito MQ, assicurarsi di iniziare con un flusso di lavoro vuoto.

  • Requisiti dei certificati per l'autenticazione con crittografia TLS (SSL)

    • Connettore gestito MQ

      Server MQ Requisiti
      Server MQ ospitato in Azure Il server MQ deve inviare un certificato di chiave privata rilasciato da un'autorità di certificazione attendibile al client dell'app per la logica per la convalida.
      Server MQ locale con gateway dati locale Per inviare un certificato di chiave privata non pubblicamente attendibile, ad esempio un certificato della CA autofirmato o privato, è necessario aggiungere il certificato all'archivio autorità di certificazione radice attendibili (CA) nel computer locale con l'installazione del gateway dati locale. Per questa attività, è possibile usare Gestione certificati Windows (certmgr.exe).
    • Connettore predefinito MQ

      Le app per la logica standard usano app Azure Servizio come piattaforma host e per gestire i certificati. Per le app per la logica Standard in qualsiasi piano WS*, è possibile aggiungere certificati pubblici, privati, personalizzati o autofirmato all'archivio certificati del computer locale. Tuttavia, se è necessario aggiungere certificati all'archivio CA radice attendibile nell'host della macchina virtuale in cui viene eseguita l'app per la logica Standard, servizio app richiede che l'app per la logica venga eseguita in un ambiente del servizio app isolato v3 (A edizione Standard) con un solo Windows e un A edizione Standard servizio app piano. Per altre informazioni, vedere Certificati e ambiente del servizio app.

      • Autenticazione server MQ

        La tabella seguente descrive i prerequisiti del certificato, in base allo scenario:

        Certificato server MQ in ingresso Requisiti
        Certificato di chiave privata attendibile pubblicamente rilasciato da un'autorità di certificazione attendibile In genere, l'app per la logica non richiede altre configurazioni perché l'host macchina virtuale dell'app per la logica ha in genere i certificati di chiave pubblica necessari per convalidare il certificato della chiave privata del server MQ in ingresso. Per verificare che questi certificati di chiave pubblica esistano, seguire la procedura per visualizzare e confermare le identificazioni personali per i certificati di chiave pubblica esistenti.

        Se l'host della macchina virtuale non dispone di tutti i certificati di chiave pubblica necessari per convalidare il certificato della chiave privata del server MQ in ingresso e i certificati di concatenamento, completare i passaggi seguenti:

        1. Ricreare l'app per la logica Standard usando un piano di app Azure Service Environment v3 (A edizione Standard) con un piano di servizio app basato su Windows e A edizione Standard.

        2. Aggiungere manualmente i certificati di chiave pubblica necessari all'archivio CA radice attendibile dell'host.
        Certificato di chiave privata non pubblicamente attendibile, ad esempio un certificato della CA autofirmato o privato L'host macchina virtuale dell'app per la logica non avrà i certificati di chiave pubblica necessari nell'archivio ca radice attendibile dell'host per convalidare la catena di certificati del server MQ. In questo caso, completare i passaggi seguenti:

        1. Ricreare l'app per la logica Standard usando un piano di app Azure Service Environment v3 (A edizione Standard) con un piano di servizio app basato su Windows e A edizione Standard.

        2. Aggiungere manualmente i certificati di chiave pubblica necessari all'archivio CA radice attendibile dell'host.

        Per altre informazioni, vedere la documentazione seguente:
        - Associazioni di certificati e ambiente del servizio app
        - Aggiungere e gestire certificati TLS/SSL nel servizio app Azure
      • Autenticazione client dell'app per la logica

        È possibile aggiungere un certificato di chiave privata da inviare come certificato client e quindi specificare il valore di identificazione personale del certificato nei dettagli della connessione per il connettore predefinito MQ. Per altre informazioni, vedere Aggiungere un certificato di chiave privata.

      Raccomandazione: eseguire l'aggiornamento al server MQ 9.0 o versione successiva. Inoltre, nel server MQ assicurarsi di configurare il canale di connessione al server con una suite di crittografia corrispondente alla specifica di crittografia usata dalla connessione client, ad esempio ANY_TLS12_OR_HIGHER. Per altre informazioni, vedere l'elemento successivo sui requisiti di crittografia.

  • Requisiti delle specifiche di crittografia

    Il server MQ richiede di definire la specifica di crittografia per le connessioni che usano la crittografia TLS (SSL). Questa specifica di crittografia deve corrispondere alle suite di crittografia supportate, scelte e usate dal sistema operativo in cui viene eseguito il server MQ. In definitiva, la specifica di crittografia usata dalla connessione client deve corrispondere alle suite di crittografia configurate nel canale di connessione server nel server MQ.

    Per altre informazioni, vedere Problemi di connessione e autenticazione.

Aggiungere un trigger MQ (solo app per la logica Standard)

I passaggi seguenti si applicano solo ai flussi di lavoro dell'app per la logica Standard, che possono usare i trigger forniti dal connettore predefinito MQ. Il connettore gestito MQ non include trigger.

Questi passaggi usano la portale di Azure, ma con l'estensione App per la logica di Azure appropriata, è anche possibile usare Visual Studio Code per creare un flusso di lavoro dell'app per la logica Standard.

  1. Nella portale di Azure aprire il flusso di lavoro dell'app per la logica vuota nella finestra di progettazione.

  2. Seguire questi passaggi generali per aggiungere il trigger predefinito MQ desiderato. Per altre informazioni, vedere Trigger del connettore predefiniti MQ.

  3. Specificare le informazioni necessarie per autenticare la connessione. Al termine, seleziona Crea.

  4. Quando viene visualizzata la casella informazioni sul trigger, specificare le informazioni necessarie per il trigger.

  5. Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione seleziona Salva.

Aggiungere un'azione MQ

Un flusso di lavoro dell'app per la logica a consumo può usare solo il connettore gestito MQ. Tuttavia, un flusso di lavoro dell'app per la logica Standard può usare il connettore gestito MQ e il connettore predefinito MQ. Ogni versione ha più azioni. Ad esempio, entrambe le versioni del connettore gestite e predefinite hanno le proprie azioni per esplorare un messaggio.

  • Azioni del connettore gestito: queste azioni vengono eseguite in un flusso di lavoro dell'app per la logica a consumo o standard.

  • Azioni del connettore predefinite: queste azioni vengono eseguite solo in un flusso di lavoro dell'app per la logica Standard.

I passaggi seguenti usano la portale di Azure, ma con l'estensione App per la logica di Azure appropriata, è anche possibile usare gli strumenti seguenti per creare flussi di lavoro dell'app per la logica:

  1. Nella portale di Azure aprire il flusso di lavoro dell'app per la logica nella finestra di progettazione.

  2. Seguire questi passaggi generali per aggiungere l'azione MQ desiderata. Per altre informazioni, vedere Azioni del connettore MQ.

  3. Specificare le informazioni necessarie per autenticare la connessione. Al termine, seleziona Crea.

  4. Quando viene visualizzata la casella informazioni sull'azione, specificare le informazioni necessarie per l'azione.

  5. Al termine, salvare il flusso di lavoro. Sulla barra degli strumenti della finestra di progettazione seleziona Salva.

Testare il flusso di lavoro

Per verificare che il flusso di lavoro restituisca i risultati previsti, eseguire il flusso di lavoro e quindi esaminare gli output della cronologia di esecuzione del flusso di lavoro.

  1. Eseguire il flusso di lavoro.

    • App per la logica a consumo: nella barra degli strumenti della finestra di progettazione del flusso di lavoro selezionare Esegui esecuzione trigger>.

    • App per la logica standard: nel menu delle risorse del flusso di lavoro selezionare Panoramica. Sulla barra degli strumenti del riquadro Panoramica selezionare Esegui esecuzione trigger>.

    Al termine dell'esecuzione, la finestra di progettazione mostra la cronologia di esecuzione del flusso di lavoro insieme allo stato per ogni passaggio.

  2. Per esaminare gli input e gli output per ogni passaggio eseguito (non ignorato), espandere o selezionare il passaggio.

    • Per esaminare altri dettagli di input, selezionare Mostra input non elaborati.

    • Per esaminare altri dettagli di output, selezionare Mostra output non elaborati. Se si imposta IncludeInfosu true, viene incluso più output.

Visualizzare e aggiungere certificati per l'autenticazione con crittografia TLS (SSL)

Le informazioni seguenti si applicano solo ai flussi di lavoro dell'app per la logica Standard per il connettore predefinito MQ usando l'autenticazione server-only o server-client con crittografia TLS (SSL).

Visualizzare e confermare le identificazioni personali per i certificati di chiave pubblica esistenti

Per verificare che le identificazioni personali per i certificati di chiave pubblica richiesti esistano nell'host macchina virtuale dell'app per la logica Standard nell'archivio ca radice attendibile, seguire questa procedura per eseguire lo script di PowerShell dal menu delle risorse dell'app per la cert logica Standard.

  1. Nella portale di Azure aprire la risorsa dell'app per la logica Standard. Nel menu delle risorse dell'app per la logica, in Strumenti di sviluppo selezionare Strumenti>avanzati Go.

  2. Dal menu della console di debug Kudu selezionare PowerShell.

  3. Dopo aver visualizzato la finestra di PowerShell, eseguire lo script seguente dal prompt dei comandi di PowerShell:

    dir cert:\localmachine\root

    Nella finestra di PowerShell sono elencate le identificazioni personali e le descrizioni esistenti, ad esempio:

    Screenshot showing existing example thumbprints and descriptions.

Aggiungere un certificato di chiave pubblica

Per aggiungere un certificato di chiave pubblica all'archivio CA radice attendibile nell'host della macchina virtuale in cui viene eseguita l'app per la logica Standard, seguire questa procedura:

  1. Nella portale di Azure aprire la risorsa dell'app per la logica Standard. Nel menu delle risorse dell'app per la logica, in Impostazioni, selezionare Impostazioni TLS/SSL (versione classica).

  2. Nella pagina Impostazioni TLS/SSL (versione classica) selezionare la scheda Certificati a chiave pubblica (cer) e quindi selezionare Carica certificato chiave pubblica.

  3. Nel riquadro Aggiungi certificato di chiave pubblica (cer) visualizzato immettere un nome per descrivere il certificato. Trovare e selezionare il file di certificato della chiave pubblica (con estensione cer). Al termine, selezionare Carica.

  4. Dopo aver aggiunto il certificato, dalla colonna Identificazione personale copiare il valore di identificazione personale del certificato.

    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. Nel menu della risorsa dell'app per la logica selezionare Configurazione.

  6. Nella scheda Impostazioni applicazione selezionare Nuova impostazione applicazione. Aggiungere una nuova impostazione dell'applicazione denominata WEBSITE_LOAD_ROOT_CERTIFICATES e immettere il valore di identificazione personale del certificato copiato in precedenza. Se sono presenti più valori di identificazione personale del certificato, assicurarsi di separare ogni valore con una virgola (,).

    Per altre informazioni, vedere Modificare le impostazioni dell'host e dell'app per le app per la logica Standard in App per la logica di Azure a tenant singolo.

    Nota

    Se si specifica un'identificazione personale per un certificato ca privato, il connettore predefinito MQ non esegue alcuna convalida del certificato, ad esempio la verifica della data di scadenza o dell'origine del certificato. Se la convalida SSL .NET standard ha esito negativo, il connettore confronta solo qualsiasi valore di identificazione personale passato rispetto al valore nell'impostazione WEBSITE_LOAD_ROOT_CERTIFICATES .

  7. Se il certificato aggiunto non viene visualizzato nell'elenco dei certificati a chiave pubblica, sulla barra degli strumenti selezionare Aggiorna.

Aggiungere un certificato di chiave privata

Per aggiungere un certificato di chiave privata all'archivio CA radice attendibile nell'host della macchina virtuale in cui viene eseguita l'app per la logica Standard, seguire questa procedura:

  1. Nella portale di Azure aprire la risorsa dell'app per la logica. Nel menu delle risorse dell'app per la logica, in Impostazioni, selezionare Impostazioni TLS/SSL (versione classica).

  2. Nella pagina Impostazioni TLS/SSL (versione classica) selezionare la scheda Certificati chiave privata (pfx) e quindi selezionare Carica certificato.

  3. Nel riquadro Add Private Key Certificate (pfx) (Aggiungi certificato di chiave privata con estensione pfx) visualizzato individuare e selezionare il file di certificato della chiave privata (pfx) e quindi immettere la password del certificato. Al termine, selezionare Carica.

  4. Dopo aver aggiunto il certificato, dalla colonna Identificazione personale copiare il valore di identificazione personale del certificato.

    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. Nel menu della risorsa dell'app per la logica selezionare Configurazione.

  6. Nella scheda Impostazioni applicazione selezionare Nuova impostazione applicazione. Aggiungere una nuova impostazione dell'applicazione denominata WEBSITE_LOAD_CERTIFICATES e immettere il valore di identificazione personale del certificato copiato in precedenza.

    Per altre informazioni, vedere Modificare le impostazioni dell'host e dell'app per le app per la logica Standard in App per la logica di Azure a tenant singolo.

  7. Se il certificato aggiunto non viene visualizzato nell'elenco dei certificati di chiave privata, sulla barra degli strumenti selezionare Aggiorna.

  8. Quando si crea una connessione usando il connettore predefinito MQ, nella casella informazioni di connessione selezionare Usa TLS.

  9. Nella proprietà Identificazione personale certificato client immettere il valore di identificazione personale copiato in precedenza per il certificato di chiave privata, che abilita l'autenticazione server-client (bidirezionale). Se non si immette un valore di identificazione personale, il connettore usa l'autenticazione solo server (unidirezionale).

    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.

Risoluzione dei problemi

Errori con azioni di esplorazione o ricezione

Se si esegue un'azione di esplorazione o ricezione in una coda vuota, l'azione ha esito negativo con gli output di intestazione seguenti:

Screenshot showing the MQ

Problemi di connessione e autenticazione

Quando il flusso di lavoro usa il connettore gestito MQ per connettersi al server MQ locale, è possibile che venga visualizzato l'errore seguente:

"MQ: Could not Connect the Queue Manager '<queue-manager-name>': The Server was expecting an SSL connection."

  • Il server MQ deve fornire un certificato emesso da un'autorità di certificazione attendibile.

  • Il server MQ richiede di definire la specifica di crittografia da usare con le connessioni TLS. Tuttavia, per motivi di sicurezza e per includere le migliori suite di sicurezza, il sistema operativo Windows invia un set di specifiche di crittografia supportate.

    Il sistema operativo in cui viene eseguito il server MQ sceglie le suite da usare. Per fare in modo che la configurazione corrisponda, è necessario modificare la configurazione del server MQ in modo che la specifica di crittografia corrisponda all'opzione scelta nella negoziazione TLS.

    Quando si tenta di connettersi, il server MQ registra un messaggio di evento che indica che il tentativo di connessione non è riuscito perché il server MQ ha scelto la specifica di crittografia non corretta. Il messaggio di evento contiene la specifica di crittografia scelta dal server MQ nell'elenco. Nella configurazione del canale di connessione server aggiornare la specifica di crittografia in modo che corrisponda alla specifica di crittografia nel messaggio dell'evento.

Passaggi successivi