GeoShield @ GRASS & GFOSS 2012

24
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

Transcript of GeoShield @ GRASS & GFOSS 2012

Page 1: GeoShield @ GRASS & GFOSS 2012

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

Page 2: GeoShield @ GRASS & GFOSS 2012

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

Page 3: GeoShield @ GRASS & GFOSS 2012

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

Page 4: GeoShield @ GRASS & GFOSS 2012

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

Page 5: GeoShield @ GRASS & GFOSS 2012

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??

Page 6: GeoShield @ GRASS & GFOSS 2012

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

Page 7: GeoShield @ GRASS & GFOSS 2012

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

Page 8: GeoShield @ GRASS & GFOSS 2012

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

Page 9: GeoShield @ GRASS & GFOSS 2012

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

Page 10: GeoShield @ GRASS & GFOSS 2012

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)

Page 11: GeoShield @ GRASS & GFOSS 2012

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

Page 12: GeoShield @ GRASS & GFOSS 2012

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

Page 13: GeoShield @ GRASS & GFOSS 2012

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

Page 14: GeoShield @ GRASS & GFOSS 2012

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

Page 15: GeoShield @ GRASS & GFOSS 2012

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

Page 16: GeoShield @ GRASS & GFOSS 2012

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

Page 17: GeoShield @ GRASS & GFOSS 2012

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

Page 18: GeoShield @ GRASS & GFOSS 2012

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

Page 19: GeoShield @ GRASS & GFOSS 2012

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

Page 20: GeoShield @ GRASS & GFOSS 2012

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

Page 21: GeoShield @ GRASS & GFOSS 2012

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

Page 22: GeoShield @ GRASS & GFOSS 2012

DACD / IST / Gestione dei permessi e dell'autenticazione verso servizi OGC con GeoShield

GeoServer PLUG-IN

DEMO

16 Febbraio 2012

22

Page 23: GeoShield @ GRASS & GFOSS 2012

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

Page 24: GeoShield @ GRASS & GFOSS 2012

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