Zugriff auf beliebige Pfade des Ziel-Servers erlauben
In diesem How-to wird beschrieben, wie Sie mit Hilfe eines Dienstes vom Typ FORWARD den Zugriff auf beliebige Pfade des Ziel-Servers über security.manager for OGC erlauben können.
|
In manchen Fällen kann es notwendig sein, den Zugriff auf bestimmte Pfade auf dem geschützten Server zu erlauben, ohne dass diese Pfade direkt zu einem abgesicherten WMS oder WFS gehören.
Das ist insbesondere dann der Fall, wenn ein OGC Dienst in seinen Antworten auf Ressourcen verweist, die außerhalb des eigentlichen Dienst-Pfades liegen.
In diesem Fall finden Sie im Log-File von security.manager for OGC eine Warnmeldung, die darauf hinweist, dass ein Dienst vom Typ FORWARD für diesen Pfad erforderlich sein könnte.
[WARN ] [...] de.conterra.security.proxy.ogc.ProxyUrlReplacementHook - No service defined for path: /geoserver/schemas/wfs/1.1.0/wfs.xsd. Please add a service of type FORWARD for this path otherwise access to it is blocked.`
Beispiel
Angenommen Sie schützen einen WFS Dienst unter dem Pfad /geoserver/wfs mit folgender Server-Konfiguration:
{
"server": {
"host": "https://gisserver.example.com",
"services": [
{
"path": "/geoserver/wfs",
"type": "WFS",
"policy-ref": "geoserver-wfs-policy"
}
]
}
}
Der Beispiel-WFS referenziert in seinen Antworten Schema-Dokumente, die außerhalb des eigentlichen Dienst-Pfades liegen.
Die Antwort eines GetCapabilities Requests könnte z.B. wie folgt aussehen:
<wfs:WFS_Capabilities ...>
...
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.opengis.net/wfs" ...>
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="https://secman.example.com/secman-ogc/geoserver/schemas/gml/3.1.1/base/gml.xsd"/>
...
</xsd:schema>
...
</wfs:WFS_Capabilities>
Die importierte XML-Schemadatei unter dem Pfad /geoserver/schemas ist nicht Teil des WFS Dienstes, der unter dem Pfad /geoserver/wfs geschützt wird.
Daher werden Requests für die XML-Schemadatei vom security.manager for OGC standardmäßig blockiert.
Damit Clients das referenzierte Schema-Dokument abrufen können, müssen Sie den Zugriff auf den Pfad /geoserver/schemas erlauben.
Im folgenden Abschnitt werden die notwendigen Schritte beschrieben, wie Sie den Zugriff auf diesen Pfad freigeben.
Schritte zur Freigabe eines Pfades
-
Öffnen Sie die Server-Konfigurationsdatei
server-config.json. -
Fügen Sie unter
serviceseinen weiteren Dienst des TypsFORWARDfür den Pfad hinzu, der freigegeben werden soll:"services": [ // ... { "path": "/geoserver/schemas", "type": "FORWARD" } ]Damit geben Sie den Zugriff auf alle Ressourcen unter dem Pfad
/geoserver/schemasdes geschützten Servers frei. -
Speichern Sie die Datei und starten Sie security.manager for OGC neu.
Nach dem Neustart können Clients über die URL des geschützten Dienstes auf die Ressourcen unter dem freigegebenen Pfad zugreifen.
Für das Beispiel heißt das, dass Anfragen von Clients an https://secman.example.com/secman-ogc/geoserver/schemas/gml/3.1.1/base/gml.xsd an den geschützten Server weitergeleitet werden.
Weitere Hinweise
Für detaillierte Informationen darüber, wie security.manager for OGC den Ziel-Dienst für einen eingehenden Request ermittelt, siehe Zuordnung eingehender Anfragen zu geschützten Diensten.