URL-Rewriting konfigurieren

In diesem How-to wird beschrieben, wie Sie das URL-Rewriting im security.manager for OGC deaktivieren und korrekte URLs durch den abgesicherten Dienst selbst erzeugen lassen.

security.manager for OGC ist standardmäßig so konfiguriert, dass URLs in Antwortdokumenten von geschützten Diensten vom security.manager for OGC durch die passenden URLs des security.manager for OGC ersetzt werden ("URL-Rewriting"). Dies vereinfacht Ihnen die initiale Installation des security.manager for OGC, ist jedoch nicht in allen Fällen die beste Lösung.

Das URL-Rewriting im security.manager for OGC kann die URLs in Antwortdokumenten von geschützten Dienste nicht immer wie erwartet anpassen, da er keine Kenntnis über die internen Konfigurationsdetails des geschützten Dienstes hat. Außerdem können URLs in Antwortdokumenten so kodiert sein, dass sie vom security.manager for OGC nicht erkannt und damit nicht ersetzt werden.

Wir empfehlen Ihnen daher, das URL-Rewriting durch den security.manager for OGC per Konfiguration zu deaktivieren und an den abgesicherten Server zu delegieren. Der abgesicherte Server kann, wenn er korrekt konfiguriert ist, mithilfe der vom security.manager for OGC standardmäßig gesendeten HTTP Forwarded Header korrekte URLs erzeugen. Dieses Vorgehen verbessert außerdem die Performance.

Die Generierung von URLs durch den abgesicherten Dienst bietet für Sie folgende Vorteile:

  • Korrekte URLs: security.manager for OGC kann für die meisten, jedoch nicht für alle Fälle, korrekte URLs erzeugen, da zu diesem Zweck eine Heuristik verwendet wird. Der abgesicherte Dienst liefert hingegen immer korrekte URLs in seinen Antwortdokumenten aus.

  • Performance: Die Performance von abgesicherten Diensten wird verbessert.

Voraussetzungen

Stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind, um die URLs durch den abgesicherten Dienst erzeugen zu lassen:

  1. Geschützte Dienste dürfen ausschließlich vom Host des security.manager for OGC bzw. von anderen vertrauenswürdigen Quellen aus erreichbar sein.

  2. Wenn der Tomcat-Server, auf dem security.manager for OGC läuft, hinter einem Reverse Proxy betrieben wird, muss Tomcat so konfiguriert werden, dass er die X-Forwarded-* HTTP-Header des vorgelagerten Proxys korrekt auswertet. Eine Beschreibung dazu finden Sie im Tomcat User Guide.

  3. Achten Sie darauf, dass der Tomcat-Server nur Header von vertrauenswürdigen Quellen akzeptiert.

URL-Rewriting deaktivieren

Deaktivieren Sie das URL-Rewriting durch security.manager for OGC, indem Sie in der Datei application.properties im Konfigurationsverzeichnis folgenden Eintrag vornehmen:

application.properties
proxy.response.rewriteUrls=false

Starten Sie den Tomcat-Server erneut, damit die Einstellungen wirksam werden.

Abgesicherten Server konfigurieren

security.manager for OGC berechnet und sendet an den geschützten Dienst folgende Header:

X-Forwarded-Proto

Gibt das vom Client verwendete Protokoll an, zum Beispiel http oder https.

X-Forwarded-Host

Gibt den externen Hostnamen an sowie den Port, unter dem der Dienst öffentlich erreichbar ist, zum Beispiel secman.example.com.

X-Forwarded-Path

Gibt den Kontextpfad des security.manager for OGC an.

Diese Header werden von vielen Servern ausgewertet, um passende URLs in dessen Antwortdokumenten zu liefern. Nehmen Sie nachfolgende Einstellungen entsprechend des Servers vor, damit dieser die beschriebenen Header zur Bildung von URLs verwendet.

GeoServer

  1. Aktivieren Sie in den globalen Einstellungen die Option Use headers for Proxy URL.

  2. Setzen Sie außerdem die Eigenschaft Proxy Base URL:

    • Wenn der GeoServer einen separaten Kontext hat: ${X-Forwarded-Proto}://${X-Forwarded-Host}${X-Forwarded-Path}/[GEOSERVER-CONTEXT]
      Ersetzen Sie dabei [GEOSERVER-CONTEXT] durch den Namen des GeoServer-Kontexts, zum Beispiel geoserver.

    • Wenn der GeoServer keinen separaten Kontext hat, setzen Sie den Eintrag auf den Wert ${X-Forwarded-Proto}://${X-Forwarded-Host}${X-Forwarded-Path}.

ArcGIS Server

Für ArcGIS Server ist keine zusätzliche Konfiguration erforderlich.

Testen der Installation

Testen Sie die Installation, indem Sie im Browser die Capabilities des Dienstes aufrufen: https://secman.example.com/secman-ogc/path/to/my-services/wms?service=WMS&request=GetCapabilities

Prüfen Sie, dass die URLs in der Antwort nun alle statt auf https://gisserver.example.com auf die URL des security.manager for OGC verweisen, zum Beispiel https://secman.example.com/secman-ogc.