
Sie können den SAP Web Dispatcher als URL-Filter verwenden, das heißt, dass Requests abhängig von ihrer URL vom SAP Web Dispatcher angenommen (und weitergeleitet) oder zurückgewiesen werden.
Motivation
Diese Funktion des SAP Web Dispatchers dient der zusätzlichen Sicherheit. Neben der sicheren Konfiguration mit Firewall und Demilitarisierter Zone (vgl. Grafik im Abschnitt Architektur und Funktionsweise des SAP Web Dispatchers ) können Sie mit dem URL-Filter verhindern, dass ein Benutzer von außen beliebige Applikationen ausführt. Selbst wenn der Benutzer sich unerlaubt im SAP-System anmelden kann, können Sie so explizit die Applikationen festlegen, die ausgeführt werden dürfen.
Authentication Handler
Neben der hier beschriebenen URL-Filterfunktion bietet der Web Dispatcher mit dem Authentication Handler eine wesentlich umfangreichere Form der Sicherheitsüberprüfung an. Wenn Sie den Authentication Handler mittels dem Parameter icm/HTTP/auth_<xx> einrichten, können Sie sowohl die hier beschriebene Konfiguration als auch die Authentifizierung für die Web-basierte Administrationsoberfläche (Option AUTHFILE des Parameters
icm/HTTP/admin_<xx> ) deaktivieren.
Sie verwenden den SAP Web Dispatcher als einzigen Zugangspunkt für HTTP(S)-Requests.
Die Regeln, nach denen der SAP Web Dispatcher die eingehenden URLs behandeln soll, legen Sie durch die URI-Permission-Tabelle fest. Dies ist eine Datei, in der die Regeln zeilenweise aufgeführt sind.
Es gilt das Prinzip "First Match" wie bei der Route-Permission-Tabelle des SAProuters. Der erste Eintrag in der Tabelle, der auf einen Request passt, gilt. Die weiteren Zeilen sind dann nicht mehr relevant.
Jede Zeile hat die Form
P/D/S <URI-pattern>
wobei der Buchstabe am Zeilenanfang folgende Bedeutung hat.
P lässt den Request durch. Er wird von SAP Web Dispatcher an den geeigneten Applikationsserver weitergeleitet.
D lehnt den Request ab und schickt dem Client eine entsprechende Nachricht.
S erlaubt für den URL-Präfix nur sichere Verbindungen (HTTPS).
<URI-pattern> ist der Abschnitt der URL, der im Abschnitt Cache-Key als translated path bezeichnet ist.
Sie können das Wildcard-Zeichen * verwenden, allerdings nur am Anfang oder am Ende des <URI-pattern> -Strings.
Beachten Sie, dass die URI-Permission-Tabelle case-sensitiv ist, es wird also zwischen Groß- und Kleinbuchstaben unterschieden.
Neben dem Profilparameter wdisp/permission_table (siehe unten) gibt es noch folgende Profilparameter, mit denen Sie die Größe der URI-Permission-Tabelle kontrollieren können. Detaillierte Dokumentation sowie Minimal- und Maximalwerte finden Sie in der Parameterdokumentation (Transaktion RZ11 ).
|
Parameter |
Einheit |
Bedeutung |
Defaultwert |
|---|---|---|---|
|
wdisp/max_permitted_uri_len |
Integer |
Maximale Länge des URIs (Anzahl Zeichen) |
2048 |
|
wdisp/permitted_uri_char_range |
n-m n<m Integer |
Bereich, in dem sich die Zeichen der URL befinden müssen (ASCII). 32-127 sind beispielsweise die normalen Tastaturzeichen. Kein Eintrag erlaubt alle Zeichen in der URL. |
- |
|
wdisp/max_permission_table_size |
Integer |
Maximale Anzahl von Einträgen (Zeilen) der URI-Permission-Tabelle |
300 |
|
wdisp/max_permission_table_entry_size |
Integer |
Maximale Anzahl von Zeichen in einem Eintrag (Zeile) der URI-Permission-Tabelle |
256 |
Wenn Sie den SAP Web Dispatcher als URL-Filter verwenden möchten, legen Sie eine Datei <ptabfile> an, in die Sie die Regeln eintragen. Beachten Sie, dass jede URL nach der First-Match-Strategie ausgewertet wird, d.h. die erste Regel der Tabelle, die auf die URL passt, kommt zur Anwendung. Die Tabelle wird nicht mehr nach (weiteren) passenden Regeln durchsucht. Unten finden Sie ein Beispiel für eine solche Datei.
Wenn Sie die Tabelle gepflegt haben, müssen Sie im Profil des SAP Web Dispatchers den Parameter wdisp/permission_table pflegen:
wdisp/permission_table = <ptabfile> ,
wobei <ptabfile> der absolute oder relative Pfad zu der Datei ist.
Weitere Informationen: Beispiel: Profildatei eines SAP Web Dispatchers
Beispiel
Eine URI-Permission-Tabelle könnte so aussehen:
# SAP Web Dispatcher test permission table
P /sap/bc/test.cgi
D *.cgi
P /sap/bc/cachetest
P /sap/bc/public/*
P /sap/bc/ping
D *
Die Tabelle spiegelt folgende Konfiguration wieder.
Das CGI- Skript test.cgi unter /sap/bc darf ausgeführt werden (Zeile 1), der Request wird gemäß Loadbalancing an den geeigneten SAP NetWeaver AS weitergeleitet (entsprechend der Serverauswahl und Lastausgleich durch den SAP Web Dispatcher ). Ansonsten darf aber kein CGI-Skript ausgeführt werden (Zeile 2).
First Match bedeutet also: wären die ersten 2 Zeilen in der Tabelle vertauscht, dürfte auch /sap/bc/test.cgi nicht ausgeführt werden: da die erste Zeile auf das URL-Präfix passt, wird die zweite gar nicht ausgewertet.
Der hinter dem ICF- Service /sap/bc/cachetest liegende HTTP-Request-Handler darf ausgeführt werden, ebenso alle ICF-Services unter /sap/bc/public/ sowie der Verbindungstest-Service /sap/bc/ping (Zeilen 3-5). Alle anderen ICF-Services, die bisher nicht explizit erwähnt wurden, sollen nicht ausgeführt werden (Zeile 6). Dieser Request wird vom SAP Web Dispatcher zurückgewiesen.
Verwenden Sie Positivlisten!
Da die URI-Permission-Tabelle case-sensitiv ist, ist es wichtig, die Tabelle als Positivliste aufzubauen: führen Sie alle URLs auf, die der SAP Web Dispatcher erlauben soll und setzen Sie ans Ende der Tabelle die Zeile D * . Dann kann es zwar passieren, dass URLs abgewiesen werden, die in Ordnung sind (im obigen Beispiel /sap/bc/ping, was vom ICF durchaus erkannt würde), aber Sie haben nicht das Problem, dass URLs, weil sie anders geschrieben sind als eine mit D verbotene URL, den Web Dispatcher passieren können. Das obige Beispiel ist so eine Positivliste. CGI-Skripten müssen klein geschrieben sein, um ausgeführt zu werden, deshalb ist das keine Sicherheitslücke.