Verbinding maken naar een IBM MQ-server vanuit een werkstroom in Azure Logic Apps
Van toepassing op: Azure Logic Apps (Verbruik + Standard)
In dit artikel wordt beschreven hoe u toegang krijgt tot een door Azure gehoste of on-premises MQ-server vanuit een werkstroom in Azure Logic Apps met behulp van de MQ-connector. Vervolgens kunt u geautomatiseerde werkstromen maken die berichten ontvangen en verzenden die zijn opgeslagen op uw MQ-server. Uw werkstroom kan bijvoorbeeld bladeren naar één bericht in een wachtrij en vervolgens andere acties uitvoeren.
De MQ-connector biedt een wrapper rond een Microsoft MQ-client, die alle berichtenmogelijkheden bevat voor communicatie met een externe MQ-server via een TCP/IP-netwerk. Deze connector definieert de verbindingen, bewerkingen en parameters om de MQ-client aan te roepen.
Ondersteunde IBM WebSphere MQ-versies
- MQ 7.5
- MQ 8.0
- MQ 9.0, 9.1, 9.2 en 9.3
Verbinding maken of technische naslaginformatie
De MQ-connector heeft verschillende versies, op basis van het type logische app en de hostomgeving.
Logische apps | Omgeving | Verbinding maken ionversie |
---|---|---|
Verbruik | Azure Logic Apps en Integration Service Environment (ISE) met meerdere tenants | Beheerde connector, die wordt weergegeven in de ontwerpfunctie onder het label Enterprise . Deze connector biedt alleen acties, geen triggers. In on-premises MQ-serverscenario's ondersteunt de beheerde connector alleen serververificatie met TLS-versleuteling (SSL). Raadpleeg de volgende documentatie voor meer informatie: - Naslaginformatie over beheerde MQ-connectors - Beheerde connectors in Azure Logic Apps |
Standaard | Azure Logic Apps en App Service Environment v3 (ASE v3 met alleen Windows-abonnementen) | Beheerde connector, die wordt weergegeven in de connectorgalerie onder Runtime>Shared en de ingebouwde connector, die wordt weergegeven in de connectorgalerie onder Runtime>In-App en is gebaseerd op serviceproviders. De ingebouwde versie verschilt op de volgende manieren: - De ingebouwde versie bevat acties en triggers. - De ingebouwde connector kan rechtstreeks verbinding maken met een MQ-server en toegang krijgen tot virtuele Azure-netwerken met behulp van een verbindingsreeks zonder een on-premises gegevensgateway. - De ingebouwde versie ondersteunt zowel serververificatie als serverclientverificatie met TLS-versleuteling (SSL) voor gegevens die worden overgedragen, berichtcodering voor zowel de verzend- als ontvangstbewerkingen en de integratie van virtuele Azure-netwerken. Raadpleeg de volgende documentatie voor meer informatie: - Naslaginformatie over beheerde MQ-connectors - Naslaginformatie over de ingebouwde MQ-connector - Ingebouwde connectors in Azure Logic Apps |
Verificatie met TLS-versleuteling (SSL)
Op basis van of u de beheerde MQ-connector (Verbruiks- of Standaardwerkstromen) of de ingebouwde MQ-connector (alleen standaardwerkstromen) gebruikt, ondersteunt de MQ-connector een of beide van de volgende verificatierichtingen:
Verificatie | Ondersteund type logische app en MQ-connector | Proces |
---|---|---|
Alleen server (eenrichting) |
- Verbruik: alleen beheerd - Standaard: Beheerd of ingebouwd |
Voor serververificatie verzendt uw MQ-server een certificaat met een persoonlijke sleutel, openbaar of niet-openbaar vertrouwd, naar uw logische app-client voor validatie. De MQ-connector valideert het certificaat van de inkomende server voor echtheid op basis van openbare-sleutelcertificaten, ook wel ondertekenaarcertificaten genoemd, met behulp van standaard .NET SSL-stroomvalidatie. De logische app verzendt geen clientcertificaat. |
Serverclient (in twee richtingen) |
- Verbruik: niet ondersteund - Standaard: alleen ingebouwd |
Zie de vorige rij voor serververificatie. Voor clientverificatie verzendt de logische app-client een certificaat met een persoonlijke sleutel naar uw MQ-server voor validatie. De MQ-server valideert het binnenkomende clientcertificaat voor echtheid ook met behulp van een certificaat met een openbare sleutel. |
Notities over certificaten voor persoonlijke sleutels en openbare sleutels
Het certificaat waarvoor validatie is vereist, is altijd een certificaat met een persoonlijke sleutel. Het certificaat dat wordt gebruikt om de validatie uit te voeren, is altijd een openbaar sleutelcertificaat.
Een openbaar vertrouwd persoonlijk sleutelcertificaat wordt uitgegeven door een erkende certificeringsinstantie. Een certificaat met een niet-openbaar vertrouwde persoonlijke sleutel bevat zelfondertekende, persoonlijke CA en vergelijkbare certificaten.
Als u een certificaat voor een persoonlijke sleutel wilt valideren dat is verzonden vanaf uw MQ-server, gebruikt de MQ-connector openbare-sleutelcertificaten die meestal aanwezig zijn op de hosthost van de virtuele machine in het archief vertrouwde basiscertificeringsinstanties (CA) van de host.
Als de host echter niet beschikt over alle vereiste certificaten voor openbare sleutels of als uw MQ-server een niet-openbaar vertrouwd certificaat voor persoonlijke sleutels verzendt, moet u extra stappen uitvoeren. Zie Vereisten voor meer informatie.
De MQ-server gebruikt openbare-sleutelcertificaten die aanwezig zijn in het certificaatarchief van uw MQ-server om het certificaatcertificaat van een client te valideren dat is verzonden vanuit uw standaard logische app. Als u een certificaat voor een persoonlijke sleutel wilt toevoegen voor uw logische app die u als clientcertificaat wilt gebruiken, raadpleegt u Een certificaat voor een persoonlijke sleutel toevoegen.
Beperkingen
Verificatie met TLS-versleuteling (SSL)
MQ-connector Ondersteunde verificatierichting Beheerd Alleen server (in één richting) Ingebouwd - Server-client (in twee richtingen)
- Alleen server (één richting)Validatie van servercertificaat
De ingebouwde MQ-connector valideert de vervaldatum van het servercertificaat en de certificaatketen niet.
Conversies van tekenset
De beheerde MQ-connector maakt geen conversies van tekenset en maakt geen gebruik van het veld Opmaak van het bericht. De connector kopieert alleen de gegevens die in het berichtveld worden weergegeven en verzendt het bericht mee.
De ingebouwde MQ-connector kan tekensetconversies maken, maar alleen wanneer de gegevensindeling een tekenreeks is. Als u een andere tekenset-id (codepagina) opgeeft, probeert de connector de gegevens te converteren naar de nieuwe codepagina.
De MQ-connector biedt geen ondersteuning voor gesegmenteerde berichten.
Raadpleeg de naslaginformatie voor beheerde MQ-connectors of de ingebouwde MQ-connectorverwijzing voor meer informatie.
Vereisten
Een Azure-account en -abonnement. Als u nog geen abonnement op Azure hebt, registreer u dan nu voor een gratis Azure-account.
Als u verbinding wilt maken met een on-premises MQ-server, moet u de on-premises gegevensgateway installeren op een server in uw netwerk. De MQ-connector werkt alleen als op de server met de on-premises gegevensgateway .NET Framework 4.6 is geïnstalleerd.
Nadat u de gateway hebt geïnstalleerd, moet u ook een gegevensgatewayresource maken in Azure. De MQ-connector gebruikt deze resource voor toegang tot uw MQ-server. Zie De gegevensgatewayverbinding instellen voor meer informatie.
Notitie
U hebt de gateway niet nodig in de volgende scenario's:
- Uw MQ-server is openbaar beschikbaar of beschikbaar in Azure.
- U gaat de ingebouwde MQ-connector gebruiken, niet de beheerde connector.
De resource en werkstroom van de logische app waar u toegang wilt krijgen tot uw MQ-server.
Als u de door MQ beheerde connector wilt gebruiken met de on-premises gegevensgateway, moet uw logische app-resource dezelfde locatie gebruiken als uw gatewayresource in Azure.
Als u de beheerde MQ-connector wilt gebruiken, die geen triggers biedt, moet u ervoor zorgen dat uw werkstroom begint met een trigger of dat u eerst een trigger aan uw werkstroom toevoegt. U kunt bijvoorbeeld de trigger Terugkeerpatroon gebruiken.
Als u een trigger van de ingebouwde MQ-connector wilt gebruiken, moet u beginnen met een lege werkstroom.
Certificaatvereisten voor verificatie met TLS-versleuteling (SSL)
Beheerde MQ-connector
MQ-server Vereisten Door Azure gehoste MQ-server De MQ-server moet een certificaat met een persoonlijke sleutel verzenden dat is uitgegeven door een vertrouwde certificeringsinstantie naar uw logische app-client voor validatie. On-premises MQ-server met on-premises gegevensgateway Als u een certificaat met een niet-openbaar vertrouwde persoonlijke sleutel, zoals een zelfondertekend of privé-CA-certificaat, wilt verzenden, moet u het certificaat toevoegen aan het archief met vertrouwde basiscertificeringsinstanties (CA) op de lokale computer met de installatie van de on-premises gegevensgateway. Voor deze taak kunt u Windows Certificate Manager (certmgr.exe) gebruiken. Ingebouwde MQ-connector
Standaard logische apps maken gebruik van Azure-app Service als hostplatform en voor het afhandelen van certificaten. Voor standaard logische apps in elk WS*-abonnement kunt u openbare, persoonlijke, aangepaste of zelfondertekende certificaten toevoegen aan het certificaatarchief van de lokale computer. Als u echter certificaten moet toevoegen aan het vertrouwde basis-CA-archief op de host van de virtuele machine waarop uw standaard logische app wordt uitgevoerd, vereist App Service dat uw logische app wordt uitgevoerd in een geïsoleerde App Service Environment v3 (ASE) met alleen Windows en een App Service-plan op basis van ASE. Zie Certificaten en de App Service-omgeving voor meer informatie.
MQ-serververificatie
In de volgende tabel worden de vereisten voor certificaten beschreven, op basis van uw scenario:
Binnenkomend MQ-servercertificaat Vereisten Openbaar vertrouwde persoonlijke sleutelcertificaat uitgegeven door een vertrouwde certificeringsinstantie Normaal gesproken heeft uw logische app geen andere instellingen nodig, omdat de host van de virtuele machine van uw logische app meestal beschikt over de vereiste certificaten voor openbare sleutels om het binnenkomende certificaat van de persoonlijke sleutel van de MQ-server te valideren. Als u wilt controleren of deze certificaten voor openbare sleutels bestaan, volgt u de stappen om vingerafdrukken voor bestaande openbare-sleutelcertificaten weer te geven en te bevestigen.
Als de host van de virtuele machine niet beschikt over alle vereiste certificaten voor openbare sleutels om het certificaat voor de persoonlijke sleutel van de binnenkomende MQ-server en eventuele ketencertificaten te valideren, voert u de volgende stappen uit:
1. Maak uw logische standaard-app opnieuw met behulp van een Azure-app Service Environment v3 (ASE) met een App Service-plan op basis van Windows en ASE.
2. Voeg handmatig de vereiste certificaten voor openbare sleutels toe aan het vertrouwde basis-CA-archief van de host.Niet-openbaar vertrouwd certificaat met persoonlijke sleutel, zoals een zelfondertekend of privé-CA-certificaat De host van de virtuele machine van uw logische app beschikt niet over de vereiste openbare-sleutelcertificaten in het vertrouwde basis-CA-archief van de host om de certificaatketen van de MQ-server te valideren. Voer in dit geval de volgende stappen uit:
1. Maak uw logische standaard-app opnieuw met behulp van een Azure-app Service Environment v3 (ASE) met een App Service-plan op basis van Windows en ASE.
2. Voeg handmatig de vereiste certificaten voor openbare sleutels toe aan het vertrouwde basis-CA-archief van de host.
Zie de volgende documentatie voor meer informatie:
- Certificaatbindingen en de App Service-omgeving
- TLS/SSL-certificaten toevoegen en beheren in Azure-app ServiceClientverificatie voor logische apps
U kunt een certificaat met een persoonlijke sleutel toevoegen dat moet worden verzonden als het clientcertificaat en vervolgens de vingerafdrukwaarde van het certificaat opgeven in de verbindingsgegevens voor de ingebouwde MQ-connector. Zie Een certificaat voor een persoonlijke sleutel toevoegen voor meer informatie.
Aanbeveling: upgraden naar MQ-server 9.0 of hoger. Zorg er ook voor dat u op uw MQ-server het serververbindingskanaal instelt met een coderingssuite die overeenkomt met de coderingsspecificatie die wordt gebruikt door uw clientverbinding, bijvoorbeeld ANY_TLS12_OR_HIGHER. Zie het volgende item over vereisten voor codering voor meer informatie.
Vereisten voor coderingsspecificatie
Voor de MQ-server moet u de coderingsspecificatie definiëren voor verbindingen die TLS-versleuteling (SSL) gebruiken. Deze coderingsspecificatie moet overeenkomen met de coderingssuites die worden ondersteund, gekozen en gebruikt door het besturingssysteem waarop de MQ-server wordt uitgevoerd. Uiteindelijk moet de coderingsspecificatie die door de clientverbinding wordt gebruikt, overeenkomen met de coderingssuites die zijn ingesteld op het serververbindingskanaal op de MQ-server.
Zie Verbinding maken ion- en verificatieproblemen voor meer informatie.
Een MQ-trigger toevoegen (alleen standaard logische app)
De volgende stappen zijn alleen van toepassing op standaardwerkstromen voor logische apps, die gebruikmaken van triggers die worden geleverd door de ingebouwde MQ-connector. De beheerde MQ-connector bevat geen triggers.
In deze stappen wordt Azure Portal gebruikt, maar met de juiste Azure Logic Apps-extensie kunt u ook Visual Studio Code gebruiken om een standaardwerkstroom voor logische apps te maken.
Open in Azure Portal uw lege werkstroom voor logische apps in de ontwerpfunctie.
Volg deze algemene stappen om de ingebouwde MQ-trigger toe te voegen. Zie ingebouwde MQ-connectortriggers voor meer informatie.
Geef de vereiste informatie op om uw verbinding te verifiëren. Selecteer Maken als u klaar bent.
Wanneer het informatievak voor de trigger wordt weergegeven, geeft u de vereiste informatie voor de trigger op.
Sla uw werkstroom op wanneer u klaar bent. Selecteer in de werkbalk van de ontwerper Opslaan.
Een MQ-actie toevoegen
Een werkstroom voor logische apps verbruik kan alleen de beheerde MQ-connector gebruiken. Een standaardwerkstroom voor logische apps kan echter gebruikmaken van de door MQ beheerde connector en de ingebouwde MQ-connector. Elke versie heeft meerdere acties. Zo hebben zowel beheerde als ingebouwde connectorversies hun eigen acties om door een bericht te bladeren.
Acties voor beheerde connectors: deze acties worden uitgevoerd in een werkstroom voor de logische app Verbruik of Standard.
Ingebouwde connectoracties: deze acties worden alleen uitgevoerd in een standaardwerkstroom voor logische apps.
In de volgende stappen wordt Azure Portal gebruikt, maar met de juiste Azure Logic Apps-extensie kunt u ook de volgende hulpprogramma's gebruiken om werkstromen voor logische apps te maken:
Werkstromen voor logische apps voor verbruik: Visual Studio of Visual Studio Code
Standaardwerkstromen voor logische apps: Visual Studio Code
Open uw werkstroom voor logische apps in Azure Portal in de ontwerpfunctie.
Volg deze algemene stappen om de gewenste MQ-actie toe te voegen. Zie MQ-connectoracties voor meer informatie.
Geef de vereiste informatie op om uw verbinding te verifiëren. Selecteer Maken als u klaar bent.
Wanneer het actie-informatievak wordt weergegeven, geeft u de vereiste informatie op voor uw actie.
Sla uw werkstroom op wanneer u klaar bent. Selecteer in de werkbalk van de ontwerper Opslaan.
Uw werkstroom testen
Als u wilt controleren of uw werkstroom de verwachte resultaten retourneert, voert u de werkstroom uit en bekijkt u de uitvoer van de uitvoeringsgeschiedenis van uw werkstroom.
Voer uw werkstroom uit.
Logische app Verbruik: selecteer Op de werkbalk van de werkstroomontwerper de optie Uitvoeren van trigger>uitvoeren.
Standaardlogica-app: Selecteer Overzicht in het resourcemenu van de werkstroom. Selecteer Uitvoeren van trigger>uitvoeren op de werkbalk Overzichtsvenster.
Nadat de uitvoering is voltooid, toont de ontwerpfunctie de uitvoeringsgeschiedenis van de werkstroom, samen met de status voor elke stap.
Als u de invoer en uitvoer wilt controleren voor elke stap die is uitgevoerd (niet overgeslagen), vouwt u de stap uit of selecteert u deze.
Als u meer invoerdetails wilt bekijken, selecteert u Onbewerkte invoer weergeven.
Als u meer uitvoerdetails wilt bekijken, selecteert u Onbewerkte uitvoer weergeven. Als u IncludeInfo instelt op true, wordt er meer uitvoer opgenomen.
Certificaten voor verificatie weergeven en toevoegen met TLS-versleuteling (SSL)
De volgende informatie is alleen van toepassing op standaardwerkstromen voor logische apps voor de ingebouwde MQ-connector met behulp van serververificatie of serverclientverificatie met TLS-versleuteling (SSL).
Vingerafdrukken voor bestaande certificaten van openbare sleutels weergeven en bevestigen
Als u wilt controleren of de vingerafdrukken voor de vereiste certificaten voor openbare sleutels aanwezig zijn op de host van de virtuele machine van uw standaard logische app in het vertrouwde basis-CA-archief, volgt u deze stappen om het PowerShell-script uit te voeren vanuit het cert
resourcemenu van uw standaard logische app.
Open uw resource voor de logische standaard-app in Azure Portal. Selecteer In het resourcemenu van de logische app, onder Ontwikkelhulpprogramma's, Geavanceerde hulpprogramma's> Go.
Selecteer PowerShell in het menu van de Kudu-console voor foutopsporing.
Nadat het PowerShell-venster wordt weergegeven, voert u het volgende script uit vanaf de PowerShell-opdrachtprompt:
dir cert:\localmachine\root
In het PowerShell-venster worden de bestaande vingerafdrukken en beschrijvingen weergegeven, bijvoorbeeld:
Een certificaat voor een openbare sleutel toevoegen
Voer de volgende stappen uit om een openbaar sleutelcertificaat toe te voegen aan het vertrouwde basis-CA-archief op de host van de virtuele machine waarop uw standaard logische app wordt uitgevoerd:
Open uw resource voor de logische standaard-app in Azure Portal. Selecteer in het resourcemenu van de logische app onder Instellingen TLS/SSL-instellingen (klassiek).
Selecteer op de pagina TLS/SSL-instellingen (klassiek) het tabblad Certificaten voor openbare sleutel (.cer) en selecteer vervolgens Openbaar sleutelcertificaat uploaden.
Voer in het deelvenster Public Key Certificate (.cer) dat wordt geopend een naam in om het certificaat te beschrijven. Zoek en selecteer het certificaatbestand van de openbare sleutel (.cer). Wanneer u klaar bent, selecteert u Uploaden.
Nadat u het certificaat hebt toegevoegd, kopieert u vanuit de kolom Vingerafdruk de vingerafdrukwaarde van het certificaat.
Selecteer Configuratie in het resourcemenu van de logische app.
Selecteer Op het tabblad Toepassingsinstellingen de optie Nieuwe toepassingsinstelling. Voeg een nieuwe toepassingsinstelling toe met de naam WEBSITE_LOAD_ROOT_CERTIFICATES en voer de vingerafdrukwaarde van het certificaat in die u eerder hebt gekopieerd. Als u meerdere certificaatvingerafdrukken hebt, moet u elke waarde scheiden met een komma (,).
Zie Host- en app-instellingen bewerken voor Standaard logische apps in Azure Logic Apps met één tenant voor meer informatie.
Notitie
Als u een vingerafdruk opgeeft voor een privé-CA-certificaat, voert de ingebouwde MQ-connector geen certificaatvalidatie uit, zoals het controleren van de vervaldatum of bron van het certificaat. Als de standaard .NET SSL-validatie mislukt, vergelijkt de connector alleen een vingerafdrukwaarde die wordt doorgegeven aan de waarde in de WEBSITE_LOAD_ROOT_CERTIFICATES-instelling .
Als het toegevoegde certificaat niet wordt weergegeven in de lijst met certificaten voor openbare sleutels, selecteert u Vernieuwen op de werkbalk.
Een certificaat voor een persoonlijke sleutel toevoegen
Als u een certificaat met een persoonlijke sleutel wilt toevoegen aan het vertrouwde basis-CA-archief op de host van de virtuele machine waarop uw standaard logische app wordt uitgevoerd, voert u de volgende stappen uit:
Open uw logische app-resource in Azure Portal. Selecteer in het resourcemenu van de logische app onder Instellingen TLS/SSL-instellingen (klassiek).
Selecteer op de pagina TLS/SSL-instellingen (klassiek) het tabblad Certificaten voor persoonlijke sleutel (.pfx) en selecteer vervolgens Certificaat uploaden.
Zoek en selecteer in het deelvenster Certificaat voor persoonlijke sleutel toevoegen (.pfx) dat wordt geopend het certificaatbestand voor de persoonlijke sleutel (.pfx) en voer het certificaatwachtwoord in. Wanneer u klaar bent, selecteert u Uploaden.
Nadat u het certificaat hebt toegevoegd, kopieert u vanuit de kolom Vingerafdruk de vingerafdrukwaarde van het certificaat.
Selecteer Configuratie in het resourcemenu van de logische app.
Selecteer Op het tabblad Toepassingsinstellingen de optie Nieuwe toepassingsinstelling. Voeg een nieuwe toepassingsinstelling toe met de naam WEBSITE_LOAD_CERTIFICATES en voer de vingerafdrukwaarde van het certificaat in die u eerder hebt gekopieerd.
Zie Host- en app-instellingen bewerken voor Standaard logische apps in Azure Logic Apps met één tenant voor meer informatie.
Als het toegevoegde certificaat niet wordt weergegeven in de lijst met certificaten voor persoonlijke sleutels, selecteert u Vernieuwen op de werkbalk.
Wanneer u een verbinding maakt met behulp van de ingebouwde MQ-connector, selecteert u TLS gebruiken in het verbindingsinformatievak.
Voer in de eigenschap Vingerafdruk van clientcertificaat de eerder gekopieerde vingerafdrukwaarde in voor het certificaat van de persoonlijke sleutel, waarmee verificatie via de serverclient (in twee richtingen) mogelijk is. Als u geen vingerafdrukwaarde invoert, gebruikt de connector alleen serververificatie (eenrichtingsverificatie).
Problemen oplossen
Fouten met bladeren of ontvangen acties
Als u een blader- of ontvangstactie uitvoert in een lege wachtrij, mislukt de actie met de volgende headeruitvoer:
problemen met Verbinding maken ion en verificatie
Wanneer uw werkstroom gebruikmaakt van de door MQ beheerde connector om verbinding te maken met uw on-premises MQ-server, krijgt u mogelijk de volgende fout:
"MQ: Could not Connect the Queue Manager '<queue-manager-name>': The Server was expecting an SSL connection."
De MQ-server moet een certificaat opgeven dat is uitgegeven door een vertrouwde certificeringsinstantie.
Voor de MQ-server moet u de coderingsspecificatie definiëren die moet worden gebruikt met TLS-verbindingen. Voor beveiligingsdoeleinden en om de beste beveiligingssuites op te nemen, verzendt het Windows-besturingssysteem echter een set ondersteunde coderingsspecificaties.
Het besturingssysteem waarop de MQ-server wordt uitgevoerd, kiest de suites die moeten worden gebruikt. Als u de configuratie wilt vergelijken, moet u de configuratie van de MQ-server zo wijzigen dat de coderingsspecificatie overeenkomt met de optie die is gekozen in de TLS-onderhandeling.
Wanneer u verbinding probeert te maken, registreert de MQ-server een gebeurtenisbericht dat de verbindingspoging is mislukt omdat de MQ-server de onjuiste coderingsspecificatie heeft gekozen. Het gebeurtenisbericht bevat de coderingsspecificatie die de MQ-server in de lijst heeft gekozen. Werk in de configuratie van het serververbindingskanaal de coderingsspecificatie bij zodat deze overeenkomt met de coderingsspecificatie in het gebeurtenisbericht.