Erstellen von Berechtigungen für ArcGIS Server
Zum Anlegen von Rechten für ArcGIS Server-Dienste wählen Sie im Navigationsbaum ArcGIS Server aus.
Um einen weiteren ArcGIS Server hinzuzufügen, klicken Sie +. Im folgenden Dialog können Sie entweder einen bereits im Tab Geschützte Dienste angelegten ArcGIS Server auswählen, oder durch Auswahl von anderer im Feld Geschützter Dienst eine URL direkt in das Feld URL des ArcGIS Server eingeben.
Um die verfügbaren Dienste des ArcGIS Servers abzufragen und zur Auswahl anzuzeigen, klicken Sie Dienste anzeigen.
Die einzelnen Dienste des ArcGIS Servers sind mit Checkboxen versehen.
Wählen Sie die Dienste aus, für die Sie Rechtesets generieren möchten, und klicken Sie auf Rechtesets erzeugen. Die Rechtesets werden unterhalb des ArcGIS-Server-Knotens im Navigationsbaum aufgelistet.
Das Erzeugen von Rechten innerhalb dieser Rechtesets erfolgt analog zu der Beschreibung für WMS-Rechte.
Autorisierung von MapServer Gruppen-Layern
Die folgende Beispiel-Hierarchie verdeutlicht, welche Layer Sie autorisieren müssen, um den Zugriff auf eine ganze Gruppe von Layern einzuschränken:
-
Pflanzen (ID: 0)
-
Nutzpflanzen (ID: 1)
-
Blumen (ID: 2)
-
Hecken (ID: 3)
-
Bäume (ID: 4)
-
Nadelbäume (ID: 5)
-
Laubbäume (ID: 6)
-
-
Wenn Sie z.B. den Zugriff auf alle Bäume einschränken möchten, deaktivieren Sie alle Layer dieser Gruppe (IDs 4, 5 und 6) im Bereich Ressourcen für das entsprechende Recht.
Definition-Queries für MapServer und FeatureServer
Der ArcGIS Server MapServer/FeatureServer erlaubt die Nutzung von sogenannten Definition-Queries, um für einzelne Layer die angezeigten Features mittels attributbasierter Filter auszuwählen. ArcMap beinhaltet zur Definition dieser Queries den Query Builder.
Im security.manager besteht die Möglichkeit, in den Rechten zu ArcGIS Server MapServer/FeatureServer-Diensten solche Definition-Queries als zusätzliche Obligation zu hinterlegen. Damit kann für das entsprechende Recht eine Einschränkung auf bestimmte Features definiert werden. Es wird empfohlen, diese Definition-Queries mit dem Query-Builder zu erzeugen und dann per Copy & Paste in die Definition der Obligation zu übernehmen.
Es ist zudem möglich Nutzerattribute in Definition-Queries zu referenzieren, indem ein Ausdruck der Form ${user.USER_ATTRIBUTE}
benutzt wird.
Ein Feature hat ein Feld CITY
.
Damit ein angemeldeter Nutzer nur die Features sehen kann, die in der Stadt liegen, aus der er kommt, würde die Definition-Query wie folgt aussehen:
CITY = '${user.city}'
Folgende Ausdrücke können verwendet werden, um Attribute des anfragenden Nutzers in die Defnition Query einzusetzen:
Ausdruck | Bedeutung |
---|---|
|
Nutzername |
|
Vorname |
|
Nachname |
|
Telefonnummer |
|
E-Mail-Adresse |
|
Straße inkl. Hausnummer |
|
Stadt |
|
Land |
|
Geschlecht |
|
Rollen des Nutzers Da mehrere Rollen möglich sind, wird dieser Ausdruck ersetzt durch Text der Form |
|
Optionale Nutzerattribute Beispiel: |
Das Setzen von Anführungszeichen, um den Anforderungen der konkreten Datentypen im ArcGIS Server zu genügen, obliegt dem Administrator.
Die einzige Ausnahme ist das Nutzerattribut roles (s.o.)
|
Attributwerteinschränkungen bei Editieroperationen
Um Attributwert-basierte Einschränkungen zu definieren, muss für das FeatureServer-Recht, das die Editiererlaubnis festlegt, eine Auflage vom Typ Attributwert-Einschränkungen angelegt werden.
Hier werden die Einschränkungen bzgl. der Werte festgelegt, die die Felder eines editierten (also hinzuzufügenden oder zu aktualisierenden) Features besitzen müssen. Die Einschränkungen werden in Form eines Filterausdrucks definiert. Dabei ist zu beachten, dass die Vergleichswerte nicht direkt in den Filterausdruck eingefügt werden, sondern in einem separaten Feld definiert werden. Die Vergleichswerte ersetzen dann jeweils in entsprechender Reihenfolge die '?' in dem Filterausdruck.
Attributeinschränkungen für MapServer und FeatureServer
Mit dem security.manager kann die Sichtbarkeit von Attributen eines Layers oder einer Tabelle über Rechte-Auflagen eingeschränkt werden. Diese Funktion ist für MapServer und FeatureServer verfügbar und bewirkt, dass in der Auflage ausgewählte Attribute aus Antworten des Service herausgefiltert und in Anfragen nicht benutzt werden können. Für den Nutzer eines Dienstes mit solchen Attribut-Einschränkungen entsteht also der Eindruck, als existierten diese Attribute nicht. Über diese Funktion können letztlich bis auf Attributebene Nutzer- bzw. rollenspezifische Sichten auf Layer und Tabellen umgesetzt werden.
Definition von Attribut-Einschränkungen in der Rechteadministration
Um eine Attribut-Einschränkung für einen MapServer oder FeatureServer anzulegen, legen Sie innerhalb eines Rechts eine neue Auflage vom Typ Attribut-Einschränkungen an.
In der hierfür vorgesehenen Oberfläche werden linker Hand die Namen der Layer des Dienstes mitsamt den zugehörigen Attributen angezeigt. Durch die Aktivierung der Checkbox eines Attributs wird dieses zur Liste der nicht zulässigen Attribute hinzugefügt (zu sehen auf der rechten Seite des Dialogs). Ein Deselektieren der Checkbox entfernt das Attribut aus der Liste der verbotenen Attribute.
Hinweise
HTML Popups
Bei bestehenden Attribut-Einschränkungen auf einem MapServer liefert die Operation htmlPopup keine Informationen für ein Feature auf dem entsprechenden Layer.
Multi-Layer Operationen
Falls auf einem Server verbotene Attribute in Operationen referenziert werden, die auf mehreren Layern arbeiten und keine eindeutige Zuordnung der referenzierten Attribute zu den angefragten Layern möglich ist, werden die verbotenen Attribute aus der gesamten Anfrage entfernt.
Angenommen, es existiert eine Attribut-Einschränkung für das Attribut class
auf dem Layer 0
und keine Einschränkung auf dem Layer 1
.
Bei einer Find-Anfrage mit den Parametern layers=0,1
und searchfields=name,class
würde class
aus dem Parameter searchfields
entfernt werden, obwohl class
auf dem Layer 1
erlaubt ist.
Stern-Operator (Alle Spalten)
Abfragen, welche den Stern-Operator für alle Spalten einsetzen (z.B. bei SELECT * FROM table_name
), werden als invalide Anfragen abgelehnt und nicht an den ArcGIS Server weitergegeben.
Diese Maßnahme verhindert dass unbefugte Nutzer über eingeschränkte Attribute Kenntnis erlangen oder sogar Inhalte in Erfahrung dieser erhalten können.
Drucken abgesicherter Dienste mit dem PrintingTools-Service
security.manager unterstützt das Drucken von Karten aus einer Web-Anwendung mit Hilfe z.B. des "PrintingTools"-Service (ein vorkonfigurierter Service im "Utilities"-Ordner des ArcGIS Server).
Bei diesem Service handelt es sich um einen gewöhnlichen GeoProcessing Service ("GPServer"), der das vordefinierte Tool Export Web Map Task
nutzt, um einen Ausdruck zu erzeugen. Andere GeoProcessing-Dienste mit Druckwerkzeugen können ebenfalls verwendet werden, um eine Karte zu drucken
Der Zugriff auf GeoProcessing-Werkzeuge mit Standardmitteln des security.manager ist möglich, so dass der Zugriff auf die Druckfunktion abhängig vom aktuell angemeldeten Nutzer erlaubt werden kann. Wenn ein Druckauftrag an einen geschützten Druckdienst Referenzen auf Dienste wie enthält, die auf der selben security.manager-Instanz abgesichert werden, spiegelt das Druckergebnis die Berechtigungen des angemeldeten Nutzers wieder.
Um diese Funktion in jedem Falle zu gewährleisten, ist es notwendig, dass Sie für den geschützten ArcGIS Server die Authentifizierungsmethode agstoken aktivieren, auch wenn der Zugriff auf den geschützten Druckdienst und die referenzierten Dienste einen unterschiedlichen Authentifizierungsmechanismus verwenden.