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.
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 fungiertAS2 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 encryption
zu 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
Private
ausgewä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 Partner
und der Absender als Guest Partner
. Es werden nur die Receive Settings
gesetzt. 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 MDN
aktiviert 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-To
sind 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.
Logic App 2 (Empfänger erhält Nachricht vom Absender)
Sie haben Fragen oder möchten mehr über unsere Produkte und Dienstleistungen erfahren?
Kontaktieren Sie uns jetzt über unser Kontaktformular!