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.
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
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
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
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
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
Visning genom en webbapplikation (indirekta WMS-frågor): http://www.geodata.se 7
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
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
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
Ytterligare ett exempel: Hämta data från SVAR via webben http://produkter.smhi.se/svar/sws/sws.php?aroid=650452-150081 11
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
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
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
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
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
Visning genom en egen webbapplikation (indirekta WMS-frågor): http://produkter.smhi.se/svar/svar2008.htm 19
Visning genom en extern webbapplikation (indirekta WMS-frågor): http://www.geodata.se 20
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
Metadata ISO-19115 22
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