Einen beliebigen Dienst schützen
| In diesem How-to wird beschrieben, wie Sie Dienste schützen können, für die security.manager for OGC keine fein-granulare Zugriffskontrolle anbietet. Dies können Dienstetypen wie OGC API Features Services Web Map Tile Services (WMTS) oder andere beliebige HTTP-Dienstendpunkte sein. |
Sie können mit security.manager for OGC auch den Zugriff auf Dienste kontrollieren, die nicht zu den standardmäßig unterstützten OGC Diensten WMS oder WFS gehören. Allerdings müssen Sie in diesem Fall auf die fein-granulare Zugriffskontrolle verzichten, da security.manager for OGC die Anfragen und Antworten des Dienstes nicht analysieren kann. Stattdessen können Sie nur den Zugriff auf den gesamten Dienst schützen und damit sicherstellen, dass nur bestimmte Personengruppen auf einen Dienst zugreifen dürfen.
Voraussetzungen
-
Sie haben security.manager for OGC installiert und mit dem Identity Service verbunden.
-
Der Dienst, den Sie schützen möchten, ist auf dem Host verfügbar ist, der in der
server-config.jsonkonfiguriert ist.
Wenn Sie einen Dienst schützen möchten, der auf einem anderen Host verfügbar ist, als der der Host, für den security.manager for OGC konfiguriert ist, müssen Sie dafür eine separate Installation von security.manager for OGC einrichten. Folgen Sie in diesem Fall den Schritten der Installationsanleitung mit folgender Abweichung: Konfigurieren Sie keinen WFS oder WMS, sondern direkt den beliebigen Dienst, so wie in diesem How-to beschrieben.
Konfiguration des geschützten Dienstes
-
Öffnen die Datei
server-config.jsonder Konfiguration. -
Fügen Sie
serviceseinen neuen Eintrag mit folgenden Eigenschaften hinzu:-
path: Pfad zum Ziel-Dienst auf dem angegebenen Host, zum Beispiel/path/to/ogcapi/features/v1/für einen OGC API Features Dienst. -
type: Typ des Dienstes. Der Wert muss"FORWARD"sein.Beispiel-Eintrag für einen geschützten Dienst{ "server": { "host": "https://gisserver.example.com", "services": [ ..., { "path": "/path/to/ogcapi/features/v1/", "type": "FORWARD" } ] } }
-
-
Speichern Sie die Datei.
-
Starten Sie security.manager for OGC neu, damit die Änderungen wirksam werden.
-
Testen Sie die Konfiguration, indem Sie den geschützten Dienst über security.manager for OGC aufrufen. Rufen Sie dazu die URL des Dienstes auf, indem Sie den Pfad des Dienstes an die Basis-URL von security.manager for OGC anhängen, zum Beispiel
https://secman.example.com/secman-ogc/path/to/ogcapi/features/v1/.
Der geschützte Dienst ist jetzt über den security.manager for OGC erreichbar, allerdings ohne fein-granulare Zugriffskontrolle.
Freigabe des Dienstes für bestimmte Personengruppen
Um den Zugriff auf den geschützten Dienst für bestimmte Personengruppen freigeben, erstellen Sie ein Zugriffsrecht. Mit den Rollen, die Sie im Zugriffsrecht angeben, bestimmen Sie, welche Personen des im Identity Service konfigurierten Identitätsanbieters auf den Dienst zugreifen dürfen.
-
Erstellen Sie im Zugriffsrechte-Verzeichnis eine neue Zugriffsrechte-Datei mit der Endung
.json, zum Beispielogc-api-features.json. -
Fügen Sie in der Datei den folgenden Inhalt ein:
-
layers: Muss den Wert["*"]haben. -
roles: Geben Sie hier die Rollen eines Identitätsanbieters oder vordefinierte Rollen an, die Zugriff auf den Dienst erhalten sollen. Das folgende Beispiel benutzt die vordefinierte RolleenhancedSecurity_authenticated, die alle angemeldeten Personen im security.manager for OGC automatisch besitzen.Beispiel-Zugriffsrecht für einen geschützten Dienst{ "policies": [ { "layers": ["*"], "roles": ["enhancedSecurity_authenticated"] } ] }
-
-
Speichern Sie die Datei.
-
Starten Sie security.manager for OGC neu, damit die Änderungen wirksam werden.
-
Testen Sie die Konfiguration, indem Sie sich zuerst am Identity Service anmelden und anschließend den geschützten Dienst über security.manager for OGC aufrufen.
Das Beispiel-Zugriffsrecht für die vordefinierte Rolle
"enhancedSecurity_authenticated"erlaubt den Zugriff auf den Ziel-Dienst für alle angemeldeten Personen. Wenn Sie sich am Identity Service abmelden und den geschützten Dienst erneut aufrufen, sollte der Zugriff verweigert werden.
Hinweise
-
Wenn der geschützte Dienst die Auswertung von X-Forwarded-* Headern nicht unterstützt, kann die Unterstützung für die URL-Ersetzung eingeschränkt sein. Weitere Informationen finden Sie im How-to URL-Rewriting konfigurieren.
-
Der Schutz beliebiger HTTP-Dienste ist auf Dienste beschränkt, die die HTTP-Methoden GET, POST, PUT, DELETE und PATCH verwenden. Anfragen, die andere HTTP-Methoden verwenden, werden nicht weitergeleitet.
-
security.manager for OGC unterstützt keine Weiterleitung beliebiger Anfrage-Header an den geschützten Dienst. Wenn der geschützte Dienst auf spezielle HTTP-Header angewiesen ist, können diese Header verloren gehen, wenn Anfragen von security.manager for OGC weitergeleitet werden.