Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Gestione lato server di permessi utente verso servizi OGC
GeoShield
SUPSI
OGC
Cannata Massimiliano - Antonovic Milan
Istituto Scienze della Terra - SUPSI - Switzerland
Lugano11-12 Febbraio 2010
FOSS4G-IT
Indice degli argomenti
Introduzione
Implementazioni OGC
Architettura di un sistema aperto
Architettura GeoShield
Tecnologie
Design Pattern
Portale di amministrazione
Esempio con il WMS
Dimostrazione
Lavori in corso
Domande
Introduzione
Progetti di dominio pubblici Progetti privati
(dati sensibili)
Sistema aperto
L'Istituto Scienze della Terra
Sistema protetto
Implementazioni OGCall'Istituto Scienze della Terra
WMS, WFS, WCS
Web Processing Service
istSOS sensor observation service
Internet
Analisi Ogni servizio è libermente
accessibile dal Web
ConsultazioneWMS
Applicationi
WFS
SOS
WPS
Architettura di un sistema apertoStruttura del sistema
Accesso applicazioni web
Autenticazione utente (?)
Richiesta mappa
Processamento dati
Flusso del lavo ro
Consultazione
Applicationi
WMS
WPS
Architettura di un sistema apertoLogica delle applicazioni
Internetsu HTTPS
Analisi
Priv
ate
Net
wor
k
Ogni servizio
è protetto
da GeoShield
Consultazione
Architettura di GeoShieldStruttura del sistema
WMS
Applicazioni
WFS
SOS
WPS
Internetsu HTTPS
Analisi
Priv
ate
Net
wor
k
GeoShield comunica con i servizi nella
loro lingua
Consultazione
Architettura di GeoShieldStruttura del sistema
WMS
Applicazioni
WFS
SOS
WPS
Accesso applicazione web
Autenticazione utente
Richiesta mappa
Processamento richiesta
Session e di lav oro
Banca Dati
UtentiWMS
Consultazione
WPS
Architettura di GeoShieldLogica delle applicazioni
Java Servlet:
- Gestione richieste HTTP
GeoTools, GeoApi: - Conversione da CQL a OGC:FILTER
- Fusione/Combinazione dei filtri
Persistence Api (TopLink lib):
- Mappatura del database con oggetti Java
PostgreSQL database- Immagazzina permessi sui servizi da parte di utenti e gruppi
Tecnologie
ExtJS interface
- Gestione tramite un interfaccia Web
Lato Server
Amministrazione Web
Vantaggi:
Architettura modulareAggiunta semplice di filtri
per nuovi servizi
Reindirizzare le richieste HTTPPer esempio: redirezione ad una pagina di login
Pre-processamento e post-processamentoModifica attiva delle richieste client
e delle risposte del servizio
Design PatternIntercepting filter pattern
Sviluppato usando il framework
Accesso con autenticazione
Interfaccia in stile Desktop
Gestione gruppi e utenti
Inizializzazione servizi
Definizione permessi
Portale di amministrazione
Accessibile con qualsiasi client OGC-WMS
Privilegi di accesso:- Definizione modalità ai singoli layer- Definizione di permessi sulle singole feature- Definizione di aree di visibilità.
I privilegi vengono definiti con l'ausilio di Common Query Language (CQL), un linguaggio compatto e comprensibile, che permette interessanti combinazioni di creazione di permessi.
Esempio con il WMSFunzionalità principale
Consultazione
http:www.myurl.ch/geoshield/map/srv1?
REQUEST=GetMap&
BBOX=-97.105,24.913,-78.794,36.358&
WIDTH=560&HEIGHT=350&
LAYERS=DEMO&
FORMAT=image/png&
SERVICE=WMS
GeoShiel
d
(...)
Esempio con il WMS Ciclo di vita di una richiesta GetMap
Filtro di
Autenticazione
L'utente è autenticato
L'utente non è autenticato
Risposta codice HTTP
401 Unauthorized
Filtro dei
Servizi
Richiesta WMS GetMap
L'utente non ha il permesso
di accedere al servizio richiesto
Risposta codice HTTP
403 Vorbidden
Accesso al servizio permesso
Filtro del
WMS
L'utente non ha il permesso
di accedere al LAYER richiestoRisposta codice HTTP
403 Vorbidden
(...)
(...)
Filtro del
WMS
(...)
- Caricamento dei filtri CQL per il layer richiesto:“BBOX(the_geom, 147.15,-43, 147.5,-42.75)”
- Conversione da CQL a OpenGIS Filter Encoding“<ogc:Filter>
<ogc:BBOX>
<ogc:PropertyName>the_geom</ogc:PropertyName>
<gml:Box>
<gml:coordinates>147.15,-43, 147.5,-42.75</gml:coordinates>
</gml:Box>
</ogc:BBOX>
</ogc:Filter>”
(...)
Consultazione
GeoShieldhttp:www.otherurl.ch/map/wms?
REQUEST=GetMap& [...]
Filter=
<ogc:Filter>
<ogc:BBOX>
<ogc:PropertyName>
the_geom
</ogc:PropertyName>
<gml:Box>
<gml:coordinates>
147.15,-43, 147.5,-42.75
</gml:coordinates>
</gml:Box>
</ogc:BBOX>
</ogc:Filter>
Mappa generata
GeoShield restituisce
la mappa
Inoltro della richiesta al server wms
con il parametro FILTER modificato
WMS
Gestione di utenti e gruppi centralizzata
Processamento di qualsiasi tipo richiesta OGC WMS
Fusione dei filtri utente in entrata con i permessi GeoShield
Creazione di filtri Common Query Language (CQL)- Uso di operatori spaziali per stabile i permessi di accesso
Gestione dei permessi di una o più istanze WMS anche se dislocate su server diversi
Esempio con il WMSPunti forti
Demo Video
Dimostrazione
Integrazione servizi supplementari:- WFS- WPS- SOS
Miglioramento interfaccia Web con OpenLayers per la definizione e test dei permessi WMS o WFS
Integrazione applicazioni preesistenti- Centralizzazione dell'autenticazione degli utenti
Lavori in corso