Bei der Gestaltung unternehmensübergreifender Schnittstellen hat das Thema Datensicherheit eine extrem hohe Relevanz. Durch das B2B-Add-on der SAP, das seit Version 7.31 integraler Bestandteil der SAP PI/PO (Process Integration/Process Orchestration) ist, können B2B-Schnittstellen unter Einhaltung höchster Sicherheitsstandards ohne zusätzliche Software oder Adapter von Fremdanbietern umgesetzt werden. In diesem Beitrag wird gezeigt, wie eine B2B-Integration mit AS2 aussehen kann, welche Herausforderungen bestehen und wie SAP PI/PO die Umsetzung unterstützt.
AS2-Protokoll
Das Protokoll AS2 dient der abhörsicheren Übertragung von Geschäftsdaten. Nachrichten, die zwischen Unternehmen ausgetauscht werden, werden mittels Zertifikaten verschlüsselt. Die Übertragung findet dabei über das Internet statt. AS2 steht in direkter Konkurrenz zu X.400, das jedoch eine separate Mailbox erfordert, die durch einen Dienstleister bereitgestellt werden muss.
Um Nachrichten zu verschlüsseln, tauschen Unternehmen über AS2 Zertifikate aus, die aus einem öffentlichen und einem privaten Schlüssel bestehen. Der eigene öffentliche Schlüssel wird dem Unternehmenspartner zur Verfügung gestellt. Mit diesem ist es unidirektional möglich, die Herkunft einer Nachricht zweifelsfrei festzustellen. Der öffentliche Schlüssel kann die Signatur des dazugehörigen privaten Schlüssels allerdings nicht imitieren. Gleiches gilt für den umgekehrten Fall.
Das Authentifizierungs-Schema läuft folgendermaßen ab:
- Eine Nachricht wird mit dem eigenen privaten Schlüssel signiert.
- Sie wird dann mit dem öffentlichen Schlüssel des Partners verschlüsselt.
- Der Partner entschlüsselt die Nachricht mit seinem eigenen privaten Schlüssel.
- Der Partner verifiziert die Signatur mit dem öffentlichen Schlüssel des Senders.
Nach der Verarbeitung wird eine sogenannte MDN (Message Disposition Notification) an den Sender zurückgeschickt. Die MDN dient als Beweis dafür, dass die Nachricht vom korrekten Empfänger erhalten wurde. Außerdem lässt sie Rückschlüsse auf eine erfolgreiche oder fehlerhafte Verarbeitung zu.
Umsetzung mit SAP PI/PO
NWA
Die eigenen Zertifikate und jene des Partners werden im SAP-NetWeaver-Administrator (NWA) in jeweiligen Keystores abgelegt. Es empfiehlt sich, für jeden Partner einen eigenen Keystore anzulegen und eindeutig zu benennen. Auf die Keystores wird dann später in der Konfiguration der Kommunikationskanäle referenziert.
Das AS2-Protokoll arbeitet im Standard ohne zusätzliche Authentifizierung mittels User/Passwort. SAP PI erfordert allerdings eine Authentifizierung am System, um Nachrichten von außen entgegenzunehmen. Um den anonymen Login zu ermöglichen, muss SAP-Hinweis 1828575 eingespielt werden.
B2B Cockpit
Im B2B Cockpit (erreichbar über die Adresse der PI/PO-Maschine: http(s)://domain.top-level-domain:port/b2bic) können Partner über das Partner Management angelegt und gepflegt werden, es ist aber für die Schnittstelle nicht erforderlich. Im EDI Content Editor können zu gängigen Nachrichtenformaten wie EDIFACT, ANSI X.12 und andere externe Definitionen heruntergeladen werden. Diese werden später in den Service Interfaces und im Mapping im ESR verwendet.
SLD
Im SLD ist es wichtig, eine eigene Softwarekomponente für die B2B-Schnittstellen anzulegen und die Komponenten B2B MAPPING KIT und B2B TOOLKIT als abhängige Softwarekomponenten zu definieren. Dadurch können beispielsweise die neuen UDFs der Mapping-Kit-Softwarekomponente wiederverwendet werden. Hier sind zu den Themen Context-Handling und Datenkonvertierung interessante Funktionen dabei.
ESR
Im ESR wird das Schnittstellendesign wie bei anderen Schnittstellen aufgebaut. Es empfiehlt sich, für die externen Definitionen aus dem B2B Cockpit sowie Message Mappings einen Common Namespace anzulegen, da diese Objekte erfahrungsgemäß für die Integration mehrerer Partner genutzt werden können.
Integration Builder
Im Directory wird für das Partnersystem ein Partner mit Kommunikationskomponente angelegt. Falls mehrere verschiedene Nachrichtentypen in einem Format empfangen werden sollen, muss zusätzlich eine Kommunkationskomponente mit dem Namen EDI_SEPARATOR konfiguriert werden. Mit einem speziellen Kommunikationskanal mit dem Adaptertyp EDI_SEPARATOR ist der Split einer eingehenden Nachricht in mehrere logische Nachrichten möglich. Für jeden Nachrichtentyp wird ein eigenes Szenario gebaut.
Die Kommunikationskanäle zu den jeweiligen Partnersystemen nutzen den Adaptertyp AS2. Für die Konfiguration der Kanäle wird auf die zuvor hinterlegten Zertifikate und Schlüssel zurückgegriffen. Die Konfiguration ist in einzelne Reiter unterteilt (Allgemein, Signatur, MDN, Sonstiges). Die Verwendung der einzelnen Zertifikate und Schlüssel ist über die Feldbeschreibung auf der Konfigurationsoberfläche ersichtlich.
Bei eingehenden AS2-Nachrichten wird eine URL festgelegt, die der jeweilige Partner aufruft. Wird beispielsweise MyPartner/orders dort eingetragen, lautet die vollständige URL http(s)://Adresse-der-PI:Port/AS2/MyPartner/orders. Diese URL ist ebenfalls wichtig, wenn eine Firewall-Freischaltung erforderlich ist. Die URL ist dann interner Zugriffspunkt. Nach außen wird eine Adresse kommuniziert, die für die IP-Adresse des sendenden Servers (des Partners) freigeschaltet ist.
Monitoring
Im B2B-Kontext sind alle Komponenten des Monitorings einsetzbar. Bei einer Dual-Stack-Implementierung der SAP PI sind das die Transaktionen im ABAP-Umfeld (wie SXMB_MONI, SM59, SMQ etc.) und die Java-Applikationen wie die Runtime Workbench. In der Single-Stack-Implementierung werden diese Aufgaben durch die PIMON abgedeckt.
Zusätzlich zu diesen Tools ist im B2B Cockpit ein Monitor eingerichtet, der speziell auf die Protokolle abgestimmt ist. Um diesen Monitor zu nutzen, müssen gegebenenfalls im NWA die Java-Systemeigenschaften angepasst werden: Java-Systemeigenschaften öffnen, dann unter „Anwendungen“ die Komponente com.sap.aii.adapter.as2.app öffnen und den Wert für b2b.log.level property auf ALL ändern.
Danach kann über das B2B Cockpit jeder Transfer über das AS2-Protokoll getrackt werden. Der Nachrichtentransfer wird dabei zusammen mit der MDN betrachtet. Dadurch ist es möglich, die erfolgreiche Übermittlung für jede Nachricht nachzuweisen.