Geodaten absichern mit MapProxy. Oliver Tonnhofer Omniscale GmbH & Co. KG

Ähnliche Dokumente
MapProxy. Eine praktische Einführung FOSSGIS Heidelberg. Dominik Helle Oliver Tonnhofer

Neues von MapProxy. Neue (und alte) Funktionen in der Praxis. FOSSGIS 2016, Salzbug Oliver

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

gvsig, PostgreSQL und Mapbender

Technische Infrastruktur für die INSPIRE-Dienste

Frankfurt,

CSGIS Gbr Canalejo & Schönbuchner GIS. Der VfS Viewer: Ein auf Open Source basiertes Web GIS zur Information von Waldbesitzern in Bayern

Nutzung und Erweiterung von IT-Standards zur Realisierung von Authentifizierung und Zugriffsschutz für Geo Web Services

Enterprise Web-SSO mit CAS und OpenSSO

Geoportallösungen mit Mapbender

Eigene Kartendienste mit OpenStreetMap

Version 4.1. securitymanager. What's New?

Portal for ArcGIS - Eine Einführung

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

PHP und MySQL. Sicherheit und Session-Handling mit PHP. Zellescher Weg 12 Willers-Bau A109 Tel

> > > WebOffice ArcGIS Online

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Authentication im Web

Anleitung zur Einbindung von WMS, WFS und WCS in ArcGIS

4. Februar 2008 Klausur EWA

Datenbank-basierte Webserver

Identity Propagation in Oracle Fusion Middleware

Anwendervortrag auf dem 2. LUGD-Tag am in Frankfurt. Liferay an Bord Portale für Zeppelin

Technologische Entwicklung von GIS und Internet der letzten Jahre

Apache HTTP-Server Teil 2

Ausblick auf Shibboleth 2.0

ALKIS- und Dienst-Nutzung mit Mapbender

EOxServer & MapServer. Open Source Lösungen für Erdbeobachtungsdaten

Neuerungen bei Shibboleth 2

Das Geoportal Mittenwalde

Nutzung und Bereitstellung von OGC-Diensten in ArcGIS 9.3

Django - ein Python Web-Framework

9. Aktuelle Geo-Server und -Clients

Björn Heinemann Leiter Entwicklung Energiewirtschaft

Webentwicklung mit Vaadin 7. Theoretische und praktische Einführung in Vaadin 7. Christian Dresen, Michael Gerdes, Sergej Schumilo

Xojo für FileMaker Entwickler

ArcGIS Online Esri Deutschland GmbH

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

1. Integration von Liferay & Alfresco 2. Single Sign On mit CAS

web2py - Web-Framework mit didaktischem Hintergrund Nik Klever Hochschule Augsburg

ArcGIS for Server : Sicherung von Diensten und Anwendungen Erfahrung von Kanton Freiburg

<Insert Picture Here> Investitionsschutz und Innovationsdruck: Wie muss eine zukunftssichere Plattform aussehen?

Konfigurationsbeispiel ZyWALL USG

Authentifizierung und Autorisierung unter Linux/Solaris: PAM und NSS

!"#$"%&'()*$+()',!-+.'/',

MapServer MapCache - der neue WMTS Tile Cache

à la Carte KMU - Lösungen im Alltag für Filemaker und das Web

Collax Web Application

Radius Server. Bericht im Studiengang Computerengineering an der HS-Furtwangen. Student: Alphonse Nana Hoessi Martikelnr.:227106

Browser- gestützte Visualisierung komplexer Datensätze: Das ROAD System

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.0.5

Handbuch SMSjack Nextbit GmbH Version 1.2 Seite 1. Nextbit GmbH

7. ESRI Anwendertreffen an der HFT Stuttgart. Aktuelle Arbeiten an der HFT Stuttgart im ESRI Umfeld

Aktuelle Bedrohungen im Internet

PostGIS für Einsteiger

Web-Anwendungsentwicklung mit dem Delivery Server

Neues in ArcGIS Server 9.3 Matthias Schenker ESRI Geoinformatik AG

Internetsichere Kennwörter

Modulare Anwendungen und die Lookup API. Geertjan Wielenga NetBeans Team Deutschsprachige Überarbeitung, Aljoscha Rittner NetBeans Dream Team

Benutzeranleitung Web Login (Internetzugang an Öffentlichen Datendosen und in Studentenwohnheimen )

5. Thüringer GIS-Forum ALK/ALB WEB - der moderne Auskunftsarbeitsplatz

Index. Key management is key! Fachtagung FGSec, Martin Achermann Leiter IT Security Engineering

Einbindung des Web Map Service für Gemeinden Anleitung

Agenda. IT-Symposium Secure Enterprise Search. Suchen und finden mit Suchmaschinen. Oracle SES Überblick

Schnell performante Web-Applikationen entwickeln. Markus Zapke-Gründemann LinuxTag 2012

Handbuch xgdm-was Extension Version 1.0

Version 4.1. licensemanager. What's New

Benutzung eines Login Modules zur Authentifizierung unter JBoss 4.2.x

Absicherung der IT-Infrastruktur: einheitliche Zugangskontrolle für LAN, WLAN und VPN. Volker Kull

Ensemble Security. Karin Schatz-Cairoli Senior Sales Engineer

MapServer Workshop. Workshop. Einführung in den MapServer

Konfiguration Zentyal 3.3 Inhaltsverzeichnis

Digitales Kompensationsflächenmanagement

KvBK: Authentifizierung und Autorisierung im Web: BasicAuth, DigestAuth, OAuth

Technische Universität München. SAML/Shibboleth. Ein Vortrag von Florian Mutter

SharePoint Security Einführung in das SharePoint Sicherheitssystem. Fabian Moritz MVP Office SharePoint Server

Konfigurationsanleitung bintec Hotspot Lösung GUI

SpatiaLite, das Shapefile der Zukunft?

Makologa Touré Damian Gawenda

10. Berechtigungsverwaltung Grundlagen der Programmierung II (Java)

GeoMedia 6.1.7: WMS. OGC WMS Daten in der GeoMedia Welt

Pylons & ExtJS. PyCologne Vortrag Köln, smart:elligence Unternehmensberatung, Düsseldorf

Ein Blick unter die Motorhaube von Oracle APEX. Patrick Wolf, Sphinx IT Consulting DOAG Konferenz Nürnberg,

Die technischen Aspekte von Mapping-Lösungen

Zusammenfassung Web-Security-Check ZIELSYSTEM

2 Ist-Zustand des Systems 3

Digicomp Microsoft Evolution Day ADFS Oliver Ryf. Partner:

IEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version Deutsch

Grails. Weiterführende Themen zu Internet- und WWW-Technologien. Matthias Springer. 06. Juni 2011

Handlungsempfehlungen zur technischen Umsetzung von INSPIRE-konformen Darstellungs- und Downloaddiensten

Praktikum Datenbanken und verteilte Systeme SS Java Server Pages und Servlets -

Platform as a Service (PaaS) Prof. Dr. Ch. Reich

GeoMedia 6.0: WMS Expansion Pack. OGC WMS Daten in der GeoMedia Welt

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: install.odt. Berger EDV Service Tulbeckstr.

Infinigate (Schweiz) AG. Secure Guest Access. - Handout -

Mapbender3 Workshop. Christian Wygoda. FOSSGIS Dessau 2012

Single-Sign-On mit Java und Kerberos. Michael Wiesner, SOFTCON IT-Service GmbH

Mails in Python senden

Transkript:

Geodaten absichern mit MapProxy Oliver Tonnhofer Omniscale GmbH & Co. KG

Über uns Omniscale GmbH & Co. KG, Oldenburg, DE OpenSource WebGIS- und Serverentwicklung OpenStreetMap Kartendienste MapProxy und Imposm Entwicklung, Support und Schulungen

Inhalt Was ist MapProxy? Was ist Absicherung? Absicherung mit MapProxy Möglichkeiten

Was ist MapProxy?

MapProxy jeder WMS oder Tileserver MapServer, GeoServer, ArcGIS Server, etc. Zwischenspeicher (optional) alle GIS Clients Desktop/Web (WMS), OpenLayers, GoogleMaps, etc.

Was ist Absicherung?

Was ist Absicherung? Nicht jeder darf alles! Benutzer A darf alles Benutzer B darf etwas Benutzer C darf nichts Benutzer D nur manchmal

Authentifizierung Wer? (Identifizierung) Benutzer Benutzergruppe Rechner Anwendung Netzwerk

Autorisierung Was darf X? WMS Anfragen GetMap/GetFeatureInfo/GetLegend Kachel Anfragen (TMS/WMTS/KML) Layers Geographische Ausdehnung

Wer Authentication/Authentifizierung darf was? Authorization/Autorisierung

Authentifizierung Autorisierung Benutzer mit Cookie XYZ Darf alle WMS Anfragen Rechner mit IP 1.2.3.4 Keine FeatureInfo für Layer A Nutzer des WebGIS ABC Desktop GIS mit Benutzername/Passwort Nur Kachelanfragen für Layer B Nur Ausschnitt X

Benutzerdaten Textdatei.htpasswd Datenbank externer Dienst

Authentifizierungsmethoden Autorisierungsmöglichkeiten Benutzerdatenbanken

Authentifizierungsmethoden Autorisierungsmöglichkeiten Benutzerdatenbanken Unzählige Kombinationsmöglichkeiten Keine Standardlösung

MapProxy Absicherung über Zwischenschicht Individuell anpassbar

Webserver Absicherung DB MapProxy

Webserver WMS? BBOX? Layer? Absicherung DB MapProxy

Webserver Absicherung DB MapProxy

Webserver Absicherung DB API MapProxy

Zwischenschicht MapProxy Authentifizierung Verarbeitung der Anfrage Autorisierung Durchsetzung der Einschränkungen

Autorisierung Teilweise Unterstützung durch MapProxy Zwischenschicht Benutzerrechte ermitteln MapProxy Benutzerrechte durchsetzen

Zwischenschicht

WSGI Web Service Gateway Interface (WSGI) analog zur Servlet API in Java Bindeglied zwischen beliebigen Python Webanwendung und Webservern

WSGI Anwendung Serverkonfiguration für Apache mod_wsgi:

WSGI Anwendung Serverkonfiguration für Apache mod_wsgi: from mapproxy.wsgiapp import make_wsgi_app application = make_wsgi_app('./mapproxy.yaml')

WSGI Middleware Verschachteln von WSGI Anwendungen Server ruft Middleware auf Middleware ruft Anwendung auf

WSGI Middleware Serverkonfiguration für Apache mod_wsgi:

WSGI Middleware Serverkonfiguration für Apache mod_wsgi: from mapproxy.wsgiapp import make_wsgi_app mapproxy_app = make_wsgi_app('./mapproxy.yaml') application = middleware(mapproxy_app)

Authentifizierung

Authentifizierung Keine Unterstützung in MapProxy Zwischenschicht (Middleware) übernimmt Authentifizierung

WSGI Authentication Middleware def middleware(app): def application(environ, start_response): # # Authentifizierung # return app(environ, start_response) return application

WSGI Authentication Middleware def middleware(app): def application(environ, start_response): user, passwd = get_basic_auth(environ) if check_passwd(user, passwd): environ[ REMOTE_USER ] = user return app(environ, start_response) return application

WSGI Authentication Middleware def middleware(app): def application(environ, start_response): user, passwd = get_basic_auth(environ) if check_passwd(user, passwd): environ[ REMOTE_USER ] = user return app(environ, start_response) return application

repoze.who Identifizierungs- und Authentifizierungs- Framework für WSGI WSGI Middleware Zahlreiche Plug-Ins Erweiterbar

repoze.who Identifier Session Cookie oder URL Token Challenger Passwortabfrage, Weiterleitung zur Login-Seite Authenticator Benutzername/Passwort abgleich mit DB

repoze.who Middleware

repoze.who Middleware from mapproxy.wsgiapp import make_wsgi_app mapproxy_app = make_wsgi_app('./mapproxy.yaml') application = PluggableAuthenticationMiddleware( mapproxy_app, identifiers, authenticators, challengers, ) application = middleware(mapproxy_app)

repoze.who Plug-Ins

repoze.who Plug-Ins basicauth = BasicAuthPlugin('Abgesicherter Bereich') identifiers = [('basic', basicauth)] challengers = [( basic, basicauth)] htpasswd = HTPasswdPlugin( /etc/opt/mapproxy/htpasswd ) authenticators = [('basic',htpasswd)]

repoze.who Plug-Ins Identifier AuthTktCookiePlugin, BasicAuthPlugin Challenger BasicAuthPlugin, RedirectorPlugin Authenticator HTPasswdPlugin, SQLAuthenticatorPlugin

Eigenes Plugin class BobAuthenticator(): def authenticate(self, environ, identity): login = identity['login'] password = identity['password'] if login == bob and password == letmein : return bob return None

Benutzerdatenbank Textdatei Datenbank (SQLAlchemy) LDAP/etc.

Autorisierung

Autorisierung Was darf X? Autorisierungsfunktion entscheidet MapProxy setzt Einschränkungen durch

Autorisierung full voller Zugriff none kein Zugriff (HTTP 403 Forbidden) unauthorized Benutzer muss sich noch Authentifizieren (HTTP 401 Unauthorized) partial teilweiser Zugriff

Autorisierungsfunktion def authorize(service, environ, layers=[], **kw): return {'authorized': 'full'}

Autorisierung def middleware(app): def application(environ, start_response): environ['mapproxy.authorize'] = authorize return app(environ, start_response) return application

Autorisierungsfunktion def authorize(service, environ, layers=[], **kw): if environ[ REMOTE_USER ] == bob : return {'authorized': 'full'} else: return {'authorized': 'none'}

Beispiel partial WMS Capabilities Dokument enthält nur Layer 1 & 2 Nur Layer 2 ist Queryable GetMap für Layer 1 & 3 gibt nur Layer 1 zurück

Beispiel partial { } 'authorized': 'partial', 'layers': { 'layer1': { 'map': True, 'featureinfo': False, }, 'layer2': { 'map': True, 'featureinfo': True, } } WMS Capabilities Dokument enthält nur Layer 1 & 2 Nur Layer 2 ist Queryable GetMap für Layer 1 & 3 gibt nur Layer 1 zurück

limited_to { 'authorized': 'partial', 'layers': { 'layer1': { 'map': True, 'limited_to': { 'geometry': [-10, 0, 30, 50], 'srs': 'EPSG:4326', }, },...

limited_to { 'authorized': 'partial', 'layers': { 'layer1': { 'map': True, 'limited_to': { 'geometry': [-10, 0, 30, 50], 'srs': 'EPSG:4326', }, },... WMS Capabilities mit beschränktem Layer Extent

limited_to

limited_to...... 'layer2': { 'map': True, 'limited_to': { 'geometry': 'POLYGON((...))', 'srs': 'EPSG:4326', }, },

limited_to

limited_to...... 'layer2': { 'map': True, 'limited_to': { 'geometry': postgis_query_result, 'srs': 'EPSG:4326', }, },

limited_to...... 'layer3': { 'map': True, 'limited_to': { 'geometry': Point(8, 53).buffer(2) 'srs': 'EPSG:4326', } }

limited_to

WMTS/TMS

Möglichkeiten

Layer nur Intern Freigeben Authentifizierung nach Anfrage IP Autorisierung full für Authentifizierte Nutzer partial ohne Layer für andere Nutzer

Leitungsauskunft Auskunftsanfrage über Webanwendung Authentifizierung über URL-Token Autorisierung limited_to Auskunftsbereich, ggf. mit Puffer Zeitliche Beschränkung

WebGIS mit Nutzergruppen

WebGIS mit Nutzergruppen Bestehende Webanwendung mit Benutzern und Gruppen Authentifizierung über Cookie der Webanwendung Autorisierung Rechte aus Datenbank der Webanwendung

Authentifizierung Interne Desktop-GIS Nutzer Freischaltung auf Basis lokaler IP-Adresse Basic-Authentication über HTTPS Externe Desktop-GIS Nutzer Basic-Authentication über HTTPS

Hybrid-Authentifizierung Über Cookie, wenn gesetzt (Identification) Sonst HTTP-Basic Auth (Challenge)

Hybrid-Authentifizierung

Zusammenfassung Absicherung Authentifizierung Autorisierung WSGI Zwischenschicht Flexible Lösungen

Vielen Dank Weiter Informationen: http://mapproxy.org Oliver Tonnhofer E-Mail: tonnhofer@omniscale.de