Ansluta till en IBM MQ-server från ett arbetsflöde i Azure Logic Apps
Gäller för: Azure Logic Apps (Förbrukning + Standard)
Den här artikeln visar hur du kommer åt en Azure-värdbaserad eller lokal MQ-server från ett arbetsflöde i Azure Logic Apps med hjälp av MQ-anslutningstjänsten. Du kan sedan skapa automatiserade arbetsflöden som tar emot och skickar meddelanden som lagras på MQ-servern. Arbetsflödet kan till exempel bläddra efter ett enda meddelande i en kö och sedan köra andra åtgärder.
MQ-anslutningsappen innehåller en omslutning runt en Microsoft MQ-klient, som innehåller alla meddelandefunktioner för att kommunicera med en fjärransluten MQ-server i ett TCP/IP-nätverk. Den här anslutningsappen definierar anslutningar, åtgärder och parametrar för att anropa MQ-klienten.
IBM WebSphere MQ-versioner som stöds
- MQ 7.5
- MQ 8.0
- MQ 9.0, 9.1, 9.2 och 9.3
Teknisk referens för anslutningsprogram
MQ-anslutningsappen har olika versioner, baserat på logikapptyp och värdmiljö.
Logikapp | Environment | Anslutningsversion |
---|---|---|
Förbrukning | Azure Logic Apps med flera klientorganisationer | Hanterad anslutningsapp, som visas i anslutningsgalleriet under Runtime >Shared. Den här anslutningsappen innehåller endast åtgärder, inte utlösare. I lokala MQ-serverscenarier stöder den hanterade anslutningsappen endast serverautentisering med TLS-kryptering (SSL). Mer information finns i följande dokumentation: - Referens för MQ-hanterad anslutningsapp - Hanterade anslutningsappar i Azure Logic Apps |
Standard | Azure Logic Apps för en klientorganisation och App Service-miljön v3 (endast ASE v3 med Windows-planer) | Hanterad anslutningsapp, som visas i anslutningsgalleriet under Runtime>Shared och inbyggd anslutningsapp, som visas i anslutningsgalleriet under Runtime>In-App och är tjänstleverantörsbaserad. Den inbyggda versionen skiljer sig åt på följande sätt: – Den inbyggda versionen innehåller åtgärder och utlösare. – Den inbyggda anslutningsappen kan ansluta direkt till en MQ-server och få åtkomst till virtuella Azure-nätverk med hjälp av en anslutningssträng utan en lokal datagateway. – Den inbyggda versionen stöder både serverautentisering och serverklientautentisering med TLS-kryptering (SSL) för data under överföring, meddelandekodning för både sändnings- och mottagningsåtgärder och integrering av virtuella Azure-nätverk. Mer information finns i följande dokumentation: - Referens för MQ-hanterad anslutningsapp - Referens för MQ-inbyggd anslutningsapp - Inbyggda anslutningsappar i Azure Logic Apps |
Autentisering med TLS-kryptering (SSL)
Baserat på om du använder MQ-hanterad anslutningsapp (Förbrukning eller Standard-arbetsflöden) eller den inbyggda MQ-anslutningsappen (endast standardarbetsflöden) stöder MQ-anslutningsappen en eller båda av följande autentiseringsriktningar:
Autentisering | Logikappstyp och MQ-anslutningsprogram som stöds | Process |
---|---|---|
Endast server (enkelriktad) |
– Förbrukning: Endast hanterad – Standard: Hanterad eller inbyggd |
För serverautentisering skickar din MQ-server ett privat nyckelcertifikat, antingen offentligt betrott eller icke-offentligt betrott, till din logikappklient för validering. MQ-anslutningen validerar det inkommande servercertifikatet för äkthet mot offentlig nyckelcertifikat, även kända som "undertecknar"-certifikat, genom att använda standardvalidering av .NET SSL-dataström. Logikappen skickar inte ett klientcertifikat. |
Serverklient (dubbelriktad) |
– Förbrukning: Stöds inte - Standard: Endast inbyggd |
Information om serverautentisering finns i föregående rad. För klientautentisering skickar logikappklienten ett privat nyckelcertifikat till din MQ-server för validering. MQ-servern validerar även det inkommande klientcertifikatet för äkthet med hjälp av ett offentligt nyckelcertifikat. |
Anteckningar om certifikat för privat nyckel och offentlig nyckel
Certifikatet som kräver validering är alltid ett privat nyckelcertifikat. Certifikatet som används för att utföra valideringen är alltid ett offentligt nyckelcertifikat.
Ett offentligt betrott privat nyckelcertifikat utfärdas av en erkänd certifikatutfärdare. Ett icke-offentligt betrott privat nyckelcertifikat innehåller självsignerade, privata CERTIFIKATutfärdare och liknande certifikat.
För att verifiera ett privat nyckelcertifikat som skickas från MQ-servern använder MQ-anslutningsappen offentliga nyckelcertifikat som vanligtvis finns på logikappens virtuella datorvärd i värdens ca-arkiv för betrodda rotcertifikatutfärdare.
Men om värden inte har alla nödvändiga offentliga nyckelcertifikat, eller om MQ-servern skickar ett icke-offentligt betrott privat nyckelcertifikat, måste du vidta extra åtgärder. Mer information finns i Förutsättningar.
För att verifiera en klients privata nyckelcertifikat som skickas från standardlogikappen använder MQ-servern offentliga nyckelcertifikat som finns i MQ-serverns certifikatarkiv. Information om hur du lägger till ett privat nyckelcertifikat för logikappen som ska användas som klientcertifikat finns i Lägga till ett privat nyckelcertifikat.
Begränsningar
Autentisering med TLS-kryptering (SSL)
MQ-anslutningsapp Autentiseringsriktning som stöds Hanterade Endast server (enkelriktad) Inbyggd – Serverklient (dubbelriktad)
– Endast server (enkelriktad)Verifiering av servercertifikat
Den inbyggda MQ-anslutningsappen validerar inte servercertifikatets förfallodatum eller certifikatkedja.
Konverteringar av teckenuppsättningar
Den MQ-hanterade anslutningsappen gör inga teckenuppsättningskonverteringar eller använder meddelandets formatfält . Anslutningsappen kopierar endast de data som visas i meddelandefältet och skickar meddelandet vidare.
Den inbyggda MQ-anslutningsappen kan göra konverteringar av teckenuppsättningar, men bara när dataformatet är en sträng. Om du anger ett annat teckenuppsättnings-ID (kodsida) försöker anslutningsappen konvertera data till den nya kodsidan.
MQ-anslutningsappen stöder inte segmenterade meddelanden.
Mer information finns i referensen för MQ-hanterad anslutningsapp eller referensen för den inbyggda MQ-anslutningsappen.
Förutsättningar
Ett Azure-konto och prenumeration. Om du heller inte har någon Azure-prenumeration kan du registrera ett kostnadsfritt Azure-konto.
Om du vill ansluta till en lokal MQ-server måste du installera den lokala datagatewayen på en server i nätverket. För att MQ-anslutningsappen ska fungera måste servern med den lokala datagatewayen också ha .NET Framework 4.6 installerat.
När du har installerat gatewayen måste du också skapa en datagatewayresurs i Azure. MQ-anslutningsappen använder den här resursen för att komma åt MQ-servern. Mer information finns i Konfigurera anslutningen till datagatewayen.
Kommentar
Du behöver inte gatewayen i följande scenarier:
- MQ-servern är offentligt tillgänglig eller tillgänglig i Azure.
- Du ska använda den inbyggda MQ-anslutningsappen, inte den hanterade anslutningsappen.
Logikappens resurs och arbetsflöde där du vill komma åt MQ-servern.
Om du vill använda den MQ-hanterade anslutningsappen med den lokala datagatewayen måste logikappresursen använda samma plats som din gatewayresurs i Azure.
Om du vill använda den MQ-hanterade anslutningsappen, som inte tillhandahåller några utlösare, kontrollerar du att arbetsflödet börjar med en utlösare eller att du först lägger till en utlösare i arbetsflödet. Du kan till exempel använda upprepningsutlösaren.
Om du vill använda en utlösare från den inbyggda MQ-anslutningsappen ska du se till att du börjar med ett tomt arbetsflöde.
Certifikatkrav för autentisering med TLS-kryptering (SSL)
MQ-hanterad anslutningsapp
MQ-server Krav Azure-värdbaserad MQ-server MQ-servern måste skicka ett privat nyckelcertifikat som utfärdas av en betrodd certifikatutfärdare till logikappklienten för validering. Lokal MQ-server med lokal datagateway Om du vill skicka ett icke-offentligt betrott privat nyckelcertifikat, till exempel ett självsignerat eller privat CA-certifikat, måste du lägga till certifikatet i ca-arkivet (Trusted Root Certification Authorities) på den lokala datorn med installationen av den lokala datagatewayen. För den här uppgiften kan du använda Windows Certificate Manager (certmgr.exe). Inbyggd MQ-anslutning
Standardlogikappar använder Azure App Service som värdplattform och för att hantera certifikat. För standardlogikappar inom ett WS*-prenumerationsavtal kan du lägga till offentliga, privata, anpassade eller självsignerade certifikat i certifikatarkivet på en lokal dator. Men om du har lagt till certifikat i arkivet för betrodda rotcertifikat på den virtuella värddatorn där dina standardlogikappar körs, kräver App Service att din logikapp körs i en isolerad App Service Environment v3 (ASE) för enbart Windows och ett ASE-baserat App Service-prenumerationsavtal.. Mer information finns i Certifikat och App Service-miljön.
MQ-serverautentisering
I följande tabell beskrivs certifikatkraven baserat på ditt scenario:
Inkommande MQ-servercertifikat Krav Offentligt betrott privat nyckelcertifikat utfärdat av en betrodd certifikatutfärdare Vanligtvis behöver logikappen ingen annan konfiguration eftersom logikappens virtuella värddator vanligtvis har de offentliga nyckelcertifikat som krävs för att verifiera den inkommande MQ-serverns privata nyckelcertifikat. Om du vill kontrollera att dessa offentliga nyckelcertifikat finns följer du stegen för att visa och bekräfta tumavtryck för befintliga offentliga nyckelcertifikat.
Om den virtuella datorvärden inte har alla nödvändiga certifikat för offentlig nyckel för att verifiera den inkommande MQ-serverns privata nyckelcertifikat och eventuella länkningscertifikat utför du följande steg:
1. Återskapa standardlogikappen med hjälp av en Azure App Service-miljön v3 (ASE) med en Windows-baserad och ASE-baserad App Service-plan.
2. Lägg till nödvändiga offentliga nyckelcertifikat manuellt i värdens betrodda rotcertifikatutfärdararkiv.Icke-offentligt betrott privat nyckelcertifikat, till exempel ett självsignerat eller privat CA-certifikat Logikappens värd för virtuella datorer har inte de offentliga nyckelcertifikat som krävs i värdens betrodda rotcertifikatutfärdararkiv för att verifiera MQ-serverns certifikatkedja. I det här fallet utför du följande steg:
1. Återskapa standardlogikappen med hjälp av en Azure App Service-miljön v3 (ASE) med en Windows-baserad och ASE-baserad App Service-plan.
2. Lägg till nödvändiga offentliga nyckelcertifikat manuellt i värdens betrodda rotcertifikatutfärdararkiv.
Mer information finns i följande dokumentation:
- Certifikatbindningar och App Service-miljön
- Lägga till och hantera TLS/SSL-certifikat i Azure App ServiceKlientautentisering för logikapp
Du kan lägga till ett privat nyckelcertifikat som ska skickas som klientcertifikat och sedan ange certifikatets tumavtrycksvärde i anslutningsinformationen för det inbyggda MQ-anslutningsprogrammet. Mer information finns i Lägg till ett privat nyckelcertifikat.
Rekommendation: Uppgradera till MQ server 9.0 eller senare. På MQ-servern måste du också konfigurera serveranslutningskanalen med en chiffersvit som överensstämmer med chifferspecifikationen som används av klientanslutningen, till exempel ANY_TLS12_OR_HIGHER. Mer information finns i nästa punkt om chifferkrav.
Krav för chifferspecifikation
MQ-servern kräver att du definierar chifferspecifikationen för anslutningar som använder TLS-kryptering (SSL). Den här chifferspecifikationen måste överensstämma med chiffersviterna som stöds, väljs och används av operativsystemet där MQ-servern körs. I slutänden måste chifferspecifikationen som används av klientanslutningen överensstämma med chiffersviterna som har konfigurerats i serveranslutningskanalen på MQ-servern.
Mer information finns i Anslutnings- och autentiseringsproblem.
Lägg till en MQ-utlösare (endast standardlogikapp)
Följande steg gäller endast för arbetsflöden i standardlogikappar, där det går att använda utlösare som tillhandahålls av den inbyggda MQ-anslutningsappen. Den MQ-hanterade anslutningsappen innehåller inga utlösare.
De här stegen använder Azure Portal, men med rätt Azure Logic Apps-tillägg kan du också använda Visual Studio Code för att skapa ett arbetsflöde för standardlogikappen.
Öppna arbetsflödet för den tomma logikappen i designern i Azure Portal.
Följ dessa allmänna steg för att lägga till den inbyggda MQ-utlösare som du vill använda. Mer information finns i MQ-inbyggda anslutningsutlösare.
Ange nödvändig information för att autentisera anslutningen. Välj Skapa när du är klar.
När informationsrutan för utlösaren visas anger du nödvändig information för utlösaren.
Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.
Lägga till en MQ-åtgärd
Ett arbetsflöde för förbrukningslogikappen kan bara använda MQ-hanterad anslutningsapp. Ett standardarbetsflöde för logikappar kan dock använda den MQ-hanterade anslutningsappen och den inbyggda MQ-anslutningsappen. Varje version har flera åtgärder. Till exempel har både hanterade och inbyggda anslutningsversioner sina egna åtgärder för att bläddra i ett meddelande.
Åtgärder för hanterade anslutningsappar: Dessa åtgärder körs i ett arbetsflöde för förbrukning eller standardlogikapp.
Inbyggda anslutningsåtgärder: Dessa åtgärder körs endast i ett standardarbetsflöde för logikappar.
Följande steg använder Azure Portal, men med lämpligt Azure Logic Apps-tillägg kan du också använda följande verktyg för att skapa arbetsflöden för logikappar:
Arbetsflöden för förbrukningslogikapp: Visual Studio eller Visual Studio Code
Arbetsflöden för standardlogikapp: Visual Studio Code
Öppna arbetsflödet för logikappen i designern i Azure Portal.
Följ de här allmänna stegen för att lägga till den MQ-åtgärd som du vill använda. Mer information finns i MQ-anslutningsåtgärder.
Ange nödvändig information för att autentisera anslutningen. Välj Skapa när du är klar.
När åtgärdsinformationsrutan visas anger du nödvändig information för din åtgärd.
Spara arbetsflödet när du är klar. I verktygsfältet för designern väljer du Spara.
Testa arbetsflödet
Kontrollera att arbetsflödet returnerar de resultat du förväntar dig genom att köra arbetsflödet och sedan granska utdata från arbetsflödets körningshistorik.
Kör arbetsflödet.
Logikapp för förbrukning: I verktygsfältet för arbetsflödesdesignern väljer du Kör utlösarkörning>.
Standardlogikapp: Välj Översikt på resursmenyn för arbetsflödet. I verktygsfältet Översikt väljer du Kör utlösarkörning>.
När körningen är klar visar designern arbetsflödets körningshistorik tillsammans med statusen för varje steg.
Om du vill granska indata och utdata för varje steg som kördes (inte hoppades över) expanderar eller väljer du steget.
Om du vill granska mer information om indata väljer du Visa råa indata.
Om du vill granska mer utdatainformation väljer du Visa råa utdata. Om du anger IncludeInfo till true inkluderas fler utdata.
Visa och lägg till certifikat för autentisering med TLS-kryptering (SSL)
Följande information gäller endast för standardlogikapparbetsflöden för den inbyggda MQ-anslutningsappen med antingen server- eller serverklientautentisering med TLS-kryptering (SSL).
Visa och bekräfta tumavtryck för befintliga offentliga nyckelcertifikat
Följ dessa steg för att köra PowerShell-skriptet cert
från standardlogikappens resursmeny för att kontrollera att tumavtrycken för de nödvändiga offentliga nyckelcertifikaten finns på standardlogikappens virtuella datorvärd i Trusted Root CA Store.
Öppna din standardlogikappresurs i Azure Portal. På resursmenyn för logikappen går du till Utvecklingsverktyg och väljer Avancerade verktyg>Gå.
Välj PowerShell på kudu-menyn för felsökningskonsolen.
När PowerShell-fönstret visas kör du följande skript från PowerShell-kommandotolken:
dir cert:\localmachine\root
PowerShell-fönstret visar en lista över befintliga tumavtryck och beskrivningar, till exempel:
Lägga till ett certifikat för offentlig nyckel
Följ dessa steg om du vill lägga till ett certifikat för offentlig nyckel till det betrodda rotcertifikatutfärdararkivet på den virtuella datorvärden där standardlogikappen körs:
Öppna din standardlogikappresurs i Azure Portal. På logikappens resursmeny går du till Inställningar och väljer TLS/SSL-inställningar (klassisk).
På sidan TLS/SSL-inställningar (klassisk) väljer du fliken Offentliga nyckelcertifikat (.cer) och sedan Ladda upp offentligt nyckelcertifikat.
I fönstret Lägg till offentligt nyckelcertifikat (.cer) som öppnas anger du ett namn för att beskriva certifikatet. Leta upp och välj certifikatfilen för den offentliga nyckeln (.cer). När du är klar väljer du Ladda upp.
När du har lagt till certifikatet kopierar du certifikatets tumavtrycksvärde från kolumnen Tumavtryck .
På resursmenyn för logikappen väljer du Konfiguration.
På fliken Programinställningar väljer du Ny programinställning. Lägg till en ny programinställning med namnet WEBSITE_LOAD_ROOT_CERTIFICATES och ange certifikatets tumavtrycksvärde som du kopierade tidigare. Om du har flera tumavtrycksvärden för certifikatet måste du avgränsa varje värde med kommatecken (,).
Mer information finns i Redigera värd- och appinställningar för standardlogikappar i Azure Logic Apps med en klientorganisation.
Kommentar
Om du anger ett tumavtryck för ett privat CA-certifikat kör den inbyggda MQ-anslutningsappen inte någon certifikatverifiering, till exempel kontroll av certifikatets förfallodatum eller källa. Om standardverifieringen av .NET SSL misslyckas jämför anslutningsappen endast alla tumavtrycksvärden som skickas in mot värdet i inställningen WEBSITE_LOAD_ROOT_CERTIFICATES .
Om det tillagda certifikatet inte visas i listan med offentliga nyckelcertifikat väljer du Uppdatera i verktygsfältet.
Lägga till ett certifikat för privat nyckel
Följ dessa steg om du vill lägga till ett certifikat för privat nyckel till den betrodda rotcertifikatutfärdararkivet på den virtuella datorvärd där standardlogikappen körs:
Öppna logikappresursen i Azure Portal. På logikappens resursmeny går du till Inställningar och väljer TLS/SSL-inställningar (klassisk).
På sidan TLS/SSL-inställningar (klassisk) väljer du fliken Privata nyckelcertifikat (.pfx) och sedan Ladda upp certifikat.
I fönstret Lägg till certifikat för privat nyckel (.pfx) som öppnas letar du upp och väljer certifikatfilen för den privata nyckeln (.pfx) och anger sedan certifikatlösenordet. När du är klar väljer du Ladda upp.
När du har lagt till certifikatet kopierar du certifikatets tumavtrycksvärde från kolumnen Tumavtryck .
På resursmenyn för logikappen väljer du Konfiguration.
På fliken Programinställningar väljer du Ny programinställning. Lägg till en ny programinställning med namnet WEBSITE_LOAD_CERTIFICATES och ange certifikatets tumavtrycksvärde som du kopierade tidigare.
Mer information finns i Redigera värd- och appinställningar för standardlogikappar i Azure Logic Apps med en klientorganisation.
Om det tillagda certifikatet inte visas i listan med privata nyckelcertifikat väljer du Uppdatera i verktygsfältet.
När du skapar en anslutning med den inbyggda MQ-anslutningsappen väljer du Använd TLS i rutan Anslutningsinformation.
I egenskapen Client Cert Thumbprint anger du det tidigare kopierade tumavtrycksvärdet för certifikatet för den privata nyckeln, vilket möjliggör serverklientautentisering (dubbelriktad). Om du inte anger ett tumavtrycksvärde använder anslutningsappen endast serverautentisering (enkelriktad).
Felsöka problem
Fel med att bläddra eller ta emot åtgärder
Om du kör en bläddra eller ta emot en åtgärd i en tom kö misslyckas åtgärden med följande rubrikutdata:
Problem med anslutning och autentisering
När arbetsflödet använder den MQ-hanterade anslutningsappen för att ansluta till din lokala MQ-server kan du få följande fel:
"MQ: Could not Connect the Queue Manager '<queue-manager-name>': The Server was expecting an SSL connection."
MQ-servern måste tillhandahålla ett certifikat som utfärdas av en betrodd certifikatutfärdare.
MQ-servern kräver att du definierar chifferspecifikationen som ska användas med TLS-anslutningar. Men för säkerhetsändamål och för att inkludera de bästa säkerhetspaketen skickar Windows-operativsystemet en uppsättning chifferspecifikationer som stöds.
Operativsystemet där MQ-servern körs väljer vilka sviter som ska användas. För att konfigurationen ska matcha måste du ändra konfigurationen av MQ-servern så att chifferspecifikationen överensstämmer med det alternativ som valts i TLS-förhandlingen.
När du försöker ansluta loggar MQ-servern ett händelsemeddelande om att anslutningsförsöket misslyckades, eftersom MQ-servern valde den felaktiga chifferspecifikationen. Händelsemeddelandet innehåller chifferspecifikationen som MQ-servern valde i listan. I konfigurationen av serveranslutningskanalen uppdaterar du chifferspecifikationen så att den överensstämmer med chifferspecifikationen i händelsemeddelandet.