sähköisen asioinnin arkkiteh- tuuri - oikeusrekisterikeskus · esb «device,container»...

16
Sähköisen asioinnin arkkiteh- tuuri Kuvaus sovellustoimittajille v0.1 9.3.2017

Upload: dangduong

Post on 19-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Sähköisen asioinnin arkkiteh-

tuuri

Kuvaus sovellustoimittajille v0.1

9.3.2017

KUVAUS 2/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Sisällysluettelo

1 Johdanto ........................................................................................................................................... 4

Dokumentin tarkoitus ja kohderyhmä ...................................................................................... 4

Tekninen kehikko: Ylätason kuvaus .......................................................................................... 4

Kehikon looginen rakenne ........................................................................................................ 4

2 Kehikon tekninen rakenne ................................................................................................................. 4

Kehikon teknologiapino ........................................................................................................... 4

Suositellut teknologiat ............................................................................................................. 5

Käyttöliittymä .......................................................................................................................... 6 2.3.1 Yleistä .............................................................................................................................................. 6 2.3.2 Käyttöliittymä Kehikon viitekehys .................................................................................................. 6 2.3.3 Asiointipalveluiden ulkoasu ............................................................................................................ 6 2.3.4 Käyttöliittymän tietoturva .............................................................................................................. 6

Mikropalveluarkkitehtuuri ....................................................................................................... 7 2.4.1 Yleistä .............................................................................................................................................. 7 2.4.2 Kehikon viitekehys .......................................................................................................................... 7

3 Palvelukomponentit-Uudelleen käytettävät palvelut ......................................................................... 7

Tunnistautuminen .................................................................................................................... 8 3.1.1 Ulkoverkko ...................................................................................................................................... 8

Kielen valinta ..........................................................................................................................10

API Gateway ...........................................................................................................................10

4 Asiointipalveluiden toimitusmalli .................................................................................................... 10

Paketointi ...............................................................................................................................11 4.1.1 Container Image ........................................................................................................................... 11

Jakelu .....................................................................................................................................12 4.2.1 Konttirekisteri ............................................................................................................................... 12

Tietoturva ...............................................................................................................................12 4.3.1 Yleiset käytännöt .......................................................................................................................... 12 4.3.2 ModSecurity-sovelluspalomuuri ................................................................................................... 13 4.3.3 Dokumentaatiot ............................................................................................................................ 13

5 Järjestelmäratkaisut ....................................................................................................................... 13

Järjestelmärakenne .................................................................................................................13

Ympäristöt ..............................................................................................................................13 5.2.1 Palvelimet (Kehikon toteuttavat).................................................................................................. 13 5.2.2 Käyttöjärjestelmät (Kehikon toteuttavat)..................................................................................... 14 5.2.3 Kehikon omat sovellukset ............................................................................................................. 14 5.2.4 Kehikkoon liittyvät muut OM sovellukset ..................................................................................... 14 5.2.5 Kehikkoon liittyvät ulkoiset sovellukset........................................................................................ 14

KUVAUS 3/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

5.2.6 Operatiiviset sovellukset............................................................................................................... 15 5.2.7 Varusohjelmistot, joita tämä järjestelmä tarvitsee ...................................................................... 15 5.2.8 Integraatioratkaisut ...................................................................................................................... 15 5.2.9 Sisäiset liittymät (sisäverkossa) .................................................................................................... 15

Järjestelmän turvaaminen .......................................................................................................16

Tietojen luokittelu ja turvaaminen...........................................................................................16

Teknisen alustan ja ympäristön turvallisuusvaatimukset ..........................................................16

Lisätiedot ................................................................................................................................16

Asiakirjan tiedot Projekti: Sähköisen asioinnin arkkitehtuuri Laatija: Versio: 0.1 Otsikko: Kuvaus sovellustoimittajille Päiväys: Katselmoija: Katselmoinnin päiväys:

Toimenpiteet* Päiväys Toimenpide Suorittaja

* Toimenpiteitä: hyväksyntä, katselmointi, tiedoksianto, päätös, kokous, muu (mikä)

Versiohistoria Versio Päiväys Muokkaaja Kuvaus Tiedosto 0.1 9.3.2017 MLe Koostettu suunnittelumateriaaleista SA-arkkitehtuuri.docx

KUVAUS 4/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

1 JOHDANTO

Dokumentin tarkoitus ja kohderyhmä

Ylätason tavoitteena on luoda sekä ylläpitää OM:n sähköisen asioinnin teknistä kehikkoa. Kehikko on osa sähköisen asioinnin teknistä ohjausmallia, jolla eri IT-toimittajia ohjeistetaan toimimaan OM:n ympäristössä valittujen arkkitehtuurimallien sekä teknisten ratkaisuiden puitteissa. Kehikko antaa puitteet ja ohjeistukset miten toimia. OM:n kokonaisarkkitehtuuri linjaukset ja reunaehdot ohjaavat kehikon raameja. Kehikkoa sekä ohjausmallia kehitetään tarpeen mukaan OM:n organisaation tietohallinnon ja sidosryhmien avulla.

Tekninen kehikko: Ylätason kuvaus Ylätason tavoitteena on luoda sekä ylläpitää OM:n sähköisen asioinnin teknistä kehikkoa. Kehikko on osa sähköisen asioinnin teknistä ohjausmallia, jolla eri IT-toimittajia ohjeistetaan toimimaan OM ympäristössä valittujen arkkitehtuurimallien sekä teknisten ratkaisuiden puitteissa. Kehikko antaa puitteet ja ohjeistukset miten toimia. OM:n kokonaisarkkitehtuuri linjaukset ja reunaehdot ohjaavat kehikon raameja. Kehikkoa sekä ohjausmallia kehitetään tarpeen mukaan OM:n organisaation tietohallinnon ja sidosryhmien avulla. Kehikon arkkitehtuuri perustuu mikropalvelumalliin hyödyntäen mikroarkkitehtuuriin liittyvillä teknologisilla osilla.

Kehikon looginen rakenne

2 KEHIKON TEKNINEN RAKENNE

Kehikon teknologiapino

Komponentti Käyttötarkoitus Selite

RHEL 7.x Käyttöjärjestelmä K&K-ympäristössä käytössä muutenkin

Docker / Docker compose Konttipohjainen kokoonpanon ja toimi-

tusten hallinta

Toimitusten / asennusten yksinkertais-

taminen

Yhteisten komponenttien jakelu eri

sovellustoimittajille

De facto standardi

ModSecurity + Apache/Nginx Sovelluspalomuuri Käytössä asiointi.oikeus.fi-portaalissa

Laajasti käytössä

Ajoalusta Apache vs. Nginx riippuu

muista valinnoista

KUVAUS 5/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

F5 Load Balancer Kuormanjakaja, TLS-termination Käytössä K&K-ympäristössä

JJWT JSON Web Token -kirjasto Toteuttaa standardin RFC 7519

Spring FrameWork (Tomcat) Palveluosuuden sovelluskehys / sovel-

luspalvelin (API Gateway, sovelluksen

mikropalvelut, kirjautuminen)

Mikropalveluihin hyvin soveltuva,

erittäin käytetty.

HashiCorp Consul Palvelurekisteri, konfiguraationhallinta

MongoDB Asiointipalvelun tilapäistietovarasto Jos käyttötarkoitus vaatii dokumentti-

tietokantaa

MySQL Asiointipalvelun tilapäistietovarasto Jos käyttötarkoitus vaatii relaatiotieto-

kantaa

Redis Asiointipalvelun tilapäistietovarasto /

välimuisti

Välimuisti, key-value store, muu suori-

tuskykyoptimointi

Angular (2+) Käyttöliittymäosuuden sovellus-

viitekehys

Ks. erillinen kuvaus (Google)

Angular Material (Google Material

Design)

Käyttöliittymäosuuden komponenttikir-

jasto / standardi

Ks. erillinen kuvaus (Google)

Suositellut teknologiat

Komponetti / teknologia Selite Huomiot

KUVAUS 6/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Käyttöliittymä

2.3.1 Yleistä

OM:n pilottihankeen käyttöliittymätoteutukseen suositellaan SPA (single page application) -tyylistä ratkaisua. SPA -ratkaisussa ajatuksena on se, että sovelluksen tieto tarjotaan yhdeltä sivulta, mutta sivun sisältöä päivi-tetään käyttäjän toimenpiteiden perusteella. Tällaisen ratkaisun hyötynä on se, ettei sivun liittyviä yleisiä resursseja tarvitse hakea uudestaan. Tämä myös vähentää palvelupyyntöjen määrä edustapalvelimille. Lisäksi selaimen koko sivua ei pidä rendata uudestaan käyttäjän selaimessa vaan voidaan päivittää ainoastaan tarvit-tavaa osaa käyttöliittymästä.

2.3.2 Käyttöliittymä Kehikon viitekehys

Vaikka käyttöliittymän javascript viitekehysten vaihtelu on ollut nopea viime aikoina, niin silti isojen yritysten tukemat viitekehykset ovat pysyneet suosiossa. Tällä hetkellä Facebookin tukema ReactJS -viitekehys ja Googlen tukema AngularJS -viitekehys ovat olleen yleisimmät käytössä olevat ratkaisut. Molemmat tarjoavat hyvin samanlaisen komponenttimaisen lähestymistavan käyttöliittymän rakentamiseen. Lisäksi ratkaisut ovat hyvin tuettuja laajoilla yhteisöillä ja ei näytä siltä, että nämä teknologiat vanhentuvat lähiaikana.

2.3.3 Asiointipalveluiden ulkoasu

Asiointisovelluksille jaetaan graafisesta ilmeestä seuraavat:

Lyhyt kuvaus käytännöistä, suosituksista

Material Design–standardiin perustuva CSS-paketti

Malli-HTML:t muutamasta perusnäytöstä

2.3.4 Käyttöliittymän tietoturva

Käyttöliittymän pitää ehdottomasti salata HTTPS -protokollan avulla, jotta saadaan suojattua liikenne selai-men ja palvelimen välillä. Lisäksi suositellaan siirtämään autentikointitietoa JWT (JSON Web Token) headeris-sa, joka tavallisesti sisältää käyttäjän tiedot, roolit ja mahdollisesti session vanhentumisajan. JWT on kuvattu RFC 7519 asiakirjassa. JWT -tieto on allekirjoitettu, jolloin voidaan todeta, että vastaus on tullut muuttamat-tomana palvelimelta.

KUVAUS 7/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Mikropalveluarkkitehtuuri

2.4.1 Yleistä

OM:n sähköisen asiointipalveluiden toteutukseen käytetään mikropalvelu arkkitehtuurimallia. Mikropalveluratkaisussa periaatteena on, että jokainen kokonaisuuteen kuuluva palvelu toteutetaan itsenäi-senä, toisista riippumattomana palvelunaan. Tästä on kaksi selkeää hyötyä esitellyssä ratkaisussa. Ensinnäkin koska kyseessä on monitoimittajaratkaisu, niin näin eri toimittajat voivat toteuttaa omia osuuksiaan mahdol-lisimman paljon toisistaan riippumatta. Toisekseen erillisten osuuksien toimitus ja käyttöönotto helpottuvat, koska mikropalvelun riippumattomuuteen kuuluu myös mahdollisuus asentaa palveluita ilman vaikutusta muihin palveluihin. Huomattava on kuitenkin myös se, että vaikka kokonaisuus muodostaa mikropalveluarkkitehtuurin, voivat yksittäiset asiointipalvelut koostua vapaasta määrästä palveluita, eli olla itsessään joko monoliitteja tai mik-ropalveluarkkitehtuureita.

2.4.2 Kehikon viitekehys

Koska mikropalveluarkkitehtuuri on enemmän lähtökohta ratkaisun suunnittelulle kuin tiukasti määritelty standardi, niin ratkaisuun ei ole olemassa vain yhtä viitekehystä. Myös mikropalveluiden riippumattomuus tarkoittaa sitä, että yksittäisten palveluiden teknologioita ei ole tarpeettomasti syytä rajata.

2.4.2.1 Sovelluskehys Kehykseksi suositellaan käytettäväksi Spring FrameWork pohjaisia ratkaisuja.

2.4.2.2 Ajoalusta Palveluiden toimittamiseen ja ajoalustaksi suositellaan Docker.

2.4.2.3 Palvelurekisteri Suositellaan käytettäväksi HashiCorp Consul. mm. selkeät liittymät (DNS, REST/JSON).

3 PALVELUKOMPONENTIT-UUDELLEEN KÄYTETTÄVÄT PALVELUT

Palvelukomponentit osiossa on listattu eri palvelukomponentit

Palvelun nimi Kuvaus Uudelleenkäytettävä

palvelu

Osa-alue

Tunnistautuminen

(Vahva)

Tunnistetaan ulkoverkon kautta tulevat

asiointi verkkopalvelun käyttäjät.

Kyllä Perustoiminnallisuus

KUVAUS 8/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Tunnistautuminen

3.1.1 Ulkoverkko

Tunnistautuminen toteutetaan vasten suomi.fi-identiteettipalvelua. Tunnistautuminen tarjotaan omana palvelunaan, jota asiointisovellukset eivät tosin suoraan käytä. Asioin-tisovelluksille annetaan oma URL-avaruus, joita se voi käyttää. Tämä jaetaan vielä kahteen osaan, julkiseen ja kirjautumista vaativaan. Tunnistautumispalvelu huolehtii, jos sovellus tekee kirjautumista vaativan kutsun, niin kutsu menee perille vain jos käyttäjällä on voimassa oleva tunnistautuminen (JWT-token). Jos tunnistau-tuminen puuttuu tai on virheellinen, niin tunnistautumispalvelu palauttaa virheen asiointisovellukselle, ja asiointisovelluksen tehtävä on ohjata käyttäjän selain tunnistautumispalvelun tarjoamaan osoitteeseen. Tä-män jälkeen tunnistautumispalvelu tekee tunnistautumisen suomi.fi-palvelun kanssa ja onnistuneessa ta-pauksessa luo uuden JWT-tokenin asiointisovellukselle/käyttäjälle. Asiointisovellus lähettää tästä eteenpäin JWT-tokenin API-kutsuissaan HTTP-headerina.

KUVAUS 9/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

3.1.1.1 Kirjautuminen-kuvaus

sd Kirjautuminen

Käyttäjä

API Gateway

Kirjautuminen UI

suomi.fi kirjautuminen

SPA-sovellus

Selain

1: Avataan näyttö X()

1.1: API-kutsu()

1.2: JWT fail()

1.3: Siirry kirjautumiseen()

1.4: Siirry kirjautumiseen()

1.5: Kirjautuminen redirect()

1.6: Kirjaudu()

1.7: Kirjautuminen ok redirect()

1.8: Kirjauduttu()

1.9: Uusi JWT redirect()

1.10: Avataan näyttö X 2()

1.11: API-kutsu 2()

1.12: API-vastaus()

KUVAUS 10/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Kielen valinta

Asiointisovellus toteuttaa omaan käyttöliittymäänsä, sovittuun paikkaan, käyttöliittymäkielen valinnan. Asi-ointisovellus tallentaa kielisyystiedon evästeeseen / cookieen, joka on merkitty koko asiointi.oikeus.fi-domainille, ja tätä kautta kielisyystieto välittyy myös muille asiointisovelluksille. Lisäksi asiointisovellus lähet-tää kielisyystiedon API-kutsuissa HTTP-headerina.

API Gateway

API Gateway on yhteinen piste, jota kautta kaikki asiointisovellusten API-kutsut tehdään. Jos kyseessä on tunnistautumista vaativa kutsu, niin Gateway tarkistaa ensin, että kutsussa on mukana voimassa oleva JWT-token. Tämän jälkeen Gateway ohjaa kutsun oikeaan palveluun, yhteiseen tai yksittäisen asiointisovelluksen palveluun. Lisäksi Gateway tekee lokikirjaukset kaikista kutsuista ja vastauksista.

Palvelu Url

4 ASIOINTIPALVELUIDEN TOIMITUSMALLI

OM:n ympäristössä on käytössä konttipohjainen malli eli Service Instance per Container Pattern.

KUVAUS 11/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Paketointi

4.1.1 Container Image

KUVAUS 12/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Jakelu

4.2.1 Konttirekisteri

Tietoturva

Tietoliikenteen salaus HTTPS-protokollalla puretaan kuormantasaajalla, jonka jälkeen käytetään http-protokollaa. Vastaavaa ratkaisua on käytetty myös nykyisessä Oikeusministeriön asiointiportaalissa. Palvelui-den autentikaatioon käytetään JSON Web Token–standardilla. Kaikki palvelukutsut kulkevat yhden pisteen, API Gateway:n, kautta, joka tarkistaa onko kutsujalla voimassa oleva ja onnistunut istunto olemassa. Jos is-tuntoa ei ole, ohjataan asiointisovellus yhteiseen kirjautumispalveluun, joka on toteutettu omana mikropal-velunaan.

4.3.1 Yleiset käytännöt

Tunniste Kommentti

OWASP TOP 10

Käytännöt

mod_security

Katso mikropalveluarkkitehtuuri-kohta

KUVAUS 13/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

4.3.2 ModSecurity-sovelluspalomuuri

ModSecurity-sovelluspalomuuri, joko Apache- tai Nginx-pohjaisena.

4.3.3 Dokumentaatiot

Yhteinen asiointisovelluksille jaettava materiaali jaetaan OM:n tarjoaman Wiki-pohjaisen ratkaisun kautta (esim. Atlassian Confluence).

5 JÄRJESTELMÄRATKAISUT

Järjestelmärakenne

Ympäristöt

Järjestelmästä on tuotanto, sekä testiympäristöt. Testiympäristö pitäisi vastata tuotantoa. Kummatkin ympäristöt sijaitsevat asiakkaan olemassa olevissa palvelinympäristöissä.

5.2.1 Palvelimet (Kehikon toteuttavat)

Palvelimen nimi Tuotanto / Testi IP osoite Vastuu

deployment Asiointipilotti

Kuormanjakaja

Asiiointipalvelin

«device,container»

Sovelluspalomuuri

Apache / mod_security

«device,container»

API Gateway

Tunnistautuminen /

JWT-tokenReititys

«device,container»

Palvelu X1

VIA

ESB

«device,container»

Vakuutusoikeuden UI palvelut

NodeJSSpring Boot

«device,container»

Liitteet palvelut

Spring Boot

Selain / internet

Taustajärjestelmät

«Graylog»

Lokienhallinta

«device,Container»

Kirjautuminen

Kirjautuminen UI

palvelut SAML2

Muu palvelin

«device,container»

Palvelu X2

.NET

HTTP

HTTPS

KUVAUS 14/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

5.2.2 Käyttöjärjestelmät (Kehikon toteuttavat)

Palvelimen nimi Tuotanto / Testi Vastuu

5.2.3 Kehikon omat sovellukset

Alla olevaan taulukkoon on koottu tietojärjestelmän omat sovellukset ja niiden rooli osana kokonaisuutta.

Sovelluksen nimi Sovelluksen rooli / vastuu Tietojärjestelmä, johon kuuluu

5.2.4 Kehikkoon liittyvät muut OM sovellukset

Alla olevaan taulukkoon on koottu tietojärjestelmään liittyvät muut OM:n sovellukset ja niiden rooli osana kokonaisuutta. Nämä sovellukset kuuluvat jonkin muun tietojärjestelmän ytimeen ja niitä voidaan kehittää erillisenä tässä dokumentissa kuvattavasta tietojärjestelmästä.

Sovelluksen nimi Sovelluksen rooli / vastuu Tietojärjestelmä, johon kuuluu

5.2.5 Kehikkoon liittyvät ulkoiset sovellukset

Alla olevaan taulukkoon on koottu tietojärjestelmään liittyvät yhteydet ulkoisiin tietojärjestelmiin ja niiden rooli osana kokonaisuutta.

Sovelluksen nimi Sovelluksen rooli / vastuu Omistaja

KUVAUS 15/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

5.2.6 Operatiiviset sovellukset

Palvelimen nimi Tuotanto / Testi Vastuu

5.2.7 Varusohjelmistot, joita tämä järjestelmä tarvitsee

Nimi Palvelimen nimi Vastuu

5.2.8 Integraatioratkaisut

Integraatio- palvelu Vastuu

Kansallinen palveluväylä

Kansallinen palveluväylä ja sen kautta käytettävät si-

dosryhmien palvelut (esim. VTJ, KTJ).

Tietojen tarjoaminen mahdollisimman automaattisesti

sekä olemassa olevan tiedon tarkistuksen tukeminen.

Sanomavälitys VIA

RESTful-api Sisäiset rajapinnat

ldap Sisäiset käyttäjät

API GateWay Katso API GateWay kohta

5.2.9 Sisäiset liittymät (sisäverkossa)

Yhteys Esitystapa Protokolla

GRAYLOG Json gelf

KUVAUS 16/16

Postiosoite PL 157 13101 Hämeenlinna

Käyntiosoite Vanajantie 10 B 13110 Hämeenlinna

Puhelin 029 56 65631

Sähköpostiosoite ja kotisivu [email protected] www.oikeusrekisterikeskus.fi

Järjestelmän turvaaminen

Tietojen luokittelu ja turvaaminen

Teknisen alustan ja ympäristön turvallisuusvaatimukset

Lisätiedot