Secure Network Communications (SNC)

Dieser Artikel fasst die wichtigsten Aspekte von SNC zusammen und veranschaulicht die Konfiguration im SAP ABAP als auch im JAVA Umfeld.

Einsatzmöglichkeiten

Secure Network Communications (SNC) integriert ein externes Sicherheitsprodukt in SAP-Systeme. Durch SNC erhöht sich die Sicherheit, indem zusätzliche, von einem externen Produkt bereitgestellte Sicherheitsfunktionen genutzt werden, die in SAP-Systemen nicht direkt verfügbar sind.
SNC schützt die Datenkommunikationspfade zwischen verschiedenen Client- und Serverkomponenten des SAP-Systems, die das SAP-Protokoll RFC oder DIAG verwenden. Es gibt Kryptofunktionen, die von den verschiedenen Sicherheitsprodukten implementiert wurden. Mittels SNC können diese Algorithmen Netzwerkverbindungen sichern. Wenn Protokolle wie HTTP im SAP Umfeld gesichert werden sollen kommt hier nicht SNC, sondern das Secure-Sockets-Layer-Protokoll (SSL-Protokoll) zum Einsatz.

  • SNC sichert die Datenkommunikationspfade zwischen verschiedenen Client- und Serverkomponenten des SAP-Systems.
  • SNC bietet Sicherheit auf der Anwendungsebene und End-to-End-Security. Die gesamte Kommunikation zwischen zwei mit SNC geschützten Komponenten wird gesichert (z. B. zwischen dem SAP GUI for Windows und dem Anwendungsserver).
  • Es können zusätzliche Sicherheitsfunktionen verwendet werden, die SAP nicht direkt anbietet (z. B. die Verwendung von Smartcards).
  • Das Sicherheitsprodukt kann jederzeit ausgetauscht werden, ohne die betriebswirtschaftlichen Anwendungen des SAP-Systems zu beeinträchtigen.

Von SNC unterstützte Sicherheitsgrade

SNC bietet die Möglichkeit folgende Sicherheitsgrade zu verwenden:

  • nur AuthentifizierungWenn nur Authentifizierung verwendet wird, verifiziert das System die Identität der Kommunikationspartner. Dies ist der Mindestschutzgrad, den SNC anbietet. Es gibt keinen tatsächlichen Datenschutz, das bedeutet, dass lediglich überprüft wird, ob der Absender der Daten tatsächlich der ist, für den er sich ausgibt. Die Daten im Payload können mit gelesen oder sogar verändert werden!
  • Schutz der IntegritätWenn Schutz der Integrität verwendet wird, ermittelt das System alle Änderungen oder die Manipulation der Daten, die zwischen den beiden Endpunkten einer Kommunikation aufgetreten sein könnten. Die Daten werden unverschlüsselt übertragen und können zwar nicht mehr verändert werden (das merken die Kommunikationsteilnehmer), jedoch immer noch mit gelesen.
  • Schutz der VertraulichkeitWenn der Schutz der Vertraulichkeit verwendet wird, verschlüsselt das System die übertragenen Nachrichten, wodurch ein Abhören nutzlos wird. Der Schutz der Vertraulichkeit beinhaltet auch den Schutz der Integrität der Daten. Hierbei handelt es sich um den höchsten SNC-Sicherheitsgrad. Dieser SNC Sicherheitsgrad sollte immer gewählt werden, um eine sichere Datenübertragung gewährleisten zu können.

SNC Einschränkungen

Das verwendete Sicherheitsprodukt mit dem SNC realisiert wird muss folgende Anforderungen erfüllen:

  • Das Produkt muss den vollen Funktionsumfang der Standardschnittstelle GSS-API V2 (Generic Security Services Application Programming Interface Version 2) bereitstellen. Über diese Schnittstelle kommuniziert SNC mit dem externen Sicherheitsprodukt.
  • Die Funktionen müssen dynamisch geladen werden können.
  • Das Produkt muss auf von SAP unterstützten Plattformen verfügbar sein.
  • Das Produkt muss durch SAP zertifiziert sein.

Die SAP Cryptographic Library ist ein Produkt, kostenlos für SNC-Verbindungen zwischen Systemkomponenten zur Verfügung steht.

Wichtige Begriffe rund um SNC

Generic Security Services Application Programming Interface Version 2 (GSS-API V2)

GSS-API V2 ist eine von der Internet Engineering Task Force (IETF) entwickelte Standardschnittstelle für Sicherheitsfunktionen. SNC verwendet GSS-API V2 als Standardschnittstelle für Funktionsaufrufe zu externen Sicherheitsprodukten.

Credentials

Credentials sind benutzer- oder komponentenspezifische Informationen, die es dem Benutzer oder der Komponente gestatten, auf die eigenen Sicherheitsinformationen zuzugreifen. Die Credentials können sich z. B. in einer geschützten Datei im Dateisystem befinden. Oftmals haben sie eine begrenzte Gültigkeitsdauer. Die Credentials eines Benutzers können z. B. angelegt werden, wenn er sich an einem System anmeldet, und gelöscht werden, wenn er sich abmeldet.

Externer Name

Der externe Name ist die Identifizierung eines Benutzers oder einer Komponente (z. B. eines Anwendungsservers) bei einem externen Sicherheitssystem. Das externe Sicherheitsprodukt weist den externen Namen des Benutzers zu und pflegt ihn.

SNC-Name

Das SAP-System verwendet nicht den externen Namen, sondern eine erweiterte Version des externen Namens, den so genannten SNC-Namen. Den SNC-Namen erhält man,  indem man dem externen Benutzernamen ein Präfix hinzufügt, das den Namenstyp angibt. Im Präfix kann auch eine optionale <Produkt>-Angabe verwendet werden.

SNC-Formate:

  • normales Format:         <Namenstyp>:<externer Name>
  • erweitertes Format:      <Namenstyp>/<Produkt>:<externer Name>

Dabei haben die Platzhalter folgende Bedeutung:

<Namenstyp> bezeichnet die Namenstypsyntax und kann einer der folgenden Werte sein:

  • p produktspezifischer, druckbarer Standardname
  • s hostbezogene Form des Service-Namens
  • u Benutzername

Die Standardnamen sind produktspezifisch. SECUDE verwendet z. B. standardmäßig X.500-Namen. Kerberos verwendet Kerberos-eigene Namen (principal names).

<Produkt> bezeichnet das verwendete Sicherheitsprodukt und kann derzeit einer der folgenden Werte sein:

  • krb5    Kerberos
  • secude      SECUDE
  • sapntlm    von SAP geliefertes Kennzeichen für den Windows LAN Manager Security Service Provider (NTLMSSP) auf Win32-Plattformen.

Wenn die Angabe <Produkt> weglassen wird, verwendet das System das derzeit aktive Produkt für die Bestimmung der Namenssyntax. <externer Name> gibt den externen Namen des Benutzers an, unter dem er dem Sicherheitsprodukt bekannt ist. Bei der Definition und beim Referenzieren von SNC-Namen sollte darauf geachtet werden das Namenstyppräfix anzugeben.

Beispiele für SNC-Namen:

  • p:CN=wessel, OU=Administration, O=Wesselonline, C=DE
  • p:wessel@server.de
  • s:sap19@server
  • p/secude:CN=wessel, OU=Administration, O=Wesselonline, C=DE
  • p/krb5:wessel@server.de
  • s/krb5:sap19@server

SNC-Namen sollten nicht länger als 80 druckbare Zeichen sein. Weitere Informationen finden findet man in der SAP Note #184277.

Kanonischer Name

Ein X.500-Name kann unterschiedliche Formen haben und wird vom SAP-System in ein Standardformat konvertiert, das als kanonischer Name bezeichnet wird. (Für die Konvertierung verwendet das SAP-System eine GSS-API-V2-Funktion.)

Sicherheitsgrad

Quality of Protection (QoP)
Der Sicherheitsgrad gibt an, wie eine Verbindung geschützt wird (nur Authentifizierung, Schutz der Integrität oder Schutz der Vertraulichkeit). Der Sicherheitsgrad sollte wenn möglich immer auf die höchstmögliche Stufe (3) gestellt werden. Nur mit dieser Einstellung ist die Vertraulichkeit, Integrität und Authentifizierung sichergestellt.

Mit SNC geschützte Verbindung

Unter einer SNC-Verbindung versteht man die Kommunikation zwischen zwei Komponenten, bei der alle übertragenen Informationen und Daten mit den SNC-Funktionen geschützt werden. Die SNC-Funktionen sind in die SAP-Systemkomponenten (z. B. AS-ABAP-System-Kernel, SAP GUI oder RFC-Bibliothek) als Schicht zwischen der Kernel-Schicht und der Bibliothek des externen Sicherheitsprodukts integriert.

SNC Kommunikationsablauf

Bei der Initialisierung von SNC lädt das System dynamisch die Funktionen der externen Bibliothek. Sind die externen Komponenten geladen verwendet die SNC-Schicht die Funktionen der externen Bibliothek, um die Nachrichten entsprechend zu verarbeiten (z. B. um sie zu verschlüsseln). Die SNC-Schicht greift auf die externe Bibliothek über die Schnittstelle GSS-API V2 zu.

Die durch SNC bearbeiteten Daten sendet das System auf die übliche Art und Weise über die SAP-Netzwerk-Schnittstelle. Beim Empfängersystem werden die empfangenen Nachrichten über die entsprechenden Funktionen der externen Bibliothek in ähnlicher Weise umgekehrt verarbeitet (z. B. Entschlüsselung). Alle an der Kommunikation beteiligten Komponenten müssen eine Bibliothek verwenden, die dieselben GSS-API-V2-Funktionen implementiert. Werden verschiedene Komponenten verwendet, kann seitens SAP  keine Interoperabilität garantiert werden.

Anforderungen an externe Produkte

Ein Sicherheitsprodukt muss die folgenden Anforderungen erfüllen, um mit SAP-Systemen eingesetzt werden zu können:

  • Das Produkt muss den vollen Funktionsumfang der GSS-API-V2-Schnittstelle bereitstellen.
  • Die Funktionen müssen dynamisch geladen werden können.
  • Das Produkt muss auf von SAP-Systemen unterstützten Plattformen verfügbar sein.
  • Das Produkt muss durch SAP zertifiziert sein.

Zum Anlegen der SNC-Namen den Report RSUSR300 verwenden:

Den externen Namen für einen Benutzer nach Möglichkeit aus dem Benutzernamen im SAP-System und Konstanten, die für alle Benutzer identisch sind zusammensetzen. Bei X.500-Namen können für das CN-Element der Benutzername im SAP-System verwendet werden (CN = wessel in Beispiel 1) und für die anderen Elemente (OU, O, C) Konstanten, die für alle Benutzer gleich sind. Dasselbe gilt für den externen Namen für SAP-Systemkomponenten, wie z. B. den Anwendungsserver. Der externe Name sollte aus einer serverspezifischen Komponente und konstanten Komponenten aufgebaut werden.

Für die serverspezifische Komponente folgende Syntax:
sap<Systemnummer>.<Servername>

Für den Anwendungsserver mit der Systemnummer 19 auf dem Server bergamo ergibt sich der folgende externe Name:
CN=sap19.server, OU=Administration, O=Wesselonline, C=DE

Wenn eine derartige Namenskonvention definiert ist, können die SNC-Namen der Benutzer und Komponenten im SAP-System mit dem Report RSUSR300 automatisch erstellt werden.

Kommunikationsverbindungen mit SNC-Unterstützung

Kommunikationsverbindungen des SAP-Systems

Die folgenden Systemkomponenten sind an dem Kommunikationsschema des SAP-Systems beteiligt:

  • SAP GUI for Windows
  • Application Server ABAP (AS-ABAP)
  • Application Server Java (AS-Java)
  • Externe RFC-Programme
  • Externe CPIC-Programme
  • SAPlpd
  • SAProuter

Daraus ergeben sich die folgenden Kommunikationsverbindungen, die die Tabelle unten zeigt:

Von ® Zu Mit Siehe
SAP GUI for Windows ® AS ABAP Dialog / RFC SNC-Konfiguration: SAP GUIàAS ABAP
Externes Programm ® AS ABAP RFC SNC konfigurieren: Externe Programme®AS ABAP über RFC
Externes Programm ® AS ABAP CPIC SNC konfigurieren: Externe Programme®AS ABAP über CPIC
AS ABAP ® AS ABAP RFC SNC-Konfiguration: Verwendung von RFC vom AS ABAP aus
AS ABAP ® AS ABAP CPIC SNC-Konfiguration: Verwendung von CPIC vom AS ABAP aus
AS ABAP ® Externes Programm (das auf einem Anwendungsserver läuft) RFC RFC: TCP/IP-Verbindung – Start eines externen Programms auf AS ABAP
AS ABAP ® Externes Programm (das auf einem expliziten Host läuft) RFC RFC: TCP/IP-Verbindung – Start eines externen Programms auf expliziten Host
AS ABAP ® Externes Programm (über SAP GUI gestartet) RFC RFC: TCP/IP-Verbindung – Start eines externen Programms über SAP GUI
AS ABAP ® Externes Programm (registriertes Programm) RFC RFC: TCP/IP-Verbindung – Registriertes Programm
AS ABAP ® Externes Programm (über ein Gateway gestartet) CPIC CPIC: Externes Programm über ein Gateway starten
AS ABAP ® Externes Programm (registriertes Programm) CPIC CPIC: Registriertes Programm
AS ABAP ® AS Java RFC RFC: TCP/IP-Verbindung – Registriertes Programm
AS Java ® AS ABAP RFC SNC konfigurieren: Externe Programme®AS ABAP über RFC
AS ABAP ® SAPlpd SNC-Konfiguration: Drucken
SAProuter ® SAProuter SNC konfigurieren: SAProuter®SAProuter

Allgemeine SNC-Konfiguration:

SNC schützt die logische Verbindung zwischen zwei Endpunkten einer Kommunikation. Die Verbindung wird von einer Seite initiiert (Initiator) und von der anderen Seite akzeptiert (Akzeptor). Wenn z.B. ein SAP GUI einen Dialog mit dem Anwendungsserver des SAP-Systems beginnt, ist das SAP GUI der Initiator der Kommunikation und der Anwendungsserver der Akzeptor. Beide Seiten der Kommunikationsverbindung müssen SNC-Optionen angeben.

Der Initiator muss Folgendes angeben:

  • ob die Kommunikation mit SNC geschützt werden soll
  • den SNC-Namen des Kommunikationspartners (Zielname)
  • den Ablageort der eigenen externen Bibliothek
  • den zu verwendenden Sicherheitsgrad

Der Akzeptor muss Folgendes angeben:

  • ob er ausschließlich mit SNC geschützte Verbindungen akzeptiert
  • den eigenen SNC-Namen
  • den Ablageort der eigenen externen Bibliothek
  • den zu akzeptierenden Sicherheitsgrad

Je nach Kommunikationspartner und zu verwendender Kommunikationsart müssen die Einstellungen an verschiedenen Stellen in der SAP-Systemumgebung vorgenommen werden. Die Konfiguration wird entweder in den Profilparametern, in den Initialisierungsdateien oder mit den entsprechenden Pflegetransaktionen definiert.

SNC-Schlüsselwörter zur Parametrisierung:

Schlüsselwort Beschreibung Wert
SNC_MODE SNC-Aktivierungszeichen 0: Verbindungen nicht mit SNC schützen
1: Verbindungen mit SNC schützen
SNC_MYNAME SNC-Name des Initiators <eigener_SNC-Name>
SNC_PARTNERNAME SNC-Name des Kommunikationspartners <SNC-Name_des_Partners>
SNC_QOP Sicherheitsgrad (Quality of Protection) 1: Nur Authentifizierung verwenden
2: Schutz der Integrität verwenden (Authentifizierung)
3: Schutz der Vertraulichkeit verwenden (Integrität und Authentifizierung)
8: Vorschlagswert verwenden
9: Maximalen Schutz verwenden
SNC_LIB Externe Bibliothek des Sicherheitsprodukts Pfad und Dateiname der Bibliothek

Die Kommunikationsverbindung zwischen Anwendungsserver und Datenbank kann nicht mit SNC gesichert werden. Bei der Kommunikation mit der Datenbank befinden sich die Endpunkte der Kommunikation innerhalb der Datenbankmodule und nicht in den SAP-Systemmodulen. Um die Verbindung zu sichern kann das Datenbanknetzwerk vom Rest des Netzwerks  getrennt werden. Hierzu bieten sich z.B. Firewalls, VLANs oder IPSec Verbindungen an.

Um die Performance zu verbessern, sollten interne Remote Function Calls (RFCs) über die Netzwerkinfrastruktur gesichert werden statt mit SNC, da durch SNC je nach Konfiguration ein mehr oder weniger erhöhter Rechenaufwand generiert wird. Zeitkritische Kommunikationen finden oft zwischen Anwendungsservern innerhalb des SAP-Systems statt (z.B. RFCs). Schützt man die RFCs durch ein Teilnetz innerhalb des Netzwerkes kann ohne SNC sicher kommunizierent werden. Siehe auch die Beschreibung des Profilparameters snc/r3int_rfc_secure. (Steht der Parameter auf „0“, so werden  Interne RFCs mit SNC geschützt.)

Benutzern außerhalb des sicheren (Teil-)Netzwerks muss Zugriff ermöglicht werden. Die Verbindung zum SAP-System über SAP GUI muss von jedem Endpunkt und für jeden Endbenutzer möglich sein. Die Verbindungsanforderungen dürfen nicht geblockt werden ( z.B. durch eine Firewall). Entweder muss der Dispatcher-Port des SAP-Systems direkt an der Firewall geöffnet werden (sapdp<nn>) oder die Verbindungsanforderung muss über einen SAProuter geleitet werden. Der Standard-SAProuter-Port ist 3299. Die Verbindung über den SAPRouter an die Application Server hat den Vorteil, dass ein direkter Zugriff vermieden wird und über den SAPRouter unabhängig von der Firewall übert die Routingtabelle Zugriffe beschränkt werden können.  Ein direkter Zugriff auf die Application Server wird von der Firewall verhindert. Das System kann so konfiguriert werden, dass nur mit SNC geschützte SAP-GUI-Verbindungen akzeptiert werden. Diese Konfiguration muss dann in den Profilparametern und in den Benutzerstammsätzen hinterlegt werden. Diese Option kann für alle SAP-GUI-Verbindungen oder nur für bestimmte Benutzer eingestellt werden (Profilparameter snc/accept_insecure_gui).

Der „sichere“ Gateway-Port (sapgw<nn>s) sollte nur verwendet werden, um mit SNC geschützte Verbindungen zwischen dem SAP-System und externen RFC-Serverprogrammen zuzulassen. Die Verbindung zum SAP-System muss auch für externe RFC-Serverprogramme verfügbar sein. Bei der Verwendung von SNC sollten nur mit SNC geschützte Verbindungen zwischen SAP-Systemen und den externen RFC-Serverprogrammen zugelassen werden. Um den SNC-Schutz zu gewährleisten, muss die Firewall so konfiguriert sein, dass sie nur Anforderungen an den „sicheren“ Gateway-Port (sapgw<nn>s) zulässt und Anforderungen an den „normalen“ Gateway-Port (sapgw<nn>) ablehnt. Das Gateway lehnt alle eingehenden Anforderungen über den sicheren Port ab, die nicht mit SNC geschützt sind.

Beispiel für ein mit SNC geschütztes Netzwerk

Die folgenden Ports sind die sicheren Gateway-Ports, die über die Firewall zugänglich sein müssen:
sapgw<nn>s/tcp     4800-4899       <nn> steht hierbei für die SAP-Systemnummer

Alternativ kann man den Zugriff auf die Ports über einen SAProuter zulassen. In diesem Fall muss die Firewall so konfiguriert werden, dass sie nur Anforderungen an den SAProuter-Port zulässt und alle anderen ablehnt. Es müssen dann die erforderlichen Einträge in der Route-Permission-Tabelle des SAProuters eingetragen sein. Mittels der Tabelle wird dem  der SAProuter angegeben, auf welchen sicheren Port auf welchem Gateway (sapgw<nn>s) der Zugriff erlaubt ist.

Externes Sicherheitsprodukt

Das externe Sicherheitsprodukt muss auf jeder der AS-ABAP-Instanzen installiert sein.

Für die Konfiguration auf dem AS ABAP werden folgende Informationen benötigt:

  • Externe Namen der Teilnehmer
  • Pfade und Dateinamen, unter denen die externen Bibliotheken abgelegt sind

Homogene Konfiguration auf allen Anwendungsservern

Alle AS-ABAP-Server müssen auf dieselbe Art und Weise konfiguriert werden, mit Ausnahme des serverspezifischen SNC-Namens und des plattformspezifischen Bibliotheksnamens. Es dürfen außerdem keine SAP-Anmeldegruppen angelegt werden, die sowohl SNC-fähige Anwendungsserver als auch nicht-SNC-fähige Server enthalten. Obwohl es möglich ist, SNC-Server zusammen mit Nicht-SNC-Servern innerhalb eines gesamten SAP-Systems zu betreiben, führt die Vermischung von SNC- und Nicht-SNC-Servern innerhalb einer einzigen Anmeldegruppe zu Fehlern in den Lastausgleichsmodulen.

Phasenweise Implementierung

Es ist eventuell nicht möglich, SNC systemweit in einem einzigen Schritt einzurichten, und eventuell muss es phasenweise in Teilsystemen einführen. SNC kann erfolgreich phasenweise implementiert werden, indem die Profilparameter entsprechend modifiziert werden. Es können z. B. Nicht geschützte Verbindungen parallel zu geschützten Verbindungen zugelassen sein. Die Profilparameter sollten mit der Transaktion RZ10 gepflegt im Anwendungsserverinstanzprofil gepflegt werden. Der Parameter snc/identity/as ist hierbei instanzspezifisch und der Parameter snc/gssapi_lib plattformspezifisch.

Folgende Parameter werden verwendet:

  • snc/enable
  • snc/gssapi_lib
  • snc/identity/as
  • snc/data_protection/max
  • snc/data_protection/min
  • snc/data_protection/use
  • snc/r3int_rfc_secure
  • snc/r3int_rfc_qop
  • snc/accept_insecure_cpic
  • snc/accept_insecure_gui
  • snc/accept_insecure_r3int_rfc
  • snc/accept_insecure_rfc
  • snc/permit_insecure_start
  • snc/force_login_screen

Profilparametereinstellungen des Gateways

Um SNC zum Schutz von Verbindungen zu nutzen, die über das SAP-Gateway laufen, müssen Sie die entsprechenden Parameter im Gateway-Profil eingestellt werden. Das Gateway verwendet die Routinen des Sicherheitsprodukts selbst nicht, es liefert jedoch den von ihm gestarteten Programmen die SNC-Konfigurationsparameter.

Die folgenden Parameter sind für die Gateway-Einstellungen relevant:

  • snc/enable
    Damit ein Gateway SNC-Verbindungen akzeptiert, muss man den Profilparameter snc/enable auf den Wert 1 setzen. Das Gateway weiß damit, dass eine SNC-Umgebung vorhanden ist, und trifft die folgenden Vorkehrungen: Zusätzlich zu dem Standard-Port (sapgw<nn>) öffnet es einen sicheren Port (sapgw<nn>s), an dem es nur Verbindungen akzeptiert, die SNC verwenden. Es startet Programme nur, wenn für die Verbindung SNC verwendet wird. Man kann das Starten von Programmen ohne SNC explizit zulassen, indem der Parameter snc/permit_insecure_start gesetzt wird!
  • snc/gssapi_lib
    Wenn snc/enable = 1 gesetzt ist, muss der Parameter snc/gssapi_lib wie beim Anwendungsserver den Pfad und Dateinamen der externen Bibliothek enthalten. Das Gateway gibt die Informationen an die von ihm gestarteten externen Programme weiter.
  • snc/permit_insecure_start
    Wenn snc/enable = 1 gesetzt ist, startet und registriert das Gateway im Standard keine externen Programme ohne SNC. Man kann diese Konfiguration explizit außer Kraft setzen, indem der Parameter snc/permit_insecure_start auf den Wert 1 gesetzt wird. Das Gateway startet oder registriert dann Programme, selbst wenn die Verbindung nicht mit SNC geschützt ist. Der Parameter ist nur erforderlich, wenn Programme ohne SNC-Schutz direkt vom Gateway gestartet oder registriert werden sollen. Wenn das Gateway direkt auf einem Anwendungsserver gestartet wird, verwendet es die Profileinstellungen des Anwendungsservers. In diesem Fall sind die Parameter snc/enable und snc/gssapi_lib im Profil des Anwendungsservers gesetzt. Für das Gateway muss dann nur der Parameter snc/permit_insecure_start beachtet werden. Wenn ein Gateway unabhängig vom Anwendungsserver (eigenständiges Gateway) gestartet werden soll, muss man alle oben genannten Parameter beachten.
    Aus Sicherheitsgründen und weil das Gateway den Namen der externen Bibliothek an die von ihm gestarteten Programme übergibt, sollten Programme nur auf dem Computer gestartet werden, auf dem sich das Gateway befindet. Um das entfernte Starten von Programmen zu verhindern, müssen folgende Parameter im Gateway-Profil aktiviert werden:
  • Ab Release 4.5A:
    gw/rem_start=DISABLED
    Das Gateway verwendet die gängige Berkeley Remote Shell (rsh oder remsh), um auf entfernten Hosts Programme zu starten. Die Berkeley Remote Shell führt nur eine einfache Authentifizierung auf der Grundlage der IP-Adresse durch und kann den verwendeten TCP-Datenstrom nicht schützen. SAP empfiehlt daher, bei der Verwendung von SNC Programme nicht auf entfernten Hosts zu starten.

Einschränkungen für SNC Benutzerkonten

Jedem Benutzerkonto im SAP-System kann nur einen SNC-Name zugeordnet werden.
Durch diese Einschränkung wird gewährleistet, dass jeder Benutzer im SAP-System auch nur eine Kennung beim externen Sicherheitsprodukt hat. Dies ist für die Überwachung der Benutzeraktionen (z. B. zu Prüfzwecken) erforderlich.

Ab Release 4.5 kann man das eingangs gezeigte Anmeldebild unterdrücken, wenn das System den SNC-Benutzernamen genau einem Benutzer im SAP-System zuordnen kann (sofern Parameter snc/force_login_screen = 0 gesetzt ist). Wenn der SNC-Name mehreren Benutzern im SAP-System entspricht, wird ein Anmeldebild angezeigt, auf dem der Benutzer den zu verwendenden Benutzernamen wählt (siehe Unterdrücken des Anmeldebilds).

  • Voraussetzungen:
    SNC muss im SAP-System aktiviert sein (snc/enable = 1)
  • Wenn Sie für bestimmte Benutzer unsichere Verbindungen zulassen wollen, muss der Profilparameter snc/accept_insecure_gui auf den Wert „U“ gesetzt sein

Vorgehensweise

Um einem Benutzernamen im SAP-System einen SNC-Namen zuzuordnen, verwenden man die Transaktion SU01:

1) Registerkarte SNC auswählen

2)Den SNC-Namen im Feld SNC-Name eingeben. Um einen längeren Namen einzugeben, SNC-Namen ändern wählen. Es sollten keine SNC-Namen verwendet werden, die über 80 druckbare Zeichen lang sind. Weitere Informationen in der Sap Note #184277.

3)Wenn man für den Benutzer unsichere Anmeldungen zulassen möchte muss man Unsichere Kommunikation erlauben auswählen. Diese Einstellung ist nur wirksam, wenn der Profilparameter snc/accept_insecure_gui den Wert „U“ enthält.
Das SAP-System aktualisiert automatisch die Benutzer-Zugriffskontrollliste (Tabelle USRACL) und generiert den SNC-Namen des Benutzers in kanonischer Form. Wenn keine Fehler aufgetreten sind, aktiviert das System das Kennzeichen Kanonischer Name bestimmt und zeigt die Länge des SNC-Namens an. Ein Fehler könnte z. B. auftreten, wenn der SNC-Name Syntaxfehler enthält. Alternativ kann man die SNC-Namen über die Transaktion SM30, Sicht USRACL, direkt in Tabelle USRACL eintragen.
Das normale Anmeldebild für eine mit SNC geschützte Anmeldeanforderung kann unterdrückt werden, wenn der Profilparameter snc/force_login_screen auf den Wert „0“ gesetzt ist. Dies ist nur möglich, wenn im SAP-System nur ein Benutzername mit dem entsprechenden SNC-Namen vorhanden ist und der Benutzer nur in einem Mandanten des SAP-Systems existiert. In diesem Fall kann das SAP-System den Benutzer und den Mandanten im SAP-System eindeutig bestimmen und den Benutzer anmelden, ohne dass weitere Informationen erforderlich sind. Wenn das SAP-System den Benutzer und Mandanten im SAP-System nicht eindeutig bestimmen kann, zeigt es das Anmeldebild an und fordert die restlichen für die Anmeldung erforderlichen Informationen an. Wenn der Profilparameter auf den Wert „1“ gesetzt ist, zeigt das SAP-System automatisch bei jedem Anmeldeversuch das Anmeldebild an.

SNC Konfiguration auf dem AS Java

Voraussetzungen

Die neuste Version der SAP Cryptographic Library (SAP Service Marketplace service.sap.com/swdc) vom SAP Marktplatz beinhaltet folgende Komponenten:

  • SAP Cryptographic Library (sapcrypto.dll for Windows NT or libsapcrypto.<ext> for UNIX)
  • License ticket (ticket-Datei)
  • Das Tool sapgenpse.exe

Installation

1. Entpacken der SAP Cryptographic Library
2. Die library, die Ticket-Datei und das Tool sapgenpse.exe in ein entsprechendes Zielverzeichnis kopieren (/usr/sap/<SID>/sec)
3. Die Dateiberechtigungen überprüfen. Der Benutzer, unter dem der AS Java läuft muss die Dateien lesen und ausführen können. Standardmäßig sind dies <sid>adm unter UNIX und SAPService<SID> für Windows.
4. Die Umgebungsvariable SECUDIR auf das sec Verzeichnis setzen.

PSE und Zertifikate:

1) PSE erzeugen:

sapgenpse get_pse -p <PSE_Name> -x <PIN> <Distinguished_Name>

Der Distinguished Name (DN) enthält die folgenden Elemente:

  • CN = <Common_Name>
  • OU = <Organizational_Unit>
  • O = <Organization>
  • C = <Country>

Beispiel Distinguished Name: CN=server, OU=Administration, O=Wesselonline, C=DE
sapgenpse get_pse -p SAP_SAPSNC.pse -x Passwort CN=server, OU=Administration, O=Wesselonline, C=DE

2) Den Public Key (Das eigene Zertifikat für den Austausch) exportieren:

sapgenpse export_own_cert -o <public_cert.crt> -p <SAPPSE.pse> -x <Passwort>

3) Das exportierte eigene Zertifikat im AS ABAP importieren (Transaktion strustsso2). Anschließend das eigene Zertifikat des AS ABAP exportieren und im AS JAVA importieren:

sapgenpse maintain_pk -a AS_ABAP.crt -p SAPSNC.pse -x <Passwort>

4) AS ABAP System Acl pflegen:

1. Transaktion SM30 öffnen und den Pflegeview VSNCSYSACL, type=E öffnen.

2. Den SNC name des AS JAVA in das Feld SNC name eintragen. Hier vor dem DN des Servers ein „p:“ einfügen!  Beispiel: p:CN=server, OU=Administration, O=Wesselonline, C=DE.

3)Das Feld RFC aktivieren

SNC Parameter für den AS Java

Der AS Java benutzt den Java Connector (JCO) um mit einem AS ABAP System zu kommunizieren. JCO benötigt zum Herstellen einer Verbindung die zu verwendenen SNC Paramater.

SNC Information

Parameter Beschreibung Beispiel Kommentar
SNC mode SNC aktivieren 1 Benötigt
SNC library path Pfad und Name der externen  Bibliothek /usr/sap/<SID>/sec Optional.
Wird über die Umgebungsvariable SNC_LIB gesetzt
Level of protection Sicherheitsfunktionen 3 Optional.
1: Nur Authentifizieren
2: Integrität
3: Verschlüsselung (Standard)
My SNC name AS Java SNC name p:CN=server, OU=Administration, O=Wesselonline, C=DE SNC Name des AS Java
Partner’s SNC Name AS ABAP SNC name. p:CN=sapserver, OU=Administration, O=Wesselonline, C=DE Benötigt.
Wird im ABAP System über dne Parameter snc/identity/as definiert

Fehlersuche / Trace

Für die Fehlersuche kann man den JCO Parameter „Trace Mode“ auf 1 setzen. Anschließend werden die Tracedateien  dev_jrfc.trc und  jrfcxxxxx_xxxxx.trc in den entsprechenden Application Node Verzeichnissen angelegt (pro AppNode).

Mehr Informationen gibt es unter: http://help.sap.com

About the author