SMHI webservices
Bakom kulissernaInfrastruktur och säkerhetslösningarDemonstration av webservices
Esa Falkenroth, Informationsarkitekt, SMHI.
OBS: Några av dessa webservice-länkarär nåbara externt. Andra öppnas omdet kommer önskemål.
Webbtjänster inom vatten
2
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
Webbtjänster inom vatten
3
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)
INTERNA RESURSER
BACKUP
Webbtjänster inom vatten
4
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
Webbtjänster inom vatten
5
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
Webbtjänster inom vatten
6
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.
http://map.smhi.se/geoserver/wms?bbox=1009259.6227719582,6036447.5032413,2226407.6960645295,7821210.570555659&styles=&Format=image/png&request=GetMap&version=1.1.1&layers=SMHI_vatten:huvudavrinningsomraden2008_2&width=415&height=550&srs=EPSG:3021
GetMap&version=1.1.1&Layers=SMHI_vatten:huvudavrinningsomraden2008_2 &width=415 &height=550 &srs=EPSG:3021
Webbtjänster inom vatten
7
� Visning genom en webbapplikation (indirekta WMS-frå gor):http://www.geodata.se
Webbtjänster inom vatten
8
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….
Webbtjänster inom vatten
9
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
Webbtjänster inom vatten
10
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.
Webbtjänster inom vatten
11
Ytterligare ett exempel:Hämta data från SVAR via webben
� http://produkter.smhi.se/svar/sws/sws.php?aroid=650452-150081
Webbtjänster inom vatten
12
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 statetransfer (REST) JSR 311(JAX-RS) standarden.
Svar från webservice kan formatteras:- Excel- XML- Text etc, etc..
Arbete på SMHI för att möjliggöra snabbare utveckla webservice utan att riskera viktiga produktionssystem
Webbtjänster inom vatten
14
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
Webbtjänster inom vatten
15
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).
Webbtjänster inom vatten
16
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
Webbtjänster inom vatten
17
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).
Framtidsvision: Ge användare data såde kan presenteras & sampresenteras
Webbtjänster inom vatten
19
� Visning genom en egen webbapplikation (indirekta WM S-frågor):http://produkter.smhi.se/svar/svar2008.htm
Webbtjänster inom vatten
20
� Visning genom en extern webbapplikation (indirekta WMS-frågor):http://www.geodata.se
Webbtjänster inom vatten
21
Visning av tjänster genom ArcMap
Topografisk karta från lokalt på SMHI (grön)
Brunnar, WMS från SGU(blå punkter)
DelavrinningsområdenWMS från SVAR, SMHI(röda linjer)
Webbtjänster inom vatten
22
Metadata ISO-19115
Webbtjänster inom vatten
23
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