Kansallinen palveluväylä Petteri Kivimäki Kansallisen palveluväylän tekninen työpaja 22.5.2015 Espoo
Sisältö Yleisesittely X-Road versio 6 Tiedonsiirtoprotokolla Sovitinpalvelu Tekniset vaatimukset Seuraavat askeleet Suomessa Aikataulu
Kansallinen palveluarkkitehtuuri Yhteentoimiva digitaalisten palvelujen infrastruktuuri, jonka avulla tiedon siirto organisaatioiden ja palvelujen välillä on helppoa Ohjelmassa luodaan Kansallinen palveluväylä Kansalaisten, yritysten ja viranomaisten tarvitsemat yhteiset palvelunäkymät Uusi kansallinen sähköinen tunnistusratkaisu Kansalliset ratkaisut organisaatioiden ja luonnollisten henkilöiden roolien ja valtuutusten hallintaan
Kansallisen tunnistamisen mallin työryhmä Kansallisen tunnistamisen mallin referenssiryhmä Kansallisen palveluarkkitehtuurin ohjelmakokonaisuus Strateginen johtoryhmä Ohjelmaryhmä Ohjelmapäällikkö Tunnistaminen Kehittämispäällikkö (hankkeen omistaja) Palveluväylä Kehittämispäällikkö (hankkeen omistaja) Palvelunäkymät Kehittämispäällikkö (hankkeen omistaja) Roolit ja valtuutus Kehittämispäällikkö (hankkeen omistaja) Kokonaisarkkitehtuuri Tietoturva ja tietosuoja Ohjausryhmä Ohjausryhmä Ohjausryhmä Ohjausryhmä Hankinnat Hankepäällikkö Projektiryhmä Yhteistyöryhmät Hankepäällikkö Projektiryhmä Yhteistyöryhmät Hankepäällikkö Projektiryhmä Yhteistyöryhmät Hankepäällikkö Projektiryhmä Yhteistyöryhmät Viestintä ja sidosryhmäyhteistyö Lainsäädäntö
Kansallinen palveluarkkitehtuuri Perustietovarannot Julkisen hallinnon kohdealue- ja toimialakohtaiset palvelut Valtion yhteiset palvelut Kuntien palvelut Yrityssektorin palvelut Palveluväylä Omien tietojen katselu Palvelunäkymät Palveluoppaat Uusi palveluhaku + karttanäkymä Personoitu palvelunäkymä Sähköiset palvelut (federointi, koonti) Rooli/ valtuushallinta Palvelutietovaranto PTV Tunnistuspalvelut Palveluväylän hallinta Tietoturva, raportointi. lokipalvelu Portaalialusta sisällöntuotantoon, hakumoottori välttämättömiä heti keskeiset palvelut liitettävä alkuvaiheessa, muut myöhemmässä vaiheessa
Yleisesittely Tiedonvälityskokonaisuus, joka toimii viestiväylänä siihen liitettyjen palveluiden ja tietovarantojen välillä Loppukäyttäjälle läpinäkyvä tietojärjestelmien välillä toimiva tiedonvälityskerros Kytkee toisiinsa erilaisia palveluita ja tietovarantoja Ei itsessään muuta tai luo uusia toiminnallisia palveluprosesseja Hyödyt syntyvät väylään kytketyistä tiedoista ja palveluista, ei väylästä itsestään Palveluväylän arvo on sen muodostamassa standardoidussa tietojen vaihdon ratkaisumallissa
Yleisesittely Voidaan kytkeä sekä julkisen että yksityisen sektorin palveluita Kytkettävien palveluiden on täytettävä määritellyt tekniset rajapintavaatimukset Väylään kytketyt palvelut ja tiedot voivat olla vapaasti käytettävissä tai sopimuksenvaraisia Hyödyntäjän ja tuottajan kahdenvälinen sopimus (~tietolupa) Myös avoimen datan palvelut tervetulleita
Yleisesittely Alustana Virossa käytössä olevan X-Road-ratkaisun versio 6 Palveluväylän ydin koostuu Siihen liittyneiden organisaatioiden liityntäpalvelimista Palveluväylän keskuspalvelimista Palveluväylän sisäinen liikenne on julkisen internetin yli tapahtuvaa liityntäpalvelinten välistä liikennettä Kaikki liikenne salataan ja allekirjoitetaan digitaalisesti Ei yhtä yksittäistä palveluväyläkomponenttia Palveluväylä on hajautettu järjestelmä
Yleisesittely Palveluväylä Palveluväylän hallinta Tietoturva, raportointi. lokipalvelu Liityntäpalvelin
Yleisesittely Palveluväylä Palveluväylän hallinta Tietoturva, raportointi. lokipalvelu Liityntäpalvelin
Yleisesittely Luotettava ja turvallinen tiedonsiirtokanava julkisen internetin yli Mahdollistaa myös muiden verkkoratkaisujen hyödyntämisen Kaikki palveluväylää kulkeva liikenne salataan ja allekirjoitetaan digitaalisesti Tiedot salataan tiedonsiirron ajaksi SSL-salausprotokollalla Kaikki tieto allekirjoitetaan varmenteilla Kaikki tapahtumat kirjataan liityntäpalvelinkohtaiseen lokiin, joka mahdollistaa tapahtumien todentamisen jälkikäteen Sanoma, allekirjoitus, aikaleima
Yleisesittely
Yleisesittely
Yleisesittely Keskuskomponentit Keskuspalvelin Tiedot väylään liitetyistä liityntäpalvelimista ja niitä käyttävistä organisaatioista Paikalliset kopiot liityntäpalvelimilla Konfiguraatiopalvelin Konfiguraatiotietojen jakelu liityntäpalvelimille Käyttö ei pakollista jakelu voidaan tehdä myös suoraan keskuspalvelimelta käsin Keskuspalvelimen liityntäpalvelin Keskuspalvelinten tarjoamien keskuspalvelujen julkaisu väylän muiden liityntäpalvelinten käyttöön Teknisiä palveluja, esim. organisaatioiden lisäys ja poisto
Yleisesittely Varmennepalvelu (Certificate Authority, CA) Keskus- ja liityntäpalvelinten palvelinvarmenteet OCSP-palvelin (Online Certificate Status Protocol) Sertifikaattien voimassaolon tarkistus Aikaleimapalvelu (Time Stamping Authority, TSA) Väylän kautta lähetettyihin sanomiin lisätään varmennettu aikaleima Mahdollistaa lokien muuttumattomuuden todentamisen
Yleisesittely Liityntäpalvelin Tietojärjestelmien ja lähteiden liityntäpiste palveluväylään Kokoonpano vakioitu Voi olla organisaatiokohtainen tai monen organisaation kesken yhteinen Jokaisella liityntäpalvelimella oma sertifikaatti Käytetään liityntäpalvelinten välisissä yhteyksissä Jokaisella organisaatiolla oma sertifikaatti Sertifikaatti liityntäpalvelinkohtainen Käytetään organisaation järjestelmien lähettämien sanomien allekirjoittamiseen
Yleisesittely
Yleisesittely VRK ja CSC vastaavat keskuskomponenttien ylläpidosta VRK vastaa varmennepalvelun ja aikaleimapalvelun ylläpidosta ja toteutuksesta Väylään liittynyt organisaatio Vastaa omien tietojensa ja palveluidensa ylläpidosta Päättää kenelle jakaa tietojaan Vastaa siitä, että kytkettävät palvelut täyttävät määritellyt tekniset rajapintavaatimukset Vastaa tietojen välityksestä liityntäpalvelimeensa Ylläpitää liityntäpalvelimensa
Yleisesittely Palveluväylä vastaa keskitetyistä palveluista ja liikenteestä liityntäpalvelinten välillä Osoitteiden hallinta Reititys Käyttöoikeuksien hallinta Salaus Aikaleimat Lokitus Lokit liityntäpalvelinkohtaisia, ei yhtä keskitettyä lokia Virheiden käsittely
Yleisesittely Palveluväylä säilyy toiminnallisena määräajan myös ilman keskuspalvelimia Väylään liittyneiden organisaatioiden ja liityntäpalvelinten tiedot keskuspalvelimella Tiedoista paikalliset kopiot liityntäpalvelimilla Päivitetään määräajoin Voimassaoloaika määriteltävissä Väylä toimii niin kauan, kunnes liityntäpalvelinten paikalliset kopiot vanhenevat Aikaleimapalvelun ja OCSP-tarkistusten jatkuva toiminta väylän kannalta kriittistä voimassaoloaika minuutteja, ei päiviä
X-Road versio 6 Toteutustekniikka uudistettu C/C++ -> Java, Ruby Federointi valtioiden välisten X-Road-instanssien liittäminen toisiinsa Tuki usealle rajapintakuvaukselle (WSDL) per organisaatio Sanomien aikaleimaus Liityntä- ja keskuspalvelimen käyttöliittymät Tuki turvamoduulin käytölle (Hardware Security Module, HSM) Allekirjoituksiin käytettävien yksityisten avainten säilytys
X-Road versio 6 Hierarkkiset organisaatio-, järjestelmä- ja palvelutunnisteet instance/memberclass/organizationcode/subsystem/service/version Esim. FI/GOV/12345-6/DemoService/helloService/v1 Palveluväyläoperaattori määrittelee: instance, memberclass, organizationcode Organisaatio määrittelee: subsystem, service, version Palvelukohtaisten käyttöoikeuksien määrittely mahdollista organisaation ja yksittäisen tietojärjestelmän tasolla Suosituksena on käyttää aina tietojärjestelmätasoa
Tiedonsiirtoprotokolla Palveluväylään liittyminen edellyttää X-Roadtiedonsiirtoprotokollan toteuttamista liitettävään järjestelmään SOAP 1.1 X-Road määrittelee Otsikkotietojen rakenteen Body-osan rakenteen Rajapintakuvaukset (WSDL) Lisätietoja https://confluence.csc.fi/display/palveluvayla/x-road+v6.0+tiedonsiirtoprotokolla
Tiedonsiirtoprotokolla - request
Tiedonsiirtoprotokolla - response
Version 6.0 SOAP-rajapinta Ei suoraan yhteensopiva v6 beta version kanssa Vaatii muutoksia sovitinpalveluiden toteutuksiin Tarvittavat muutokset Otsikkotietojen nimiavaruus http://x-road.eu/xsd/sdsb.xsd -> http://x-road.eu/xsd/xroad.xsd Otsikkoelementin nimenmuutos sdsbinstance -> xroadinstance Uusi otsikkoelementti <protocolversion>4.0.0</protocolversion> Vastaavat muutokset WSDL-kuvauksiin Lisätietoja https://confluence.csc.fi/display/palveluvayla/x-road+v6.0+tiedonsiirtoprotokolla
Sovitinpalvelu Palveluväylän edellyttämät sanomamuunnokset voidaan toteuttaa erillisessä sovitinpalvelussa Sijoittuu liityntäpalvelimen ja liitettävän järjestelmän väliin SOAP-pohjaisten järjestelmien kohdalla muutokset suoraviivaisia REST-mallisten järjestelmien kohdalla muutokset työläämpiä Sovitinpalvelu voidaan toteuttaa Suoraan liitettävään järjestelmään Erillisenä komponenttina samalla palvelimella järjestelmän kanssa Erillisenä komponenttina omalla palvelimellaan tai jo käytössä olevassa integraatioratkaisussa
Sovitinpalvelu
Sovitinpalvelu
Sovitinpalvelu Sovitinpalvelun esimerkkitoteutus https://github.com/petkivim/x-road-adapter-example XRd4J - Java ohjelmakirjasto X-Road v6 asiakas- ja palvelusovellusten kehittämiseen https://github.com/petkivim/xrd4j Ohjeita REST-rajapintojen toteutukseen https://github.com/educloudalliance/apistandards/blob/master/apistandards.md
Tekniset vaatimukset Liityntäpalvelin Kokoonpano vakioitu Poikkeuksina varmuuskopiointiin ja valvontaan käytettävät ohjelmistot Ubuntu 14.04 LTS 64 bit, 4GB RAM, 3GB levytilaa RHEL 7 (tulossa syksyllä 2015) Tietoturvallisuuden perustaso (ST4) Liitettävä järjestelmä X-Road-tiedonsiirtoprotokollan toteutus (sovitinpalvelu) Ensin liittyminen testiympäristöön ja vasta sitten tuotantoon
Seuraavat askeleet Suomessa Kehitysympäristön päivitys versioon 6.0 Version 6.0 testaus Tuotantoympäristöä vastaavan testiympäristön pystyttäminen Aikaleima- ja OCSP-palveluiden pystytys Suomessa tehtävän jatkokehityksen käynnistäminen RHEL-tuki, liityntäpalvelimen valvontaominaisuudet (alusta), lokituksen muokkaaminen Suomen tarpeisiin Suomi-Viro-yhteistyö
Aikataulut ja julkaisut Kesä-heinäkuu HSM-moduulin testaus X-Road v6.0 päivitys kehitysympäristöön X-Road testiympäristön avaaminen Elo-syyskuu X-Road lähdekoodin auditointi Aikaleima- ja OCSP-palveluiden testiympäristö X-Road v6.1 julkaisu ja ympäristöjen päivitys X-Road tuotantoympäristön pystytys Loka-marraskuu Aikaleima- ja OCSP-palveluiden tuotantoympäristö X-Road tuotantympäristön auditointi Tuotannon aloittaminen
Ympäristöt Kehitys (CSC) Uusien versioiden ja ominaisuuksien testaaminen Avoin kenelle tahansa Tuotannosta täysin erilliset varmenne- ja aikaleimapalvelut Testi (CSC) Tuotantoa vastaava Vain organisaatioille Tuotanto (CSC) Vain organisaatioille Suomalaisen sovelluskehityskumppanin tuki (~kehittävä ylläpito) Varmenne- ja aikaleimapalvelut (VRK) Testi- ja tuotantoympäristöt
Kuinka päästä alkuun? Dokumentaatioon tutustuminen https://confluence.csc.fi/display/palveluvayla/dokumentit Koodiesimerkkeihin tutustuminen Sovitinpalvelun esimerkkitoteutus https://github.com/petkivim/x-road-adapter-example XRd4J : Java-kirjasto X-Road asiakasohjelmien ja palveluiden toteutukseen https://github.com/petkivim/xrd4j Kehitysympäristöön liittyminen https://confluence.csc.fi/pages/viewpage.action?pageid=501774 27 Tekninen koulutustilaisuus CSC:llä pe 22.5. klo 10-15 Ilmoittautuminen 15.5. mennessä osoitteeseen palveluvayla@vrk.fi
Kiitos! Petteri Kivimäki Järjestelmäpäällikkö Väestörekisterikeskus petteri.kivimaki@vrk.fi puh: 0295 535 027, GSM: 050 593 1710