Connettersi 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 (a consumo e 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

Informazioni tecniche sul connettore

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 della connessione
Consumo App per la logica di Azure multi-tenant Connettore gestito, visualizzato nella raccolta dei connettori in Runtime>Condiviso. 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 (ambiente del servizio app v3 con solo piani di Windows) Connettore gestito, visualizzato nella raccolta dei connettori in Runtime>Condiviso e connettore predefinito, visualizzato nella raccolta dei connettori in Runtime>in-App ed è basato sul provider di servizi. La versione predefinita differisce 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:

Autenticazione Tipo di app per la logica e connettore MQ supportati Processo
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, 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)

  • Requisiti delle specifiche di crittografia

    Il server MQ richiede la definizione della specifica di crittografia per le connessioni che utilizzano 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 sul server MQ.

    Per altre informazioni, vedere Problemi di connessione e autenticazione.

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

I seguenti passaggi 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. Nel 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 il 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 delle app per la logica:

  1. Nel 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 IncludeInfo su 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. Nel 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 che mostra le identificazioni personali e le descrizioni di esempio esistenti.

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. Nel 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 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 (.cer). Al termine, selezionare Carica.

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

    Screenshot che mostra la risorsa logica portale di Azure e Standard con gli elementi seguenti selezionati:

  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. Nel portale di Azure aprire la risorsa 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 che mostra la portale di Azure e la risorsa logica Standard con gli elementi seguenti selezionati:

  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 che mostra la finestra di progettazione del flusso di lavoro dell'app per la logica Standard, la casella di connessione predefinita MQ con l'opzione

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 che mostra l'errore 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 prova a stabilire la connessione, il server MQ registra un messaggio di evento che indica che il tentativo di connessione non è riuscito, poiché il server MQ ha scelto una specifica di crittografia non corretta. Il messaggio di evento contiene la specifica di crittografia scelta dal server MQ dall'elenco. Dalla configurazione del canale di connessione al server, aggiornare la specifica di crittografia in modo che corrisponda a quella indicata nel messaggio di evento.

Passaggi successivi