24. April 2019

Geoserver Nutzer und Rollen und Zugriffsprivilegien

Filed under: computer,freie software,Linux — Tags: , — zettberlin @ 10:19

Es ist schon bemerkenswert, dass es für diesen wichtigen Vorgang keine praktisch orientierte Anleitung im Internetz zu geben scheint… bis jetzt.

Geoserver verwendet ein halbwegs komplexes Modell für Nutzerzugriffsrechte, das auf drei Stufen beruht:

  1. Nutzeraccount(Passwort, Identität, individuelle Privilegien)
  2. Rollen(Nicht nutzergebundene Privilegien)
  3. Gruppenzugehörigkeit(Verbinden von mehreren Nutzern mit Rollen/Privilegien)

Dieses an sich leicht verständliche Konzept ist logisch umgesetzt, sodass man sich trotz fehlender Anleitung relativ schnell reinfindet, wenn man sich schon einmal mit Rollen und Gruppen befasst hat(etwa in Tomcat).

Schwierig wird es, wenn man die Technik praktisch anwenden möchte, um Daten im Geoserver nur für ganz bestimmte Nutzer zugänglich zu machen und andere auszusperren.

Aber Schritt für Schritt…

Einen neuen Nutzer legt man im “Sicherheits”(Security) Bereich links unten im Webinterface an. Dort ist der Listeneintrag “Benutzer, Gruppen, Rollen” zu wählen und im damit geöffneten Werkzeug der “Benutzer und Rollen” Das Werkzeug ist intuitiv, man lege einen neuen Benutzer eine Gruppe und eine Rolle an.

Putzig ist, dass hier tatsächlich nur die Datenobjekte “Nutzer”, “Rolle” und “Gruppen” und deren Beziehungen angelegt werden. Was diese Objekte bedeuten, ist in einem anderen Werkzeug zu regeln.

Zugriffsrechte zuordnen:

Im Listeneintrag “Daten” im “Sicherheits”(Security) Bereich sind einige allgemeine Regen bereits voreingestellt. Im großen und ganzen geht es darum, dass die “ADMIN” Rolle alles darf und alle anderen nur die Layervorschau.

Für die vorhin angelegten Rollen und Nutzer können nun hier neue Regeln angelegt werden. Dazu wählt man einen Arbeitsbereich und man kann darunter ein Namenspattern für Layer eintragen; das Sternchen gilt für alle….

Es gibt nur drei Rechte: Read, Write und Admin. Diese werden automatisch ähnlich wie in SQL angelegt:

Workspacename.*.a

Legt für den Workspace und alles, was drin ist das Recht “Admin” an.

Im Tool darunter wählt man nun eine Rolle im linken Kasten und schiebt diese mit Klick auf den Pfeil oben in den rechten Kasten. Alle Mitglieder einer Gruppe, die diese Rolle besitzt und alle Nutzer, die diese Rolle haben, bekommen das vorher zusammengestellte Privileg. Der Vorgang lässt sich für andere Privilegien und Rollen wiederholen.

Es gibt nur für diesen Schritt auch tatsächlich ein gut verstecktes Tutorial:

Gut verstecktes Tutorial zum Geoserver Datenzugriff

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