Fünf Schritte zum Anlegen eines Rechtesets für einen WMS

1. Anlegen des Rechtesets und Laden der Ressourcen

Öffnen Sie den Administrator und wählen Rechte. Wählen Sie im Baum WMS und darauf Neues Rechteset erstellen.

wms create de

Im sich öffnenden Dialog vergeben Sie einen Titel und eine Beschreibung für das Rechteset des zu schützenden WMS. Der Titel erscheint im Rechterepository-Baum, um das schnelle Auffinden eines Policysets für einen bestimmten Dienst zu erleichtern. Die Beschreibung dient zur Angabe des Zwecks des Rechtesets. In der Auswahl-Box „Geschützter Dienst" können Sie einen Dienst auswählen, den Sie vorher im Tab „Geschützte Dienste" konfiguriert haben. Hierbei wird die URL des Dienstes übernommen. Alternativ können Sie in der Auswahlbox Andere auswählen und manuell eine URL in das Feld URL des WMS eingeben.

Klicken Sie danach auf „Layer holen". Hierdurch wird eine GetCapabilities-Anfrage an den Dienst gestellt und bei Erfolg der Dienst selber (über seine URL) sowie seine Layer als Ressourcen übernommen, auf die sich die später zu erstellenden Rechte beziehen können. Dann erscheint eine Übersicht der vorhandenen Ressourcen (Layer) und eine Möglichkeit zum Anlegen und Bearbeiten von Rechten zu diesem Dienst.

wms get layers de
Es wird dringend empfohlen, pro geschütztem Dienst nur ein Rechteset anzulegen, da mehrere Rechtesets pro geschütztem Dienst zu einem ungewollten Verhalten führen können. Daher gibt der security.manager eine Warnung aus, wenn ein Rechteset zu einem Dienst gespeichert werden soll, für den bereits ein anderes Rechteset definiert ist. Trotzdem lässt der security.manager mehrere Rechtesets pro Dienst zu.

2. Definieren eines nicht eingeschränkten Zugriffs für Rolle „Intern"

Voraussetzung für dieses Beispiel ist, dass in der Benutzerverwaltung eine Rolle „Intern" angelegt wurde und diese mind. einem Benutzer zugeordnet wurde.

Um innerhalb des neuen Rechtesets ein Recht anzulegen, klicken Sie im Bereich "Rechte" auf "Neu". Im sich öffnenden Dialog vergeben Sie eine Bezeichnung und eine Beschreibung für das neu erstellte Recht. Es empfiehlt sich die Bezeichnung so zu wählen, dass sofort ersichtlich ist, wer mit diesem Recht auf welche Ressourcen zugreifen darf, z.B. „intern_darf_alles" oder „extern_alles_ohne_GetFeatureInfo". Für eine ausführlichere Beschreibung des Rechts können Sie das Feld „Beschreibung" verwenden.

wms access de

Zunächst legen Sie fest, für welche Rollen dieses Recht gilt. Wird der Haken bei „Alle Rollen" entfernt, klappen die verfügbaren Rollen aus.

Als nächstes definieren Sie, für welche Ressourcen des geschützten Dienstes dieses Recht gilt. Ist „Alle Ressourcen" ausgewählt, findet keine Einschränkung hinsichtlich der Ressourcen statt und die einzelnen Layer bleiben verborgen. Wird der Haken entfernt, klappen die einzelnen Ressourcen aus und können individuell ausgewählt werden. Hinweis: Die URL des geschützten Dienstes ist bei allen Typen von Rechtesets Teil der Ressourcen. Wenn Sie diese Ressource nicht mit auswählen, wird der Zugriff auf den Dienst immer komplett abgewiesen.

Legen Sie dann fest, für welche Aktionen dieses Recht gilt. Die verfügbaren Aktionen entsprechen in der Regel den Operationen, die auf Dienste dieses Typs ausgeführt werden können. Bei WMS sind dies GetMap, GetCapabilities und GetFeatureInfo. Um das Recht für alle oder für individuelle Aktionen zu gewähren, aktivieren Sie die entsprechenden Optionen.

Unter „Auflagen" können Sie Auflagen festlegen, an die das Recht gebunden ist. Wie Sie als Auflage das Zeichnen eines Copyright-Vermerks festlegen, wird im nächsten Schritt – bei der Erstellung eines zweiten Rechts in diesem Rechteset – gezeigt. Wie Sie räumliche Auflagen definieren, erfahren Sie unter Erstellen von Rechten mit räumlicher Autorisierung.

Unter „Bedingungen" können Sie das Recht so einschränken, dass es nur in einem bestimmten zeitlichen Intervall gültig ist.

Durch einen Klick auf „Recht speichern" wird das Recht dem Rechteset hinzugefügt und in der Rechtedatenbank gespeichert. Ab diesem Augenblick wird es vom PDP bei allen Rechteentscheidungen berücksichtigt.

3. Definieren eines eingeschränkten Zugriffsrechts für Rolle „Guest"

Die Rolle „Guest" ist standardmäßig im security.manager angelegt. Alle Gastzugänge werden auf diese Rolle abgebildet.

Wählen Sie das erstellte Rechteset aus und klicken Sie unter „Rechte" auf „Neu", um ein neues Recht anzulegen. Im sich öffnenden Dialog vergeben Sie wieder einen Namen und eine Beschreibung.

Nachfolgend wird dargestellt, wie Sie folgendes Recht für alle Nutzer der Rolle „Guest" definieren:

  • Der Service sowie die Layer „Bundesländer" und „Kreise" sind einladbar und auf Karten darstellbar.

  • Die Sachdatenabfrage (GetFeatureInfo) ist nicht erlaubt.

  • Die Nutzung ist auf den Zeitraum vom 01.01.2012 bis zum 31.12.2012 eingeschränkt.

  • Es soll generell ein Copyright-Vermerk auf alle Kartengrafiken gezeichnet werden.

Zur Umsetzung sind die folgenden Werte zu konfigurieren:

wms access guest de
  • Rollen: Auswahl der Guest-Rolle

  • Ressourcen: Hier erfolgt die Auswahl der Dienst-URL sowie der Layer „Bundesländer" und „Kreise". In eckigen Klammern ist die Layer-ID angegeben.

  • Aktionen: es wird nur „GetMap" und „GetCapabilities" ausgewählt, da „GetFeatureInfo" nicht zugelassen ist.

  • Unter „Auflagen" wird ein Copyright-Vermerk definiert, dann der Text „(c) by con terra" eingegeben. Basiert der WMS auf einem ArcGIS Server, ist es möglich, die anzuzeigenden Features mittels eines Filters, einer sogenannten Definition-Query, einzuschränken. Es wird empfohlen, die Definition-Query mit dem ArcMap Query Builder zu erstellen.

    wms copyright de
  • Unter „Bedingungen" wird der Eintrag modifiziert und die Nutzung zusätzlich zeitlich eingeschränkt. Hinweis: Das Datum ist in der Form „JJJJ-MM-TT" anzugeben (also „2010-01-01" für den 01. Januar 2010).

    wms restrictions de
  • Speichern Sie das Recht

4. Reihenfolge der Rechte festlegen

Es ist möglich, dass ein Benutzer mehr als eine Rolle besitzt. Wenn im o.g. Beispiel z.B. Herr Meier sowohl die Rolle „Guest" als auch die Rolle „intern" besitzt, stellt sich die Frage, welches Recht hat Hr. Meier für den Dienst? Die Antwort wird von der Reihenfolge der Rechte im Rechteset bestimmt. Bei der Rechteentscheidung wird solange „von oben nach unten" durch die einzelnen Rechte des Rechtesets gegangen, bis ein passendes Recht gefunden wird, das den Zugriff erlaubt. Nachfolgende Rechte, die unter Umständen den Zugriff auf mehr Ressourcen erlauben, werden nicht mehr in Betracht gezogen. Setzen Sie daher das höchstwertige Recht stets als erstes in der Liste.

Zum Verändern der Reihenfolge können die Pfeile rechts der Liste aller Rechte verwendet werden. Nach der Veränderung der Reihenfolge muss das Rechteset gespeichert werden.

5. Ergänzende Hinweise

  • Rechte sind miteinander kombinierbar:
    D.h. komplexere Rechte lassen sich mit dem Administrator ggf. nur mit mehreren Rechten ausdrücken. Sollen z.B. Rechte definiert werden, die „GetFeatureInfo" nur auf einem Layer „A" erlauben sollen, „GetMap" und „GetCapabilities" jedoch auf allen, so müssen hierfür 2 Rechte erstellt werden.

    • Recht 1: Unabhängig der Ressource ist „GetMap" und „GetCapabilities" für Rolle „X" erlaubt.

    • Recht 2: Für Layer „A" ist „GetFeatureInfo" für Rolle „X" erlaubt.

  • Zugriff auf nicht erlaubte Ressourcen:
    Verhindern Sie durch geschickte Formulierung der Rechte, dass Clients Anfragen stellen können, die nicht berechtigte Ressourcen beinhalten. Für WMS bedeutet das z.B., dass sobald der Zugriff auf einen Layer per GetMap nicht erlaubt ist, auch der Zugriff per GetCapabilities nicht erlaubt ist. Clients, die dynamisch auf die in den Capabilities enthaltenen Layer reagieren und diese zur Anzeige in einer Karte anbieten, werden so daran gehindert, Layer anzuzeigen, die effektiv nicht nutzbar sind. In Einzelfällen kann es aber erwünscht sein, dass Layer zwar nicht in den Capabilities erscheinen, aber von Clients mit Wissen über deren Existenz zugegriffen werden können. Alle Interceptoren des security.manager sind in der Regel so umgesetzt, dass eine Anfrage oder Antwort, die den Zugriff auf nicht berechtigte Ressourcen verlangt, so modifiziert wird, dass diese Ressourcen herausgefiltert werden. Der Client erhält nur dann eine Fehlermeldung über eine nicht ausreichende Berechtigung, wenn keine berechtigte Ressource mehr in der Anfrage oder Antwort verbliebe.

  • Hierarchische Ressourcen (Layer):
    Der Administrator listet Layer und Feature Types in einer einfachen, nicht-hierarchischen Liste auf. WMS erlauben u.a. die Hierarchisierung von Layern und somit die Gruppen-Bildung. Wenn Sie einen solchen Gruppenlayer innerhalb eines Rechtes verwenden, gibt die Verwendung dieses Layers den Zugriff auf alle untergeordneten Layer frei und zwar unabhängig davon, ob diese Layer gesperrt wurden oder nicht!

Import und Export von Rechtesets

Über den Export-Button auf jedem Rechteset kann dieses als Datei exportiert werden. Eine Import-Funktion für alle Rechtesets (auch solche, für die der Administrator keine Pflege-Dialoge besitzt) ist über den Knoten Unbekannt verfügbar.

Unbekannte Rechtesets

Wie dargestellt sortiert der Administrator Rechtesets nach bekannten (und installierten) Typen. Pro Typ definiert ein Plugin die Dialoge für die Pflege von Rechten für Dienste dieses Typs. Neben den bekannten Typen können weitere Rechte (sogenannte „unbekannte" Rechte, da der Administrator kein Plugin für ihren Typ besitzt) gepflegt werden. Die Pflege-Möglichkeiten beschränken sich allerdings auf Import-/Export sowie die Möglichkeit, die Inhalte über eine XML-Sicht zu pflegen.

Falsch konfigurierte Rechtesets können die Lauffähigkeit des PDP-Dienstes beeinträchtigen oder sogar zum Erliegen bringen. Modifikationen über die XML-Sicht sollten daher nur von erfahren Administratoren durchgeführt werden.