DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
GeoShield project Gestione dei permessi e dell'autenticazione verso servizi OGC
Presentazione del plug-in per il Resource Access Manager di GeoServer e
della protezione dei servizi Sensor Observation service
16 Febbraio 2012
1
Milan P. Antonovic, Institute of Earth science - SUPSI
Massimiliano Cannata , Institute of Earth science - SUPSI
XIII Meeting
GRASS e GFOSS
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Indice
• Introduzione dell’Istituto Scienze della Terra – SUPSI
– Le implementazione OGC usate
– La necessità di proteggere I dati
• Presentazione di GeoShield
– Le strategie di protezione di GeoShield
– L’interfaccia Web di amministrazione
– I servizi OGC protetti
– La protezione del Sensor Observation Service
– Il plug-in per il Resource Access Manager di GeoServer
• Gestione degli accessi
• Applicazione dei permessi di accesso
– Demo del GeoShield plug-in
– Prossimi miglioramenti
16 Febbraio 2012
2
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Introduzione dell’Istituto Scienze della Terra – SUPSI
Campi di attività:
• Pianificazione territoriale
• Idrogeologia
• Idrologia
• Geologia
• Geomatica
16 Febbraio 2012
3
Incentrati su:
• Mandati governativi
– Mantenimento di geo-database
– Applicazione Web di supporto alle
decisioni:
• Pericoli naturali
• Protezione dell’acqua
• Pozzi, sorgenti e sondaggi
• Monitoraggio rete indrologica
• Progetti interregionali (EU, World Bank)
• Corsi di aggiornamento
• Progetti di ricerca
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Le implementazione OGC usate
16 Febbraio 2012
4
Distribuzione di Dati geografici
Monitoraggio
Processamento
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
La necessità di proteggere I dati
16 Febbraio 2012
5
WMS
Applicazioni Web
WFS
SOS
WPS
Web
Dati pubblici
Dati sensibili
Dati misti
Come proteggere in maniera
centralizzata tutti i servizi??
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Presentazione di GeoShield
• GeoShield è una soluzione Open Source
per la gestione dell’autenticazione e
dell’autorizzazione verso servizi OGC
• Sviluppato in Java
• Librerie di supporto:
• Apache Commons
• GeoTools
• EclipseLink [Persistence API]
• PostgreSQL
• JSON parser
16 Febbraio 2012
6
• Interfaccia amministrativa Web
• Sencha - Ext JS
• OGC standards protected
• WMS
• WFS
• SOS
• Plug-in per il Resource Access
Manager di GeoServer
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Le strategie di protezione di GeoShield
16 Febbraio 2012
7
HTTPS Web
GeoShield Security Proxy
HTTP basic
authentication
Web administration interface
Compatibilità con:
• Navigatori Web
• Applicazioni Desktop
• Udig, QGIS, ArcGIS
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Pre-processamento della richiesta
8
GetFeature (WFS)
GetFeature + Filtri OGC
Inoltro dei dati
Caricamento permessi
CQL per ogni layer
Il dato finale
GeoShield WFS service User
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Post-processamento della richiesta
9
GetCapabilities GetCapabilities
Capabilities document
1. Parsing response
2. Adapt response
according to user
filter Capabilities document
GeoShield OGC service User
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
L’interfaccia Web di amministrazione
16 Febbraio 2012
10
• Accesso riservato
• Interfaccia amichevole (Desktop-like GUI)
• Gestione delle autorizzazioni per:
– Utenti
– Gruppi
– Servizi (OGC)
– Permessi (per layer)
– Richieste (OGC)
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
I servizi OGC protetti
Web Map Service 1.1.1: Protocollo standard per la diffusione di immagini di mappe georeferenziate sul Web
• GeoServer (testato): grazie alla capacità di applicare filtri OGC su WMS
– CQL completo (Common Query Language)
• Others (not tested):
– INCLUDE/EXCLUDE
• Richieste:
– GetCapabilities
– GetMap
– GetFeatureInfo
– GetLegendGraphic
16 Febbraio 2012
11
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
I servizi OGC protetti
Web Feature Service 1.1.0: Protocollo standard per la diffusione di dati vettoriali sul Web
• Definizione dei permessi:
– CQL completo (Common Query Language)
• Richieste (Basic profile):
– GetCapabilities
– DescribeFeatureType
– GetFeature
• Formato output: GML
16 Febbraio 2012
12
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
I servizi OGC protetti
Sensor Observation Service 1.0.0: Protocollo standard che difinisce le richieste di raccolta e inserimento di dati
provenienti da sensori
• Tipologia di permessi:
– Inclusione / Esclusione degli Offerings
• Richieste gestite (Basic profile):
– GetCapabilities
– GetObservation
– DescribeSensor
• Formato di risposta:
– text/xml;subtype='sensorML/1.0.0' 16 Febbraio 2012
13
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
La protezione del Sensor Observation Service
• I permessi si basano sull’applicazione di permessi Vedi/Nascondi a livello dei
raggruppamenti sos:ObservationOffering a livello del documento
sos:Capabilities, GeoShield pùo così escludere l’accesso a diversi gruppi di
utenti:
• Features
• Procedures
• ObservedProperties
16 Febbraio 2012
14
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
<sos:Capabilities>
[...]
<sos:Contents>
<sos:ObservationOfferingList>
<sos:ObservationOffering gml:id="aaaa">
<gml:name>urn:x-ist::offering:aaaa</gml:name>
<gml:boundedBy>[…]</gml:boundedBy>
<sos:eventTime>[…]</sos:eventTime>
<sos:procedure xlink:href="B_TRE" />
<sos:procedure xlink:href="H_TRE" />
<sos:procedure xlink:href="P_TRE" />
<sos:procedure xlink:href="T_TRE" />
<sos:observedProperty xlink:href="urn:ogc:def:property:x-ist::meteo:air:humidity"/>
<sos:observedProperty xlink:href="urn:ogc:def:property:x-ist::meteo:air:pressure"/>
<sos:observedProperty xlink:href="urn:ogc:def:property:x-ist::meteo:air:radiation"/>
<sos:observedProperty xlink:href="urn:ogc:def:property:x-ist::meteo:air:rainfall"/>
<sos:featureOfInterest xlink:href="urn:ogc:object:feature:x-ist::station:Trevano"/>
</sos:ObservationOffering>
<sos:ObservationOffering gml:id=“bbbb">
[…]
</sos:ObservationOffering>
<sos:responseFormat>text/xml;subtype='sensorML/1.0.0'</sos:responseFormat>
<sos:responseMode>inline</sos:responseMode>
<sos:resultModel>om:Observation</sos:resultModel>
</sos:ObservationOfferingList>
</sos:Contents>
</sos:Capabilities>
15
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
GeoShield’s Sensor Observation Service protection strategy
16
ObservationOffering 1:
• Sensor 1
• Sensor 2
ObservationOffering 2:
• Sensor 3
• Sensor 4 (private)
• Sensor 5
ObservationOffering 3:
• Sensor 1
• Sensor 2
• Sensor 5
• Sensor 6
S1
S2
S6
S4
S3
S5 Group 1
Group 2
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
GeoServer Resource Access Manager plug-in
• Con la versione 2.1.x il Team di sviluppatori GeoServer ha introdotto un
migliorato framwork di sicurezza (Resourse Access Manager) con capacità di
applicare dei filtri sui dati geografici:
– La caratteristica principale è quella di permetterne l’estensione con il
sistema attuale di plug-in
• Benefici:
– Non più permessi limitati (definizioni Sì/No) per ogni layer
– Maggiori possibilità di implementare regole di accesso granulari
• Filtri basati su funzioni geografiche (BBOX, INTERSETC…)
• Filtri basati su attributi
• Filtri Include / Exclude
• Applicazione di permessi sui workspace
– Integrazione con database esterni
– Maggiore affidabilità e robustezza a livello dei dati
16 Febbraio 2012
17
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Access rule application process
18
1. GetMap
3. Authorization object
9. Map
GeoShield User GeoServer
4. L’utente è
autorizzato?
5. Error 401 - Unauthorized
7. Rule Object
6. Get Access Rule
2. Autenticazione
8. Apply rule / Caching rule
Ok Cancel
User: foo.bar
Password: xxxxxxx 5. Caching
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Access rule application process
19
1. GetMap
4. Map
GeoShield User GeoServer
2. L’utente è
autorizzato?
3. Error 401 - Unauthorized
3. Apply rule
Ok Cancel
User: foo.bar
Password: xxxxxxx
Aggiornamento asincrono
dei permessi
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Benchmarking di richieste WMS GetMap
16 Febbraio 2012
20
threads/requests 1/100 2/200 4/200 8/400 16/400
GeoServer* 79 71 79 102 316
GeoShield
(PROXY) 291 315 653 3346 7837
GeoServer
(PLUGIN) 134 151 190 332 1320
• I test sono stati svolti con JMeter sulla postazione di sviluppo:
– Ubuntu 10.04 32bit, Intel Core Duo 2.4 GHz E4600, 4Gb RAM
• Utilizzando una progressione di 1, 2, 4, 8, and 16 threads, ogni gruppo di thread
eseguendo 100, 200, 200, 400, 400 richieste rispettivamente.
• Layer: topp:tasmania_water_bodies
* Senza autenticazione
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Installing the plug-in
Con GeoShield e GeoServer già installati, l’aggiunta del plug-in e relativamente
semplice:
1. Copiare il file geoshield-1.0.jar nella cartella WEB-INF/lib directory di
GeoServer
2. Piccola modifica nel file web.xml di GeoServer
3. Bisogna crear un utente GEOSHIELD_USER in GeoServer
4. Configurare i permessi di accesso con GeoShield
16 Febbraio 2012
21
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
GeoServer PLUG-IN
DEMO
16 Febbraio 2012
22
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Prossimi miglioramenti
È attualmente in corso lo sviluppo
della version 1.0 stabile.
• Estensione della sicurazza a:
– WPS - Web Processing Service
– Test di compatibilità WMS
• Web administration interface
– Re-design utilizzando ExtJS 4
– Integrazione con OpenLayers (Test in tempo reale dei permessi)
• GeoShield core:
– Apache Maven building automation
– Refactoring del codice
– Incremento delle prestazioni
16 Febbraio 2012
23
DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield
Grazie
Istituto Scienze della Terra
http://www.ist.supsi.ch
Milan P. Antonovic, Istituto Scienze della Terra - SUPSI
Massimiliano Cannata, Istituto Scienze della Terra - SUPSI
16 Febbraio 2012
GeoShield Project
http://sites.google.com/site/geoshieldproject
XIII Meeting
GRASS e GFOSS
Questa presentazione è distribuica con licenza
Creative Commons Attribution-ShareAlike 3.0 Unported License