Show TOC

SAP Web Dispatcher als URL-FilterLocate this document in the navigation structure

Verwendung

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.

Voraussetzungen

Sie verwenden den SAP Web Dispatcher als einzigen Zugangspunkt für HTTP(S)-Requests.

Funktionsumfang

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.

Achtung

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

Aktivitäten

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

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).

Hinweis

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.

Empfehlung

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.