Integration von SAP mithilfe der SAP-IDoc-Snaps (Teil 4/4)

Porträtfoto von Ingo Sauerzapf
10 min gelesen
Fassen Sie dies mit AI zusammen

Dieser letzte Teil der vierteiligen Serie über SAP-IDocs bildet den Abschluss der Serie über Integration von SAP mithilfe von SAP IDoc Snaps ab, indem wir uns die Kommunikation zwischen den SAP IDoc Snaps und dem SAP-System ansehen und wie man diese mithilfe von Secure Network Communication (SNC) zwischen den beiden sichern kann. Wir werden uns damit befassen, wie man die für SNC erforderlichen SAP-Bibliotheken zu den Knoten Ihrer Groundplexes hinzufügt, wie man die auf beiden Seiten benötigten Zertifikate generiert und teilt, und wir zeigen Ihnen, welche JCO-Parameter Sie einstellen müssen, um SNC bei der Verbindung mit dem SAP-System zu verwenden.

Voraussetzungen für sichere Netzwerkkommunikation (SNC)

Um die Kommunikation zwischen Ihrem Groundplex und dem SAP-System zu sichern, müssen Sie müssen SAP-Kryptografie-Bibliotheken herunterladen und zu jedem Knoten Ihres Groundplex hinzufügen. Für den Download ist ein SAP-Service-Benutzer (S-User) mit der Berechtigung zum Herunterladen von Software von SAP auf dem SAP for ME herunterzuladen. Klicken Sie auf der Seite im Menü auf der linken Seite auf „Services & Support“, klicken Sie auf die Kachel „Software herunterladen“ und wählen Sie auf dem nächsten Bildschirm INSTALLATIONS & UPGRADES. Wählen Sie in der angezeigten Liste By Alphabetical Index (A-Z) -> C. Navigieren Sie zu SAP CRYPTOGRAPHIC SOFTWARE -> SAPCRYPTOLIB und dann COMMONCRYPTOLIB 8. Wählen Sie Ihr Betriebssystem aus und laden Sie dann die neueste *.SAR-Datei mit den Bibliotheken herunter.

Zusätzlich benötigen Sie die SAP-Version von tar namens „sapcar“, die Sie unter „Software herunterladen“ im SAP for ME Software Center . Wichtig ist, dass Sie die Suchfunktion auf der Seite „Software herunterladen“ verwenden, um die Datei zu finden, und nicht die Suchfunktion oben auf der Seite.

Screenshot 2024-06-03 um 13:40:21 Uhr.png

Fügen Sie die Bibliotheken auf Ihren GroundPlex-Knoten hinzu und konfigurieren Sie sie.

Um diesen Blog übersichtlich zu halten, werden wir den Vorgang anhand eines Linux-basierten Knotens erläutern, aber es sollte kein Problem sein, den Vorgang auf Windows-basierte Knoten zu übertragen.

Wenn Sie mehrere Knoten in Ihrer Groundplex-Konfiguration haben, empfehlen wir, die Dateien zunächst nur auf einen Knoten hochzuladen, dort die gesamte Konfiguration durchzuführen und anschließend alle Dateien auf die übrigen Knoten zu verteilen. 

Sobald Sie die Dateien *.SAR und SAPCAR*.EXE auf dem Knoten haben, verbinden Sie sich per SSH mit dem Knoten und wechseln Sie zum root-Benutzer , um die Konfiguration zu vereinfachen. Erstellen Sie ein Verzeichnis für die Dateien unter /opt/sapsnc und verschieben Sie beide Dateien in den neu erstellten Ordner. Navigieren Sie in das Verzeichnis und entpacken Sie die Dateien mit dem sapcar-Tool, indem Sie die folgenden Befehle ausführen:

$> mkdir -p /opt/sapsnc
$> mv *.SAR SAPCAR* /opt/sapsnc
$> ./spacar -xvf <SAR-filename>.SAR

Im Archiv finden Sie die libsapcrypto.* und das Befehlszeilentool sapgenpse. Die Datei libsapcrypto.* ist die kryptografische Bibliothek, während die sapgenpse-Tools Sicherheitsinformationen wie öffentliche und private Schlüssel, Zertifikate und Vertrauenslisten in Dateien der persönlichen Sicherheitsumgebung (*.pse) verwalten.

Wir empfehlen Ihnen, auch die Datei SAPCAR*.EXE in sapcar umzubenennen und sie als ausführbare Datei zu speichern.

$> mv SAPCAR*.EXE sapcar
$> chmod 754 sapcar

Der nächste Schritt besteht darin, die mit Ihrem Groundplex gelieferten SAP JCo-Bibliotheken auf die kryptografische Bibliothek aufmerksam zu machen. Dazu müssen Sie eine OS-Umgebungsvariable erstellen, die von Ihrer Groundplex-Installation erkannt wird. Es gibt viele Möglichkeiten, dies zu erreichen, aber die einfachste besteht darin, die Umgebungsvariable zur Datei /etc/environment auf jedem Knoten hinzuzufügen und dann den JCC-Prozess neu zu starten.

$> echo "SECUDIR=/opt/sapsnc" >> /etc/environment

Sobald der Prozess neu gestartet wurde, können Sie das Tool sapgenpse verwenden, um die *.pse-Datei zu generieren.

$> sapgenpse gen_pse -v -p SGP.pse
Got absolute PSE path "/opt/sapsnc/SGP.pse".
Please enter PSE PIN/Passphrase: ********
Please reenter PSE PIN/Passphrase: ********
get_pse: Distinguished name of PSE owner: CN=SGP, OU=IT, O=SnapLogic, C=US
 Supplied distinguished name: "CN=SGP, OU=IT, O=SnapLogic, C=US"
 Creating PSE with format v2 (default)
 succeeded.
 certificate creation... ok
 PSE update... ok
 PKRoot... ok

Sie werden nach einer PIN/Passphrase für die zu erstellende Datei und nach dem Distinguished Name des PS-Besitzers gefragt. Der Distinguished Name sollte den Unternehmensstandards für X.509 Distinguished Names entsprechen. Wenn das Programm die PSE-Datei erstellt hat, sehen Sie eine Datei mit dem von Ihnen angegebenen Namen.
Im nächsten Schritt müssen Sie das Client-Zertifikat aus der soeben erstellten PSE-Datei exportieren und in das SAP-System importieren. Der Befehl fragt nach der PIN/Passphrase der Datei „SGP.pse“ und exportiert dann das Client-Zertifikat in die Datei „SGP.crt“.

$> ./sapgenpse export_own_cert -v -p SGP.pse -o SGP.crt
 Opening PSE "/opt/sapsnc/SGP.pse"...
 No SSO credentials found for this PSE.
Please enter PSE PIN/Passphrase: ********
 PSE (v2) open ok.
 Retrieving my certificate... ok.
 Writing to file (PEM-framed base64-encoded)... ok.

Laden Sie die neu erstellte Datei „SGP.crt“ herunter und importieren Sie sie über die SAP GUI in Ihr SAP-System. Sie können das Client-Zertifikat über die Transaktion STRUSTSSO2 importieren. Öffnen Sie zunächst den Knoten „SNC (SAPCryptolib)“ in der Baumstruktur auf der linken Seite. Klicken Sie auf „Zertifikat importieren“, stellen Sie im Popup-Fenster das Dateiformat auf „Base64“ ein, sofern diese Option verfügbar ist, und wählen Sie die Datei aus.

Screenshot 2024-06-03 um 15:32:40 Uhr.png

Nach dem Hochladen werden die Zertifikatsdetails im Abschnitt „Zertifikat“ in der Mitte des Bildschirms angezeigt. Wechseln Sie nun mit der Schaltfläche Bearbeitungsmodus oben und dann auf die Schaltfläche Zur Zertifikatsliste hinzufügen , um das Zertifikat zur Liste der bekannten Zertifikate hinzuzufügen.

Screenshot 2024-06-03 um 15:40:20 Uhr.png

Genauso wie Sie das Client-Zertifikat des SAP-Systems zu Groundplex hinzugefügt haben, müssen Sie nun das Client-Zertifikat des SAP-Systems zu Groundplex hinzufügen. Dazu müssen Sie zunächst das Client-Zertifikat aus dem SAP-System herunterladen, es dann auf den Groundplex-Knoten hochladen, den Sie zum Generieren der Groundplex-PSE-Datei verwendet haben, und das Client-Zertifikat des SAP-Systems zur PSE-Datei hinzufügen.

Um das SAP-Client-Zertifikat aus der Transaktion STRUSTSSO2 zu exportieren, doppelklicken Sie im Abschnitt „Eigenes Zertifikat“ auf den Namen des Zertifikatsinhabers. Das Client-Zertifikat wird dann weiter unten im Abschnitt „Zertifikat“ angezeigt. Klicken Sie anschließend auf die Schaltfläche „Zertifikat exportieren“, um das Zertifikat zu exportieren. Wählen Sie im Download-Popup-Fenster „Base64“ als Dateiformat aus und laden Sie das Zertifikat herunter.

Screenshot 2024-06-03 um 15:53:29 Uhr.png

Der letzte Schritt besteht darin, das SAP-Client-Zertifikat auf Ihren Groundplex-Knoten hochzuladen und es zur Groundplex-PSE-Datei hinzuzufügen.

./sapgenpse maintain_pk -v -a S4H.crt -p SGP.pse
 Opening PSE "/opt/sapsnc/SGP.pse"...
 No SSO credentials found for this PSE.
Please enter PSE PIN/Passphrase: ********
 PSE (v2) open ok.
 retrieving PKList
 Adding new certificate from file "S4H.crt"
----------------------------------------------------------------------------
Subject               :   CN=S4H
Issuer                :   CN=S4H
Serialno              :   0A:20:23:06:15:07:17:01
KeyInfo               :   RSA, 2048-bit
Validity  -  NotBefore:   Thu Jun 15 07:17:01 2023 (230615071701Z)
             NotAfter:   Fri Jan  1 00:00:01 2038 (380101000001Z)
KeyUsage              :   none
ExtKeyUsage           :   none
SubjectAltName        :   none
----------

 PKList updated (1 entries total, 1 newly added)

Nachdem wir das SAP-Client-Zertifikat zur pse-Datei hinzugefügt haben, müssen wir eine Datei namens cred_v2 erstellen, um den SAP Snaps einen sicheren Zugriff auf die PSE zu ermöglichen, ohne das Passwort anzugeben. Verwenden Sie dazu den folgenden Befehl:

./sapgenpse seclogin -p SGP.pse -O root
 running seclogin with USER="root"
 creatingcredentials for yourself (USER="root")...
Please enter PSE PIN/Passphrase: ********
 Added SSO-credentials for PSE "/opt/sapsnc/SGP.pse"

Wenn Ihr Groundplex mehrere Knoten hat, müssen Sie nun das gesamte Verzeichnis /opt/sapsnc auf jeden Knoten verteilen und die Umgebungsvariable SECUDIR setzen, bevor Sie mit der Konfiguration von SNC für Ihre SnapLogic SAP-Konten fortfahren können. 

Konfigurieren der SAP JCo-Konten in SnapLogic für die Verwendung von SNC

Auf der SnapLogic-Seite wird SNC innerhalb des SAP Jco-Kontos als „Erweiterte JCo-Client-Eigenschaften” konfiguriert. Die folgenden Parameter müssen mindestens verwendet werden:

  • jco.client.snc_mode, Aktiviert/deaktiviert die Verwendung von Secured Network Communications (SNC).
  • Der Standardwert ist auf 0 gesetzt. Mögliche Werte sind 0: Nicht aktiviert, 1: Aktiviert. 
  • jco.client.snc_partnername, legt den Distinguished Name des SAP-Systems fest, dem ein „p:“ vorangestellt ist:
  • Der SNC-Name des SAP-Anwendungsservers ist im Profilparameter snc/identity/as
  • jco.client.snc_myname legt den Distinguished Name von GroundPlex fest, dem ein „p” vorangestellt ist:
  • jco.client.snc_lib, legt den Pfad zu der Bibliothek fest, die den SNC-Dienst bereitstellt.

Je nach Bedarf können Sie zusätzliche Parameter festlegen, wie zum Beispiel:

  • jco.client.snc_qop legt die Sicherheitsstufe der gesicherten Netzwerkverbindungen fest. Der Standardwert ist 3; mögliche Werte sind 1: Nur Authentifizierung, 2: Integritätsschutz, 3: Datenschutz und 8: Verwenden Sie den Wert des SAP-Anwendungsserver-Parameters snc/data_protection/use.
  • jco.client.snc_sso konfiguriert die Verbindung so, dass das Client-Zertifikat als Passwort für den angegebenen Benutzer verwendet wird.
  • Der Standardwert ist auf 1 gesetzt. Mögliche Werte sind 0: Single Sign-On-Protokoll deaktiviert, 1: Single Sign-On-Protokoll aktiviert. Wenn Sie das Clientzertifikat nicht verwenden möchten, sondern das angegebene Kennwort verwenden möchten, müssen Sie diesen Wert explizit auf 0 setzen.

Es ist wichtig zu wissen, dass das Client-Zertifikat, wenn Sie es als Benutzerkennwort verwenden möchten, nicht als Systemzertifikat auf dem SAP-Server konfiguriert sein darf. Im nächsten Abschnitt beschreiben wir, wie Sie überprüfen können, ob es konfiguriert ist.

Screenshot vom 04.06.2024 um 15:02:43 Uhr.png

Betrachtung der verschiedenen Optionen für SNC innerhalb des SAP-Systems

Um SNC nutzen zu können, ist es wichtig zu wissen, dass das SAP-System dafür konfiguriert sein muss. In diesem Blog werden wir nicht darauf eingehen, wie dies geschieht, da wir davon ausgehen, dass Ihr SAP-Team dies bereits getan hat. Sie sollten Ihr SAP-Team nach den vorgenommenen Konfigurationseinstellungen fragen, um die Konfiguration auf der SnapLogic-Seite entsprechend vorzunehmen. Zu diesem Zweck besprechen wir kurz Ihre Optionen in SAP für SNC und Single Sign-On auf Basis von SCN. Die Profilparameter, die festlegen, wie Clients eine Verbindung zum SAP-System herstellen dürfen, sind:

snc/accept_insecure_rfc = 1
snc/accept_insecure_gui = 1
snc/accept_insecure_cpic = 1

Hier ist der Parameter snc/accept_insecure_rfc für uns wichtig . Wenn der Wert auf auf 0, lehnt das System ungeschützte externe RFCs ab. 1 erlaubt das System die Annahme aller ungeschützten RFCs und U ermöglicht es dem System, ungeschützte externe RFCs für diejenigen Benutzer zu akzeptieren, die in ihrem Benutzerstammsatz das entsprechende Kennzeichen gesetzt haben.

Wenn wir uns den Benutzerstammsatz in der SAP-Transaktion SU01 ansehen, haben wir haben wir die Möglichkeit, den Distinguished Name des Client-Zertifikats anzugeben, das der Benutzer verwenden soll. Wenn der Parameter snc/accept_insecure_rfc auf 0 gesetzt ist, müssen Sie den Distinguished Name eines Client-Zertifikats für jeden Benutzer angeben, der sich am SAP-System anmelden möchte. Natürlich muss dieses Client-Zertifikat wie zuvor beschrieben in der Transaktion STRUSTSSO2 zur Konfiguration hinzugefügt werden.

Wenn snc/accept_insecure_rfc auf U gesetzt ist, können Sie den Distinguished Name angeben, aber auch die Option „Passwortanmeldung für SAP GUI zulassen (benutzerspezifisch)“ verwenden, wie im Screenshot gezeigt, um die Anmeldung per Passwort zu ermöglichen.

Screenshot 2024-06-04 um 17:15:17 Uhr.png

Überprüfen Sie außerdem die SAP-Transaktion SNC0, um sicherzustellen, dass das Client-Zertifikat nicht als Zertifikat für die Zugriffskontrolle (ACL) für Systeme aufgeführt ist. Ist dies der Fall, müssen Sie entweder das Zertifikat aus dieser Liste entfernenoder oder können dieses Client-Zertifikat als Passwort verwenden. Sie müssen entweder Ihr jco.client.snc_myname in ein anderes Zertifikat ändern oder zur Passwortanmeldung wechseln, indem Sie jco.client. snc_so auf 0 setzen.

Screenshot 2024-06-04 um 17:16:29 Uhr.png
Porträtfoto von Ingo Sauerzapf
Senior Professional Services Architect bei SnapLogic
Kategorie: Technik