12. June 2020

Geoserver: Zugriffsrechte auf Daten mit Rollen und Nutzergruppen

Filed under: computer,GIS,Linux — zettberlin @ 12:43

Geoserver ist ein komplexes System zur Verwaltung und Ausgabe von Geodaten. Man kann Dinge auf Landkarten zeichnen, die Zeichnung in einem geeigneten Dateiformat in Geoserver speichern und diese dann als Layer(Ebenen) in andere Karten einzeichnen lassen.

Es ist klar, dass nicht unbedingt alle, die auf eine Geoserverinstallation im Internet Zugriff haben, auch alle Daten sehen oder gar schreiben können sollten.

Um den Zugriff sinnvoll einstellen zu können, bietet Geoserver ein sehr flexibles System, das aus Nutzerkonten, Nutzergruppen und Nutzerrollen besteht. Über die Rollen wird der Zugriff auf die Adressen von gespeicherten Daten geregelt. Wie jedes flexible System ist das in Geoserver gerade noch so einfach, dass es flexibel bleibt und das bedeutet:

es ist nicht sehr einfach.

Die Grundlage: Nutzerkonten und Rollen.

Ich gehe davon aus, dass bereits ein Nutzer außer dem vorgegebenen Admin Konto existiert. Und verschiedene Datenspeicher…

Alle Aktionen werden mit Werkzeugen aus dem Menü “Sicherheit(Security)” links unten in der Weboberfläche ausgeführt.

Geoserver1_!

Das Sicherheit Menü

Im Bereich Benutzer/Gruppen/Rollen stellen wir die Voraussetzungen ein:

Das Benutzertool nach Klick auf den Karteireiter Rollen

Das Benutzertool nach Klick auf den Karteireiter Rollen

Nach Klick auf Rolle hinzufügen können wir eine neue Rolle erstellen

 

Elternrolle und Schlüssel lassen wir für diesmal ungenutzt

Elternrolle und Schlüssel lassen wir für diesmal ungenutzt

Danach gehen wir auf den Karteireiter Benutzer/Gruppen und Klicken auf den Nutzer, der spezielle Rechte(und nur diese) bekommen soll.  Nennen wir ihn: Hugo.

Geoserver Nutzer

Außer Hugo gibt es natürlich admin und etliche weitere…

Wenn wir nach unten scrollen, sehen wir diese Liste:

Geoserver rollen

Die Rollen werden von einer Softwarekomponente verwaltet, die Rollendienst heißt.

Diese Einstellungen gelten für Hugo, wenn wir einen Rolle (hier “Tutorial” anklicken und anschließend auf das Pfeilsymbol nach rechts(zwischen den Kästen) klicken, erscheint Tutorial rechts als ausgewählt für Hugo Ein Klick auf Speichern schreibt die Einstellung in Geoservers Nutzerverwaltung.

Damit wäre Hugo jetzt mit der Rolle “Tutorial” ausgestattet. Als nächstes legen wir fest, was diese Rolle bedeutet.

Die Verbindung von Rollen mit Datenadressen

Die Zugriffsberechtigung ist eine Eigenschaft einer Dateneinheit, nicht des Nutzers und auch nicht der Rolle. Wir müssen also im Scherheitsmenü auf Daten wechseln.

Geoserver Rules

Der sog. Regelpfad bestimmt, was womit getan werden darf. Eine Regel kann für mehrere Rollen gelten.

Nach Klick auf Regel hinzufügen können wir auswählen, für welche Datenspeicher die Regel gelten soll, auch ein einzelnes Layer im Speicher kann ausgewählt werden. Wer schon einmal in SQL Privilegien für Datenbanken eingestellt hat, wird die Syntax ähnlich finden…

Geoserver Modus

Der Modus Administrator bedeutet Lesen und Schreiben, es lassen sich auch nur Lesen oder nur Schreiben einstellen.

Die so vorbereitete Regel kann nur im Zusammenhang mit einer Rolle existieren, diese muss vorher existieren, dann kann man sie aus dem Kasten links darunter auswählen, ähnlich wie wir sie auch schon dem Nutzer Hugo zugewiesen haben.

Geoserver Data Roles

Links markierte Rollen verschwinden aus dem linken Kasten und gehen in den rechten nach Klick auf das Pfeilsymbol zwischen den Kästen.

Nach Klick auf Speichern kann der Nutzer Hugo alles mit den Layern im Arbeitsbereich test anstellen, was er oder sie nach dem Login für richtig hält. Das gleiche gilt auch für eine Anwendung, die via Curl auf Geoserver zugreift. So darf zum Beispiel QGis, das mit dem Hugo Nutzer mit Geoserver verbunden ist, direkt in Shapes auf Geoserver zeichnen, wenn diese im test Arbeitsbereich liegen.

Mit allen anderen Daten darf Hugo genau nichts tun…

Fragen und Berichtigungen sind willkommen 😉

 

 

 

endbild
Fitting perfectly well into the colours of a meadow since the late Cretaceous. Some 130 million years of learning can do wonders, methinks...