Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation X.509-basierte Anmeldung am NW AS über den SAP Web Dispatcher Dokument im Navigationsbaum lokalisieren

Problemstellung

Bei End-to-End SSL terminiert der SAP Web Dispatcher den SSL-Datenstrom nicht. Das Clientzertifikat wird (nach der SSL-Terminierung) im ICM des Applikationsservers extrahiert und über StrukturlinkMemory Pipes zum Workprozess transportiert. Dort kann das Clientzertifikat des Benutzers zur Anmeldung benutzt werden.

Wenn der SAP Web Dispatcher jedoch SSL terminiert, liegt das (öffentliche) Zertifikat des Benutzers nun im Web Dispatcher entpackt vor und muss nun gesichert zum Applikationsserver (AS ABAP oder AS Java) gelangen. Man benötigt zur Zertifikatsweiterleitung eine Vertrauensbeziehung zwischen Applikationsserver und Web Dispatcher. Dies kann über eine SSL-verschlüsselte Verbindung zwischen Web Dispatcher und Applikationsserver gehen (vgl. Metadatenaustausch über SSL einrichten).

Realisierung

Datenübertragung und Formate

Die Werte des Benutzer-Zertifikates werden in HTTP-Headerfeldern übertragen.

Name des Headerfeldes

Wert

Format

SSL_CLIENT_CERT

Client-Zertifikat

Base64-kodierte Daten, eine Zeile

SSL_CLIENT_CERT_CHAIN_1

Erstes Nicht-Wurzel-CA-Zertifikat der CA, die das Client-Zertifikat ausstellte

gleich wie SSL_CLIENT_CERT

SSL_CLIENT_CERT_CHAIN_n

Letztes Nicht-Wurzel-CA-Zertifikat

gleich wie SSL_CLIENT_CERT

SSL_CLIENT_CERT_CHAIN_n+1

Dieses Element wäre das entsprechende Wurzelzertifikat. Es darf nicht zum Server übertragen werden.

gleich wie SSL_CLIENT_CERT

 SSL_CIPHER_USEKEYSIZE

Anzahl der tatsächlich verwendeten Verschlüsselungsbits

Numerischer Dezimalwert, der als Zeichenkette übertragen wird (z.B. 0, 40, 56, 128, 168)

 SSL_CIPHER_SUITE

 

 

Cipher-Suite gemäß Definition in der SSL- und TLS-Spezifikation (draft-freier-ssl-version3-02 bzw. RFC 2246)

Die Cipher-Suite besteht aus zwei (SSL 3.0 / TLS) oder drei (SSL 2.0) numerischen 8-Bit-Werten.

Vertrauensbeziehung zwischen SAP Web Dispatcher und ICM am Applikationsserver

Die Vertrauensbeziehung zwischen SAP Web Dispatcher und ICM wird mit Hilfe eines Client-Zertifikates, das der Web Dispatcher für die SSL-Verbindung benutzt, aufgebaut. Dieses Web Dispatcher Zertifikat benutzt der ICM, um zu entscheiden, ob der Vorgänger (intermediate) vertrauenswürdig ist oder nicht.

Parametrisierung des SAP Web Dispatcher

Im Profil des SAP Web Dispatcher müssen Sie Parameter setzen, um SSL zu terminieren (vgl. SAP Web Dispatcher und SSL):

·        icm/server_port_<xx> = ... PROT=HTTPS,...

·        SSL-Parameter, siehe SAP Web Dispatcher für die Unterstützung von SSL konfigurieren.

Folgende Parameter müssen Sie außerdem setzen, um den Request wieder mit SSL zu verschlüsseln:

wdisp/ssl_encrypt=<0,1,2>

wdisp/ssl_auth=<0,1,2>

wdisp/ssl_cred=<File_name_of_client_PSE>

wdisp/ssl_host=<Common_host_name>

Mit der Datei <File_name_of_client_PSE> wird das Clientzertifikat des Web Dispatchers angegeben. Mit diesem wird das Vertrauensverhältnis zum ICM des Applikationsservers aufgebaut.

Details zu den Parametern finden Sie unter SSL-Parameter.

Setzen Sie folgenden Parameter, um das Benutzerzertifikat in die Headerfelder zu übertragen

icm/HTTPS/forward_ccert_as_header = true

Parametrisierung des ICM

Im Profil des ICM müssen folgende Parameter gesetzt sein, um den vertrauenswürdigen Vorgänger (trusted intermediate) zu spezifizieren:

icm/HTTPS/trust_client_with_issuer = <issuer>

icm/HTTPS/trust_client_with_subject = <subject>

Stimmen <subject> und <issuer> des Web Dispatcher-Clientzertifikates mit diesen Werten überein, akzeptiert der ICM die SSL-Headerfelder, ansonsten löscht er sie.

Wenn die SSL-Headerfelder nicht gesetzt sind, der HTTPS-Request jedoch ein eigenes Zertifikat mitbringt, wird dieses zur Anmeldung am Applikationsserver benutzt (direkte Verbindung vom Browser zum Applikationsserver).

Syntax Syntax

Der Parameter muss die gesamte Zeichenkette des Zertifikats enthalten. Falls also das Zertifikat den Issuer CN = SAP CA, O = SAP CA INT, C = DE und das subject CN = sapwebdisp, O = SAP-AG, C = DE enthält, müssen die Parameter genau so gesetzt werden.

Dabei muss jedes Zeichen übereinstimmen, auch Leerzeichen.

Um die Konfiguration zu vereinfachen, können Wildcards angegeben werden: *, ?, wobei der Asterisk * für beliebig viele und das ? für ein Zeichen steht.

Beispiel

icm/HTTPS/trust_client_with_issuer = CN = SAP CA,*      .

icm/HTTPS/trust_client_with_subject = CN = sapwebdisp,*     .

Sonderfall

Ein Spezialfall ist die Angabe von

icm/HTTPS/trust_client_with_issuer = *

icm/HTTPS/trust_client_with_subject = *

Damit wird jedes Client Zertifikat akzeptiert; es wird sogar akzeptiert, wenn der Client gar kein X.509 Zertifikat schickt.

Achtung

Damit ist keine Vertrauensbeziehung zwischen ICM und Web Dispatcher (oder anderem Loadbalancer) mehr gegeben! Die Sicherheit muss dann mit Netzwerkmitteln hergestellt werden.

Sicherheitsmaßnamen im SAP Web Dispatcher und ICM

Folgende Aktionen sollen die Sicherheit bei der Zertifikatsweiterleitung gewährleisten:

      Bei eingehenden HTTP-Requests werden evtl. gesetzte SSL-Headerfelder gelöscht

      Ist der Vorgänger nicht vertrauenswürdig, werden eventuell gesetzte SSL-Headerfelder gelöscht.

Kaskade von SAP Web Dispatchern

Sie können mehrere SAP Web Dispatcher (intermediates) hintereinander schalten. Dann muss jeder Knoten, der die SSL-Headerfelder akzeptieren soll, seinem direkten Vorgänger vertrauen. Dies können Sie über die Parameter icm/HTTPS/trust_client_with_subject und icm/HTTPS/trust_client_with_subject auch beim Web Dispatcher steuern (s.o.).

Informationen zur Kaskadierung von Web Dispatchern finden Sie in SAP-Hinweis 740234.

 

Ende des Inhaltsbereichs