AS2-Übertragung per Logic App zum schnellen Aufbau der Infrastruktur

In diesem Artikel wird beschrieben, wie AS2-Datenübertragungen (Senden und Empfangen) per Logic App realisiert werden können. Dabei kommen auch weitere Azure-Komponenten (Integration Account und KeyVault) sowie die zugehörigen Zertifikate zum Einsatz.

Sinnvoll ist die Nutzung von Logic Apps im AS2-Kontext insbesondere, wenn es keine bestehende Lösung (wie z. B. BizTalk) gibt und ein schneller Aufbau der Infrastruktur in Verbindung mit minimalem Verwaltungsaufwand gewünscht wird. Im Fall von Hochlastszenarien, bei denen z. B. Hunderte von Nachrichten pro Sekunde übertragen werden müssen, können spezialisierte Technologien geeigneter sein.

AS2 (Applicability Statement 2)

Bei AS2 handelt es sich um einen Internet-Übertragungsstandard für B2B-Nachrichten, der vornehmlich im Handel / eCommerce Verwendung findet. Per AS2 können beliebige Nachrichtenformate ausgetauscht werden – in der Praxis häufig XML, EDIFACT o. ä.
Durch Signaturen und Verschlüsselung wird die Datenintegrität und -sicherheit garantiert, über die zum Protokoll gehörenden MDNs kann der Absender die Zustellung beweisen.

Zertifikate

Um eine AS2-Nachricht zu versenden, benötigt der Absender zur Verschlüsselung das öffentliche Zertifikat des Empfängers (.CRT / .CER-Datei).
Für den Empfang der Nachricht braucht der Empfänger mindestens den eigenen privaten Schlüssel (.PEM-Datei) und das eigene öffentliche Zertifikat. Falls eine Überprüfung der Absender-Signierung erforderlich ist, wird ergänzend das öffentliche Zertifikat des Absender benötigt.

Azure Key Vault

Für die Speicherung des privaten Schlüssels muss der Empfänger einen Key Vault in Azure anlegen. Darin wird unter Objects / Keys ein neuer Key per Import erstellt, wobei die .PEM-Datei hochgeladen wird. Im Anschluss ist sicherzustellen, dass die erforderlichen Operationen erlaubt sind.

Die zu erstellende Logic App benötigt Zugriff auf den Key Vault, was am besten über einen Service Principal oder eine Managed Identity geschieht.

Die sendende Logic App hat keine Verbindung zum Key Vault. Es werden auch keine öffentlichen Zertifikate im Key Vault abgelegt.

Azure Integration Accounts

Im Integration Account werden die AS2-spezifischen Grundeinstellungen des Nachrichtenaustauschs definiert. Es wird pro Übertragungsrichtung zwischen zwei Partnern jeweils ein Account benötigt: Wenn eine Logic App entwickelt wird, die z.B. Bestellungen von Kunde-A an Lieferant-A sendet, so kann der zugehörige Integration Account nicht gleichzeitig an die Logic App angebunden werden, die auf Seiten von Lieferant-A die Bestellungen empfängt.
Dies liegt daran, dass in einem Integration Account nur ein Agreement pro Partner-Kombination erstellt werden kann.
Es ist aber kein Problem, in diesem Account zusätzlich Artefakte für die Kommunikation z. B. zwischen Kunde-B und Lieferant-B zu verwalten.

Die folgenden Ausführungen beschreiben das Senden und Empfangen von Nachrichten zwischen zwei Partnern, deshalb werden auch zwei Integration Accounts erstellt.

Integration Account 1 (Absender schickt Nachricht an Empfänger)

Partner

Für Sender und Empfänger wird jeweils ein Eintrag erstellt. Als Qualifier fungiert
AS2 Identity, der Wert ist meistens eine Integer-Nummer
(wird von den beteiligten Partnern zur Verfügung gestellt).

Certificate

Als Zertifikat wird das öffentliche Zertifikat des Empfängers hinzugefügt. Das Zertifikat ist eine .CER- oder .CRT-Datei.

Agreement

Ein Agreement definiert die Beziehung zwischen den AS2-Nachrichten austauschenden Partnern. In diesem Fall fungiert der Absender als Host Partner und der Empfänger als Giest Partner. Es werden nur die Send Settings gesetzt. Dabei ist Enable message encryptionzu aktivieren und das im vorigen Schritt erstellte Zertitikat auszuwählen. In vielen Fällen muss außerdem Request MDN aktiviert werden, damit dem Empfänger mitgeteilt wird, dass eine Eingangsbestätigung benötigt wird.

Integration Account 2 (Empfänger erhält Nachricht vom Absender)

Partner

Für Sender und Empfänger wird jeweils ein Eintrag erstellt. Als Qualifier fungiert AS2 Identity, der Wert ist meistens eine Integer-Nummer
(wird von den beteiligten Partnern zur Verfügung gestellt).

Certificate

Als Zertifikat wird das öffentliche Zertifikat des Empfängers hinzugefügt. Das Zertifikat ist eine .CER- oder .CRT-Datei. Beim Hinzufügen des Zertifikats wird aber der Certificate Type Privateausgewählt und eine Verbindung zu dem im Key Vault hinterlegten privaten Schlüssel hergestellt.

Optional kann noch das öffentliche Zertifikat des Absenders hinzugefügt werden. Dies ist notwendig, wenn im Empfangs-Agreement das Signieren durch den Absender vorausgesetzt wird.

Agreement

Ein Agreement definiert die Beziehung zwischen den AS2-Nachrichten austauschenden Partnern. In diesem Fall fungiert der Empfänger als Hoste Partnerund der Absender als Guest Partner. Es werden nur die Receive Settingsgesetzt. Dabei ist Message should be encrypted zu aktivieren und das im vorigen Schritt erstellte Empfänger-Zertitikat auszuwählen. In vielen Fällen muss außerdem Send MDNaktiviert werden, damit dem Absender eine Eingangsbestätigung zugestellt wird.

Logic Apps

Logic App 1 (Absender schickt Nachricht an Empfänger)

Die sendende Logic App erstellt eine AS2-Nachricht und schickt diese an die Empfänger-Logic App. Bei AS2-From und AS2-Tosind die (Integer-)Werte der AS2Identity der jeweiligen Partner einzutragen. Durch die zu setzende Verbindung zum Absender-Integration Account kann das richtige Agreement für die Nachrichtenerstellung automatisch herausgesucht werden.

Bei dieser Logic App wird der ältere AS2-Connector verwendet, der neuere (AS2 (v2)) funktioniert aber sehr ähnlich. Bei diesem wird dich Verbindung zum Integration Account allerdings nicht im AS2-Shape, sondern in den Workflow settings der Logic App hergestellt.

Wenn die erstellte AS2-Nachricht (wie in diesem Beispiel) an eine andere Logic App geschickt wird, muss der Body im HTTP Request als Binary übertragen werden.
Dies lässt sich im Code view der Logic App anpassen.

Logic App 2 (Empfänger erhält Nachricht vom Absender)

Die Empfänger-Logic App benötigt nur wenige Angaben, da Informationen wie Sender- und Empfänger-Identitäten bereits in der AS2-Nachricht enthalten sind. In diesem Fall wird eine Verbindung zum Empfänger-Integration Account hergestellt.

Der Content der Nachricht wird als Base64 übertragen.

Das Decoding des Contents zeigt, dass der Message Body korrekt übertragen und entschlüsselt wurde. 

Sie haben Fragen oder möchten mehr über unsere Produkte und Dienstleistungen erfahren?
Kontaktieren Sie uns jetzt über unser Kontaktformular!

Data Passion Milen & Carsten
Data Passion Milen & Carsten
HABEN WIR
IHR INTERESSE
GEWECKT?
Schreiben Sie uns eine kurze E-Mail oder rufen Sie uns einfach an! Wir kümmern uns um Ihr Anliegen innerhalb der nächsten 24 Stunden.

Tel.: +49 (40) 6963816–0
Tel.: +49 (151) 1176898-0
E-Mail: [email protected]

Kontaktanfrage

Kontaktanfrage