OBS:
Några av dessa webservice-länkar
är nåbara externt. Andra öppnas om
det kommer önskemål.
SMHI webservices
Bakom kulisserna
Infrastruktur och säkerhetslösningar
Demonstration av webservices
Esa Falkenroth, Informationsarkitekt, SMHI.
Webbtjänster inom vatten
Bakom kulisserna?
Bakom kulisserna: Live Demo av två olika typer av webservice
Vi “låtsas” vara en dator som ska hämta data.
Hämtning av vanliga kartskikt från en geoserver
Nerladdning av stora datamängder via webservice
Hämtning av information om avrinningsområden.
Bakom kulisserna: Vi vill utveckla nya tjänster fort
…….men hur skyddar vi interna system mot angrepp??
Säker infrastruktur / Autentisering / Övervakning
Hantering av sekretess och dataskydd
Säkerhetsrutiner
Kort lista på teknikval som fungerat bra för SMHI
2
Webbtjänster inom vatten
Traditionell infrastruktur säkra webservice
En osäker zon (DMZ) med kopia av de data som ska exponeras
Interna resurser skyddad eftersom ingen ingående trafik tillåts.
Att hålla kopior av flera terabyte data kostar mycket!
Elektroniska tryckpressen (publicerar data utan att veta om de behövs)
INTERNET
DEMILITARIZED ZONE (DMZ)
BACKUP
INTERNA RESURSER
3
Webbtjänster inom vatten
Infrastruktur för säkra webservice
Ett osäkert lager (DMZ) utan kopior av stora interna databaser
Speciella accessmoduler som begränsar åtkomst till interna resurser
Brandväggsregler och olika protokoll in och ut i A-net ökar säkerhet.
Interna resurser åtkomliga men ändå skyddade från osäkra zonen.
INTERNET
DEMILITARIZED ZONE
ACCESS-MODULER (A-NET)
INTERNA RESURSER
4
Webbtjänster inom vatten
Webservice för att nå data
Kartor via standardiserade WMS- och WFS-tjänster
Nerladdning av stora mängder data.
Interna webservice ”bakom kulisserna” för hämta av data från databaser
5
Webbtjänster inom vatten
Vanliga WMS-anrop för kartor
En applikation anropar webbserver pss som en webbläsare
Anropet skickas till en karttjänst (t.ex. en Geoserver)
Karttjänsten skickar tillbaka en karta till applikationen.
Ofta är applikationen javaskript som kör i en webbläsare.
GetMap&
version=1.1.1&
Layers=SMHI_vatten
:huvudavrinningsomraden
2008_2 &
width=415 &
height=550 &
srs=EPSG:3021
http://map.smhi.se/geoserver/wms?bbox=1009259.62277
19582,6036447.5032413,2226407.6960645295,7821210.
570555659&styles=&Format=image/png&request=Get
Map&version=1.1.1&layers=SMHI_vatten:huvudavrinn
ingsomraden2008_2&width=415&height=550&srs=EP
SG:3021
6
Webbtjänster inom vatten
Visning genom en webbapplikation (indirekta WMS-frågor):
http://www.geodata.se
7
Webbtjänster inom vatten
Helt vanlig kartlösning bakom kulisserna
Openlayers i webbläsaren.
Anrop går via Apache-front
Geoserver svarar på WMS-anrop
Cachade bilder för alla zoomnivåer för prestanda i kartan (ca 1 miljon bilder).
Resultatet är bilder
Lite WFS-tjänster för att visualisera mätstationer och ”valda områden”
Ganska vanlig lösning….
8
Webbtjänster inom vatten
En helt annan typ av webservice
- Nerladdning av stora mängder data
Slutresultatet resultat från simuleringar och mätningar snarare än kartor
Liknande sätt att hämta data:
En applikation anropar webserver på samma sätt som en webbläsare
URL http://maskinnamn.smhi.se/nerladdningstjänst/sökvillkor/sökvillkor
HTTP method (GET/ POST/ PUT/ DELETE)
REST-teknik skapar en illusion av att data finns i en katalogstruktur
Topp-kataloger motsvara metadata
Längst ner ligger data.
Undersöka vilka mätstationer SMHI har
http://homevatten-utv:5555/wiskiws/v1/stations
Hämta ner tidsserier från 1923-08-01 till 2011-01-17 för Kukkasjärvi
http://homevatten-utv:5555/wiskiws/v1/stations/1160/Q/DayMean
9
Webbtjänster inom vatten
Exempel hämta simuleringsdata
via webservice (annan ”drill-down” )
Utvecklat för VISS men kan efter överenskommelse användas av vem som helst
GET /v1
(Vilka nerladdningar stöds?)
GET /v1/downloadSetup1/
(Vilka områden finns det data för)
GET /v1/downloadSetup1/613954-134879/ (Vilka data för ett område)
https://vattenwebws-tst.smhi.se/v1/
https://vattenwebws-tst.smhi.se/v1/downloadsetup1
https://vattenwebws-tst.smhi.se/v1/downloadsetup1/614578-138391
REST gör det lätt att utforska metadata.
vilka delavrinningsområden finns
Vilka data kan man hämta för dessa delavrinningsområden?
Applikation kan direkt gå in databaser och hämta senaste data.
10
Webbtjänster inom vatten
Ytterligare ett exempel:
Hämta data från SVAR via webben
http://produkter.smhi.se/svar/sws/sws.php?aroid=650452-150081
11
Webbtjänster inom vatten
Bakom kulisserna: REST-standarden
package com.suryasuravarapu.jersey;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@Path ("/helloworld")
public class HelloWorldResource {
@GET
@Produces ("text/plain")
public String sayHello() {
return "Hello World"; } }
Tredjepartsprodukter Apache/Tomcat/Jersey
tar hand om anropet från ”maskinen”
Jersey bygger på Representational state
transfer (REST) JSR 311(JAX-RS)
standarden.
Svar från webservice kan formatteras:
- Excel
- XML
- Text etc, etc..
12
Arbete på SMHI för att möjliggöra
snabbare utveckla webservice utan
att riskera viktiga produktionssystem
Webbtjänster inom vatten
Infrastruktur för säkra webservice
Ett osäkert lager (DMZ) utan kopior av stora interna databaser
Speciella accessmoduler som begränsar åtkomst till interna resurser
Brandväggsregler och olika protokoll in och ut i A-net ökar säkerhet.
Interna resurser åtkomliga men ändå skyddade från osäkra zonen.
INTERNET
DEMILITARIZED ZONE
ACCESS-MODULER (A-NET)
INTERNA RESURSER
14
Webbtjänster inom vatten
Säkerhet: Infrastruktur/användarhantering
Säker infrastruktur (flera nätverkszoner, brandväggsregler, minimala portöppn)
Skydd mot Denial-of-Service attacker mot interna databaser genom att
Access-moduler reglerar trafiken mot interna system.
Säkra tredjepartsprogramvaror med mycket stort antal användare (patchar)
Redhat Linux, Apache, Tomcat, Postgres.
Säker användarhantering
Applikationer kör på användaridentiteter med reducerade rättigheter.
Separata identiteter för läsning och skrivning i databaser.
Central katalog för autentisering av användare (Active Directory via LDAP/S)
Inloggning skyddar mot riktade attacker.
Övervakning av webbapplikationens status (OP5/Unicenter)
Stora delar av driftsättningar automatiserade (rpm/ppm mgmt)
Rättigheter sätt i installationsskript (mindre risk att missa något).
15
Webbtjänster inom vatten
Säkerhetsarbete
Egna periodiska portskanningar och simulerade
attacker
Nessus.org
Gransning med fokus på säkerhet
Klassning av informationstillgångar
Design-granskning av arkitektfunktion och
säkerhetsansvarig
Rutiner för hantering av incidenter
16
Webbtjänster inom vatten
Sekretess och skydd av data
Hantering av sekretessbelagd närmast informationen
Databasen lämnar ut NULL ifall man frågar efter sekretessbelagda
tidsserier
Accessmodulen har listor på ”öppna data” och släpper bara igenom
öppen information till access-nätet (A-net)
Säker autentisering via AD/LDAP-S
Accessmoduler implementerar endast hämtning (ingen skrivning i
interna databaser… for now).
17
Framtidsvision: Ge användare data så
de kan presenteras & sampresenteras
Webbtjänster inom vatten
Visning genom en egen webbapplikation (indirekta WMS-frågor):
http://produkter.smhi.se/svar/svar2008.htm
19
Webbtjänster inom vatten
Visning genom en extern webbapplikation (indirekta WMS-frågor):
http://www.geodata.se
20
Webbtjänster inom vatten
Visning av tjänster genom ArcMap
Topografisk karta från
lokalt på SMHI (grön)
Brunnar, WMS från
SGU(blå punkter)
Delavrinningsområden
WMS från SVAR, SMHI
(röda linjer)
21
Webbtjänster inom vatten
Metadata ISO-19115
22
Webbtjänster inom vatten
Nyfiken på teknikval som fungerat bra?
Säker stabil webbserver: Apache
Köra webbapplikation i java: Tomcat
Hantering av webservice-anrop: Jersey
Kartserver: Geoserver med cachade bilder för zoomnivåer (ca 1,000,000 bilder).
Excelgenerering: Apache POI
Databas-lösning. Postgres 8.4
Koppling mot databas: JDBC
Loggning: log4j
23