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