3 Verkkopalveluarkkitehtuuri

Samankaltaiset tiedostot
3 Verkkopalveluarkkitehtuuri

3 Verkkopalveluarkkitehtuuri

9 Edistynyt PHP-ohjelmointi

Käyttöohje Suomen Pankin DCS2-järjestelmään rekisteröityminen

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen

Luottamuksellinen sähköposti Trafissa

Järjestelmäarkkitehtuuri (TK081702)

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Visma asiakaspalvelu Tukipyyntöjen lähettäminen

10 Nykyaikainen WWW-arkkitehtuuri

opiskelijan ohje - kirjautuminen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2

Ristijärven metsästysseura tysseura osti lisenssin jahtipaikat.fi verkkopalveluun, jotta seuran

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje

Tämän ohjeen avulla pääset alkuun Elisa Toimisto 365 palvelun käyttöönotossa. Lisää ohjeita käyttöösi saat:

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje

Visma sovellustuki Tukipyyntöjen lähettäminen

AVOIMEN YLIOPISTON MOODLE-OPAS OPISKELIJALLE

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Kirje -tasolla viestiliikenne suojataan automaattisesti SSL-salauksella, sekä viesti lukitaan Deltagon MessageLock -tekniikalla.

Luottamuksellinen sähköposti Lapin yliopistossa. Ilmoitusviesti

AVOIMEN YLIOPISTON MOODLE-OPAS OPISKELIJALLE SISÄLLYS

Web sovelluksen kehittäminen sähkönjakeluverkon suojareleisiin

Helsingi yliopiston kevytkäyttäjähallintosovelluksen rajapintakuvaus

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

opiskelijan ohje - kirjautuminen

Kaislanet-käyttöohjeet

Yliopistohaku.fi -palvelun Oma haku -palvelu

Tietosuojaseloste (5)

Käyttäjäistunnon poistaminen Pervasive.SQL:stä

11 Valmiit ratkaisut. 11 Valmiit ratkaisut

Elisa Toimisto 365. Pääkäyttäjän pikaopas

Rekisteriseloste Tämä on Markkinoinnin Muurahainen Oy:n EU:n yleisen tietosuoja-asetuksen (2016/679) (GDPR) mukainen seloste.

Ohje. ipadia käytetään sormella napauttamalla, kaksoisnapsauttamalla, pyyhkäisemällä ja nipistämällä kosketusnäytön

INTINU13A6 Java sovellukset

4 Verkkopalvelun toteuttaminen

LUPAHANKKEET RAKENNUSVALVONNAN SAHKÖISESSÄ ASIOINTIPALVELUSSA

Copyright Basware Corporation. All rights reserved. Pikaopas toimittajille Supplier Portal (Toukokuu 2013)

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Office 365 palvelujen käyttöohje Sisällys

VTJ-YLLÄPITO. Käyttäjän ohje Kunnat

Epooqin perusominaisuudet

Perustietoja Mietoisten kyläportaalista Yhdistyksen ylläpitäjän kirjautuminen Yhdistyksen etusivun muokkaaminen... 2

Kemikaalitieto yhdestä palvelusta

1 Asiakastilin rekisteröiminen Väestörekisterikeskuksen

Käyttöohje. Visy Access Net UPM

OHJEET KEKSINNÖT.FI SIVUSTON KÄYTTÄJILLE

Open Badge -osaamismerkit - ohje

Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE. KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi

Ilmoitus saapuneesta turvasähköpostiviestistä

Kymenlaakson Kyläportaali

Rekisteröityminen, tilojen varaaminen ja maksaminen WebTimmi varausjärjestelmässä

Asiointipalvelun ohje

5 Verkkopalvelun sisällön hallinta

Kokoelmakilpailu Lomakeohje, Laji.fi-sarja 1. Rekisteröityminen

käyttöönotto työpaikkaohjaajalle

VETUMA rekisteröityminen

ChatSimulaatio Käyttöopas

ILMOITUSSOVELLUS 4.1. Rahanpesun selvittelykeskus REKISTERÖINTIOHJE. SOVELLUS: 2014 UNODC, versio

Varausjärjestelmän käyttöopas

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Hyvä tietää ennen kuin aloitat

TERVETULOA WAHTI-PALVELUN KÄYTTÄJÄKSI. Ohjeet kameran asennukseen ja käyttöönottoon.

Liferay CE KÄYTTÖOHJE PÄIVITTÄJÄLLE. Content Manager. Ambientia Oy TM Ambientia

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

OPAS KULTA2 -JÄRJESTELMÄN KÄYTTÖÖN

Jos olet jo kirjautunut palveluun, näin pääset tilillesi: Anna sähköpostiosoitteesi ja salasanasi. Napsauta Sisäänkirjautuminen.

Tietosuojaseloste. Trimedia Oy

Energiapeili-raportointipalveluun rekisteröityminen yritysasiakkaana

Juricon Nettisivu Joomlan käyttöohjeet

Office ohjelmiston asennusohje

MOODLE TUTUKSI. Pirkko Vänttilä Oulun aikuiskoulutuskeskus

Uuden Peda.netin käyttöönotto

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

Tietokantasovelluksen määrittelydokumentti

Timmi varausjärjestelmään rekisteröityminen ja verkkokaupasta

Ohjeet asiakirjan lisäämiseen arkistoon

Apix Vastaanota-palvelun lisäominaisuus. Vastaanota+ Pikaohje Versio 1.0

Tervetuloa OmaLounea-palveluun! KÄYTTÄJÄN OPAS

HAME PostGIS-tietokanta

Maestro Lappeenranta Mannerheiminkatu Lappeenranta. Maestro Helsinki Huopalahdentie Helsinki

Energiapeili-raportointipalveluun rekisteröityminen yritysasiakkaana

1 Johdanto. 2 Kirjautuminen. Sisällysluettelo. Kanakoirakerho - websivujen ylläpito

Vaatimusdokumentti Labra

Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden

Toimittajaportaalin pikaohje

FiSMA 1.1 Toiminnallisen laajuuden mittausmenetelmä Ohje monikerrosarkkitehtuurin mittaamiseen

LIITTEIDEN lisääminen laskulle. Pikaohje (1.1)

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

Tamico Yrityssähköposti

Lemonsoft SaaS -pilvipalvelu OHJEET

SilvaToiminta Versio 1.0. SilvaToiminta. Pikaohje Versio Oy Silvadata Ab Pikaohje 1

Energiapeili-raportointipalveluun rekisteröityminen kuluttaja-asiakkaana

Toimittajaportaalin pikaohje

Ylläpito toimittaa sinulla sähköpostiisi käyttäjätunnuksen ja salasanan. Tässä esimerkissä

Käyttöohje. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Transkriptio:

3 Verkkopalveluarkkitehtuuri Luentokerran tavoitteena on perehtyä verkkopalveluarkkitehtuurin yleisiin periaatteisiin ja kaikille verkkopalveluille yhteisiin toimintoihin ja ominaisuuksiin: Tietokantapohjainen Web-teknologialla toteutettu verkkopalvelu perustuu yleisesti kolmikerrosmalliin (three-tier model) Verkkopalveluiden kolme keskeistä toimintoa ovat pääsynhallinta (access), käyttäjän tunnistaminen (authentication) ja käyttöoikeuksien hallinta (authorisation) Verkkopalvelun ohjelmallinen toteuttaminen edellyttää käytännössä aina istuntojen (session) soveltamista Verkkopalvelun turvallisuuteen ja tietoturvaan liittyviä asioita ei voi korostaa koskaan liikaa Verkkopalveluihin liittyy edellä mainittujen lisäksi lukuisia yleisiä ominaisuuksia, jotka on syytä ottaa huomioon verkkopalveluiden suunnittelu- ja toteutustyössä Luentokerran aikana käsiteltävien ominaisuuksien toteuttaminen yleiseen, uudelleenkäytettävään sovelluskehykseen on välttämätöntä kun pyritään sovellusten toteutustyön tehostamiseen. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 41

Asiakas-palvelin malli vs. kolmikerrosmalli Verkkopalvelun arkkitehtuuri perustuu yleisesti asiakas-palvelin -malliin Tietokantapohjaisessa (verkko)palvelussa asiakas-palvelin -malli toimii seuraavasti: 1. Käyttäjä käyttää palvelua asiakassovelluksen avulla 2. Asiakassovelluksen ja palvelimen välinen vuorovaikutus toteutetaan tarkoitukseen sopivalla protokollalla 3. Toimintaperiaate: asiakassovellus tekee kyselyitä tietokantaan käyttäjän ohjaamana ja näyttää kyselyn tulokset käyttäjälle käyttöliittymässään Webissä asiakas-palvelin mallin toteuttaminen suoraan Web-selaimen ja tietokantapalvelimen yhdistelmänä on periaatteessa mahdollista (älykäs asiakasohjelma). Ratkaisu ei kuitenkaan ole yleisesti käytössä huonon selainyhteensopivuuden takia Tietokantapohjaisen verkkopalvelun arkkitehtuuri noudattaa yleensä ns. kolmikerrosmallia (three-tier model) Kolmikerrosmallissa Web-selaimen ja tietokantapalvelimen väliin toteutetaan välikerros, joka toimii asiakkaana tietokantapalvelimelle ja palvelimena Web-selaimelle MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 42

Kolmikerrosmalli ja PHP Opintojakson käytössä olevilla teknologioilla kolmikerrosmallin välikerros toteutetaan WWW-palvelimen ja PHP-ympäristön yhdistelmänä: 1. Välikerroksen toiminnallisuus ohjelmoidaan PHP-kielellä 2. Selaimen ja WWW-palvelimen välinen vuorovaikutus hoidetaan tuttuun tapaan HTTP-protokollalla 3. PHP-tulkki käyttää tietokantapalvelinta asiakasohjelman roolissa toimivan funktiokirjaston avulla 4. Tietokantapalvelimen ja -asiakkaan välinen vuorovaikutus toteutetaan käytössä olevan tietokannan omalla protokollalla tai yleisellä Open Database Connectivity (ODBC) -protokollalla PHP tukee sekä ODBC-protokollaa että yleisimpien tietokantapalvelimien omia protokollia: MySQL, PostgreSQL, MS Access, IBM DB2, Oracle,... ODBC-protokollan käyttäminen parantaa sovelluksen siirrettävyyttä eri palvelinympäristöjen välillä MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 43

Verkkopalvelun keskeiset toiminnot Verkkopalveluiden kolme keskeistä toimintoa ovat: 1. Pääsynhallinta (access): verkkopalvelun mahdollisten käyttäjien rajaaminen 2. Käyttäjän tunnistaminen (authentication): verkkopalvelun käyttäjien tunnistaminen 3. Käyttöoikeuksien hallinta (authorisation): verkkopalvelun toimintojen käyttöoikeuksien rajoittaminen Yksinkertaisin keino pääsynhallinnan toteuttamiseen on HTTP-protokollan HTTP Basic Authentication -mekanismin käyttäminen: WWW-resurssin noutamiseen oikeuttavat tiedot välitetään HTTP-pyynnön Authorization-nimisessä otsikossa HTTP-perusautentikointia käyttävä verkkopalvelu on helppo tunnistaa tavasta, jolla selain kysyy käyttäjältä tunnuksen ja salasanan: tiedot syötetään erikseen aukeavaan (taustaväriltään usein harmaaseen) dialogiin, jonka sulkeminen Peruuta-painikkeella aiheuttaa HTTP-virhekoodin 401 Unauthorized Pääsynhallinta voidaan myös toteuttaa esimerkiksi IP-osoitteiden avulla (ongelmia!) MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 44

Käyttäjän tunnistaminen voidaan pääsynhallinnan tavoin toteuttaa HTTPperusautentikoinnin avulla. Pääsynhallinnan ja käyttäjän tunnistamisen ero: ensimmäisessä tunnus voi olla yhteinen joukolle ihmisiä, jälkimmäisessä jokaisella käyttäjällä on oma henkilökohtainen tunnus Yleensä käyttäjän tunnistamiseen toteutetaan räätälöity toiminnallisuus, jolloin tunnistamiseen liittyvät käyttöliittymät ja esimerkiksi virheilmoitukset voidaan toteuttaa halutulla tavalla => käyttöliittymien yhtenäisyys, käyttäjän toiminnan tukeminen Käyttöoikeuksien hallinta voidaan toteuttaa esimerkiksi seuraavilla tavoilla: a. Erittäin yksinkertaisessa sovelluksessa käyttöoikeuksiin ei välttämättä tarvitse ottaa kantaa ollenkaan: kaikilla käyttäjillä on samat oikeudet b. Käyttöoikeudet määritellään jokaiselle käyttäjälle erikseen c. Käyttöoikeudet jaetaan käyttäjille roolien avulla: jokaisella käyttäjällä on (yksi) rooli d. Käyttöoikeudet jaetaan käyttäjille profiilien avulla: jokaisella käyttäjällä on yksi tai useampi profiili Käyttöoikeuksien jakaminen roolien avulla on toimiva ratkaisu silloin, kun palvelun käyttäjäryhmän jäsenet voidaan helposti ryhmitellä eri rooleihin. Profiilien käyttäminen mahdollistaa käyttöoikeuksien määrittelemisestä rooleja joustavammin MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 45

Käyttäjän tunnistaminen: toteuta myös nämä Rekisteröityminen: käyttäjä syöttää haluamansa tunnistetiedot (yleensä tunnus ja salasana) ja mahdollisesti muita tietoja itsestään Tunnuksen ja salasanan pituutta ja muotoa halutaan mahdollisesti rajoittaa Salasana on syytä tallentaa tietokantaan salatussa muodossa: vaihtoehtoja ovat esimerkiksi Message Digest 5 (MD5) ja Secure Hash Algorithm (SHA-1) Sisäänkirjautuminen rekisteröinnissä syötettyjen tietojen avulla (yleensä tunnus ja salasana) Käyttäjän on halutessaan voitava kirjautua ulos palvelusta Palvelun toimintojen toteutuksessa on voitava (helposti) varmistaa, että käyttäjä on kirjautunut sisään. Käyttäjään liittyviin tietoihin on päästävä helposti käsiksi Käyttäjän on pystyttävä halutessaan vaihtamaan salasanansa tietoturvasyistä Käyttäjät unohtavat salasanansa aina silloin tällöin. Käyttäjän on pystyttävä selviämään tilanteesta itsenäisesti. Esimerkkiratkaisu: käyttäjällä on mahdollisuus tilata rekisteröitymisen yhteydessä määriteltyyn sähköpostiosoitteeseen linkki, jonka valitsemalla hän voi määritellä itselleen uuden salasanan MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 46

Istunnon hallinta HTTP-protokollan tilattomuus on jo tuttua, mutta kerrataanpa vielä: HTTPprotokollassa ei ole sisäänrakennettua keinoa sovelluksen tilan ylläpitämiseen Sovelluksen tilan ylläpitäminen toteutetaan istuntojen (session) avulla: Sisäänkirjautuminen Sisällön/toimintojen näyttäminen käyttöoikeuksien perusteella Sovelluksen mukauttaminen käyttäjän mieltymysten (preference) perusteella Käyttäjän toiminnan seuraaminen, esimerkiksi lokitiedon kerääminen Ostoskorin toteuttaminen Huomaa, että istuntoja voidaan hyödyntää myös ilman käyttäjän tunnistamista. Tällöin sovelluksen tilaa ei kuitenkaan voida säilyttää istuntojen välillä Asiakas-palvelin -mallissa istunto toteutetaan siten, että asiakkaalle annetaan yksikäsitteinen istunnon tunniste, jonka asiakas toimittaa takaisin palvelimelle jokaisen pyynnön yhteydessä. Istunnon tiedot säilytetään palvelimella ja niihin päästään käsiksi istunnon tunnisteen avulla MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 47

Istunnot käytännössä Istunnon tunnisteen välittämiseen on useita tapoja: Evästeet (Cookie): Eväste on (lyhyt) merkkijono, jonka verkkopalvelu välittää asiakkaalle HTTP-vastauksen mukana. Eväste tallennetaan käyttäjän koneelle joko istunnon ajaksi tai pysyvästi kovalevylle. Asiakas lähettää evästeen palvelulle jokaisen palvelupyynnön mukana. Evästeitä nimitetään usein kekseiksi, pipareiksi tai jopa taikapipareiksi HTTP GET: Istunnon tunniste sijoitetaan muiden pyynnön parametrien tapaan osaksi URI-tunnistetta (example.php?sessionid=xyz123) => ongelmia! HTTP POST: Istunnon tunniste sijoitetaan HTML-lomakkeen piilokenttään Evästeen voimassaoloaika voidaan määritellä evästä asetettaessa. Eväste voidaan myös aktiivisesti poistaa siinä vaiheessa, kun istunto lopetetaan Istunnot ovat erittäin keskeisessä roolissa verkkopalvelun toiminnallisuuden toteuttamisessa. Esimerkiksi yleiskäyttöinen ostoskorin toiminnallisuus toteutetaan istuntojen avulla Istuntoihin palataan vielä luentojen edetessä MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 48

Verkkopalvelun tietoturva Verkkopalvelun tietoturvaan liittyviä riskitekijöitä (Welling ja Thompson 2004): Luottamuksellisen tiedon näkyvyys (exposure of confidential data) Tiedon häviäminen tai tuhoutuminen (loss or destruction of data) Tiedon muokkaaminen (modification of data) Palvelun käytön esto (denial of service) Virheet ohjelmistossa (errors in software) Kiistäminen (repudiation): toiminnossa osallisena ollut taho kiistää osallistumisensa (tavaran tilaaminen, maksullisen palvelun käyttäminen Tietoturvan toteuttamisessa on tehtävä kompromissi verkkopalvelun käytettävyyden, suorituskyvyn, kustannustehokkuuden ja turvallisuuden välillä. Esimerkkejä Salasanan säännöllinen kysyminen verkkopankissa heikentää käytettävyyttä Kaiken palvelusta välittämän tiedon salaaminen syö palvelimen resursseja Paikkansa pitävä teesi: tietoturva on ennen kaikkea asennekysymys! MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 49

Verkkopalvelu: yleisiä ominaisuuksia Verkkopalvelut sisältävät näennäisestä erilaisuudestaan huolimatta lukuisia yleisiä ominaisuuksia: Uutisten lisääminen, muokkaaminen ja julkaiseminen (esim. RSS-muoto) Verkkopalvelun kansainvälistäminen (i18n) ja kotoistus (l10n) Erilliset tai integroidut ylläpitäjän työvälineet (esim. käyttäjien hallinta) Tiedonhaun apuvälineet Sovelluksen räätälöinti sivupohjien avulla Monikanavaisuus (laiteriippumattomuus & saavutettavuus) Käytön tilastointi ja analysointi Sisällön ylläpitämisen työvälineet Mielipidekyselyt, äänestäminen Keskustelualue, vieraskirja, kalenteri, ostoskori,... Verkkopalvelun toimintojen suunnittelumantra: Lisää/Poista/Muokkaa/Kopioi MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 50

Lopuksi Sekä verkkopalvelun teknisestä arkkitehtuurista että toiminnallisuudesta löytyy tekijöitä, jotka toistuvat verkkopalvelusta toiseen Näiden toistuvien tekijöiden tunnistaminen on erittäin hyödyllistä monellakin tavalla: Verkkopalvelun toiminnallisuuden suunnittelutyö voidaan ainakin osittain tehdä uusien toimintojen keksimisen sijaan olemassa olevista vaihtoehdoista valitsemalla ja/tai vaihtoehtoja räätälöimällä Verkkopalvelujen toteuttamisen tueksi voidaan rakentaa yleinen kehysjärjestelmä, joka minimoi toteutustyöhön liittyvät rutiinit ja mahdollistaa aikaresurssien keskittämisen varsinaisen sovelluslogiikan toteuttamiseen PHP-kieli mahdollistaa tietokantojen helpon käyttämisen ja tukee esimerkiksi istuntojen hyödyntämistä ja muita yleisiä toimintoja PHP-sovellusten tekemisen tueksi löytyy myös erilaisia sovelluskehyksiä, joihin tutustuminen on erittäin suositeltavaa ennen laajempien järjestelmien toteuttamista Ohjelmistokehyksiä ei välttämättä tarvitse käyttää sellaisenaan; tärkeämpää on ideoiden kartoittaminen ja soveltaminen. Eräs vaihtoehto on omien tarpeiden mukaisen kehysjärjestelmän toteuttaminen ellei sopivaa vaihtoehtoa ole tarjolla MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 51