Mapbender Security Proxy
From MapbenderWiki
Contents |
Introduction
The Mapbender SecurityProxy implements access control and user management for standardized OGC services. Access to map services is granted after user Authentication and Authorization. The web based user administration interface can be used to deny or grant access to individual users, groups and features (operations). Additionally protocols can be enabled to log every action of the authenticated user. A translation of the German part below will follow as time permits.
Access Privilege Granularity
Access can be managed at different levels (with increasing granularity):
- complete WMS
- individual layer of a WMS
- query for features within WMS layer
- query for individual features within WMS layer
- restrict map extent to feature (spatial restriction)
- restrict read access to WFS objects identified by attributes
- restrict edit access to WFS objects identified by user attributes
The granularity required to grant privileges will have an effect on your choise of software. Mapbender by default implements the first level (WMS access) including dynamic Capabilities rewriting. Access restriction on individual object level is implemented by dynamically adding OGC filters with corrsponding user identity attributes. This requires the the user / ownder attributes are contained in the spatial data objects. Thus to be able to restrict access on a feature attribute level it is necessary to synchronize the spatial data with the user's identity. The synchronization process will always be highly individual and requires a flexible access restriction concept.
Technical Specifications and Setup
The Owsproxy page describes how to setup and start using the OWS Security Module.
Links and Further Information
- EOGEO Mailing List
- Secure your SOA gives some general insight on what issues should be considered when integrating security modules into an IT-architecture.
Deutsch
Einführung
Die zunehmende Verbreitung von Karten- und Geometriediensten wirft Fragen des Datenschutzes und der Datensicherheit auf. Das gilt auch und im Besonderen für Architekturen, die OGC-standardisierte Anwendungen beinhalten und über ein öffentliches Netzwerk erreichbar sind.
Mapbender implementiert eine Benutzerverwaltung mit Authentisierungsmodul und bildet die Autorisation von Benutzern, Funktionen und Diensten als Relationen in der Benutzerverwaltung ab. Das Mapbender Security Proxy Modul (Owsproxy) ermöglicht den gesicherten Zugriff auf diese Dienste. Die Dienste selbst werden über herkömmliche Sicherungsmechanismen geschützt. Lediglich das OWS Proxy Modul muss in der Lage sein den Dienst anzusprechen.
Technische Spezifikation und Setup
Die Seite Owsproxy beschreibt wie das OWS Security Module in Betrieb genommen wird.
Implementierung
Die Authentisierung erfolgt mit einem Web-Browser über https durch Übertragung von Benutzername und Kennwort. Der Server prüft Benutzername und Kennwort und startet bei gültiger Eingabe eine Sitzung und erzeugt einen Schlüssel. Über eine dynamisch erzeugte Webseite werden dem Benutzer Links zu den autorisierten Capabilites-Dokumenten bereitgestellt. Die URL baut sich aus dem Basisverzeichnis des OWS Proxy auf, gefolgt von zwei virtuellen Unterverzeichnissen. Die Verzeichnisse setzen sich aus dem Sitzungsschlüssel (verschlüsselt als MD5 Hash) und eindeutiger WMS-ID (ebenfalls als MD5 Hash) zusammen.
Alle Anfragen (GetCapabilites, GetMap, GetFeatureInfo, DescribeFeature, GetFeature, etc.) werden immer an den OWSproxy gestellt. Das Apache rewrite-Modul leitet die Kombination aus Sitzungsschlüssel und eindeutiger WMS-ID als Parameter an das OWSProxy Modul weiter. Dadurch werden die Autorisierungsdaten Teil der OWS Online Resource.
Jeder WMS Client kann von diesem Endgerät aus per http (bzw. https) von dem Mapbender OWS Proxy Capabilities Dokumente anfordern. Die Online Resource der Capabilities Dokumente werden dabei dynamisch umgeschrieben und enthalten die Kombination aus Sitzungsschlüssel und eindeutiger WMS-ID.
Status der Implementierung
Das Mapbender Security Proxy Modul ist eine Weiterentwicklung der ersten Generation, die bereits in mehreren Geodaten-Infrastrukturen produktiv im Einsatz ist. Die Neuerung liegt in der Kapselung der Autorisierungsdaten in den vorderen Teil der URL des Dienstes. Damit können OGC Aufrufe mit Standard-Syntax ohne zusätzliche Parameter gesichert werden. Das Owsproxy Modul ist ab Version 2.4 enthalten.
Voraussetzungen
Folgende Komponenten werden für diese Lösung benötigt:
- Apache http Server >= Version 2.0
- Apache Modul Alias (standardmäßig installiert)
- Mapbender Installation >= Version 2.4
Die Mapbender Security Proxy Lösung
Die Mapbender Software implementiert ein Modul, das sich wie ein normaler Kartendienst verhält, vor jedem Zugriff aber zusätzlich prüft, ob die Anfrage von einer autorisierten Identität gestellt wurde. Vollständige Authentisierung und Autorisierung sind Bestandteil der Mapbender Umgebung und können sehr einfach für diese Fragestellung genutzt werden. Es wird lediglich ein weiteres Modul zwischen dem eigentlichen Dienst und der Anfrage aus dem Browser gesetzt. Der Dienst sollte zusätzlich gegen unberechtigten Zugriff geschützt werden.
Gültigkeit
Bei der Anmeldung an Mapbender wird die Identität des Anwenders durch Eingabe einer Benutzername-Kennwort Kombination überprüft und eine Session-ID erzeugt. Die Übertragung sollte verschlüsselt erfolgen (z.B. über https). Die Gültigkeitsdauer der Sitzung sollte individuell eingestellt werden. Wenn der Server innerhalb dieser Gültigkeitsspanne keine Aktivität registriert verfällt die Sitzungs-ID. Soll danach eine neue Aktion ausgeführt werden, muss erneut eine neue Sitzung eröffnet werden. Bei jeder Aktion, die ein serverseitiges Skript aufruft wird die Gültigkeit der Session-ID verlängert.
Erzeugen der Session-ID
Die Benutzer-Passwort Kombination wird in der Mapbender Datenbank überprüft. Ist die Eingabe gültig wird eine Session-ID erzeugt und an den Client Browser übergeben. Sie finden die Session-ID in der Cookies-Liste Ihres Browsers (bsp: Einstellungen in Firefox):
Name: PHPSESSID (Name des Cookies) Information: b60cd1f203f8a171c6ff27593ffbddcd (die Sitzungs-Nummer, eine zufallsgenerierte Zeichenfolge) Host: wms1.ccgis.de (der Name des Servers) Pfad: / (weitere Einschränkung möglich) Senden für: Jeden Verbindungstyp (weitere Einschränkung möglich) Gültig bis: Am Ende der Sitzung (weitere Einschränkung möglich, siehe Gültigkeitsdauer)
Diese Session-ID wird bei jeder weiteren Anfrage mit übertragen und serverseitig überprüft. Nur wenn die Session-ID gültig ist wird der Kartenaufruf an den gesicherten Dienst weitergeleitet. Ist die Sitzung verfallen (also die Session-ID ungültig) wird die OGC WMS GetMap Anfrage mit einer In-Image-Exception beantwortet, es wird ein Bild zurückgeliefert in dem oben links der Text "Permission denied" zu lesen ist.
Autorisation / Berechtigung
Nach der Bestätigung der Identität (Sie sind jetzt als Anwender "SecureUser" angemeldet) sehen Sie zwei Links. Dem Anwender "SecureUser" wurde über die Mapbender Administration das Recht erteilt, auf diese zwei Oberflächen zuzugreifen. Öffnen Sie die GUI Authenticated_WMS_Access in einem neuen Fenster. Es wird eine Standard-Kartenanwendung mit einer einfachen Deutschland-Karte angezeigt. Diese ist rot eingefärbt, damit sie sich deutlich abhebt. Der zweite Dienst mit den bunten Punkten (die Mapbender Anwenderkarte) ist ungesichert, also immer verfügbar, da sie direkt vom ungeschützten WMS Dienst bezogen wird.
Offene Punkte
Statisch abgelegte Web Map Context Dokumente enthalten eine feste Online Resource, die nicht dynamisch verändert werden kann. Für intern in Mapbender verwaltete WMC Dokumente ist das unproblematisch, da diese von Mapbender vor der Ausgabe modifiziert werden können. Es bestünde die Möglichkeit diese neue URL dynamisch auszuhandeln, wenn das WMC Dokument an die Mapbender WMC-Ladefunktion übergeben wird.
Standardisierung im OGC
Das Open Geospatial Consortium hat noch keine Spezifikation zum Schutz vor unberechtigtem Zugriff auf Dienste oder sichere Übertragung verabschiedet. Ein Diskussionspapier (OGC Discussion Paper: GeoXACML, a spatial extension to XACML 345kB PDF) beschreibt eine verteilte Architektur unter Verwendung des OASIS Standards XACML (access control XML) der um räumliche Eigenschaften erweitert wird. Eine deutschsprachige Präsentation zu GeoXACML (2,8 MB PDF!) steht auf den Seiten des LVermA NRW zum Download bereit. Auch dieser Vorschlag beinhaltet einen technischen Ansatz, der jedoch auch keine Lösung für das Problem der Rechtezuweisung (Authorisation Management) vorsieht.
Weitere Informationen zu Standard-Sicherheitsverfahren
Standard Verfahren zur Sicherung gegen unberechtigten Zugriff und verschlüsselte Übertragung wurden vom BSI (Bundesamt für Sicherheit in der Informationstechnologie) zusamengestellt. Das Grundschutzhandbuch enthält umfangreiche Gefährdungs- und Maßnahmenkataloge, die als Basis für eine umfassend gesicherte Architektur verwendet werden können.

