Opiskelijan kokemuksia Azure Active Directory B2C-järjestelmästä osana opinnäytetyötä

30.03.2023

Tämän kypsyysnäytteen tarkoitus on tarjota katsaus opinnäytetyön prosessiin sekä siinä käsiteltyyn järjestelmään.

Opinnäytetyön aloittaminen

Prosessi lähti liikkeelle sopivan aiheen valinnalla. Aiheeksi valikoitui yksittäinen Azuren tarjoama järjestelmä, jolla hallinnoidaan asiakkaiden tai kuluttajien identiteettejä ja pääsyä ulkoiseen sovellukseen. Yleensä tämän tyyppisiä järjestelmiä kutsutaan CIAM-järjestelmiksi. CIAM on lyhenne sanoista Customer Identity and Access Management. Azuren tarjoama CIAM-järjestelmä on nimeltään Active Directory Business to Customer, eli AD B2C. Työn tarkoitus oli havainnollistaa miten Azuren tarjoamaa B2C -järjestelmää voidaan kustomoida eri tarpeisiin sekä miten sen liittäminen erilaisiin sovelluksiin käytännössä tapahtuu.

Azure Active Directory Business to Customer (Azure AD B2C)

B2C-järjestelmä pohjautuu toiminnaltaan erityiseen yksikköön, johon viitataan järjestelmässä nimellä ”tenant.” Suoraan suomeksi käännettäessä ”tenant” tarkoittaa vuokranantajaa, mikä ei kuitenkaan kuvaa termin oikeaa toimintaa B2C-järjestelmässä. Vuokranantajan sijasta voidaan puhua organisaatiosta.

Järjestelmän käyttö aloitetaan luomalla oma organisaatio, jonka voi nimetä esimerkiksi oman yrityksen mukaan. Kun järjestelmään on lisätty yrityksen organisaatio, siihen voidaan liittää ulkoisia sovelluksia. Sovellusten lisääminen tapahtuu sovellusrekisteröinnillä, eli viemällä uuden sovelluksen tiedot organisaatioon. Sovellusrekisteröinnit toimivat välikappaleina, jotka mahdollistavat järjestelmän ja ulkoisen sovelluksen välisen kommunikoinnin. Sovellusrekisteröinneille pystytään määrittämään arvoja, joihin voidaan myöhemmin viitata ohjelmistokoodissa, kun järjestelmää halutaan käyttää oman sovelluksen kanssa.

Sovellusten liittäminen järjestelmään

Järjestelmää varten luotiin kaksi erilaista sovellusta, joihin B2C-järjestelmä implementoitiin. Molemmille sovelluksille luotiin omat B2C-organisaationsa, tosin yksittäisellä organisaatiolla voi olla useitakin sovelluksia käytössään. Sovellukset kirjoitettiin eri ohjelmointikielillä, joten myös järjestelmän liittämisessä on omat eroavaisuutensa.

Tärkein elementti sovelluksen liittämisessä on sovellusta varten luotu oma salainen koodi. Kyse on merkkijonosta, jota hyödynnetään ohjelmistokoodissa, kun järjestelmään muodostetaan yhteys sovelluksesta.  B2C-järjestelmässä tähän arvoon viitataan termillä ”application secret,” mutta suomen kielestä sopivaa vastinetta on hankala määrittää.

B2C-järjestelmä tunnistaa, että kyseessä on sallittu sovellus, koska salainen arvo on määritetty sovelluksen ohjelmistokoodiin. Salaista arvoa tulisi käsitellä huolella, jotta se ei pääse ulkopuolisten tietoon. B2C-järjestelmä luo salaisen arvon automaattisesti, käyttäjän tarvitsee vain määrittää ajanjakso, eli kuinka pitkään arvo on voimassa. Kun salaisen arvon käyttöaika loppuu, ei kyseistä arvoa käyttävä sovellus voi enää ottaa yhteyttä B2C-organisaatioon. Tällöin sovellukselle tulisi määrittää uusi salainen arvo, joka päivitetään ohjelmistokoodiin.

Kustomointi, ulkoasu

Yksi työn tärkeimmistä tavoitteista oli perehtyä B2C-järjestelmän kustomointimahdollisuuksiin. Järjestelmä tarjoaa tähän useampia vaihtoehtoja, sillä voit:

  • hyödyntää Microsoftin valmiita mallipohjia, joita löytyy tällä hetkellä kolme erilaista
  • käyttää Company Branding -ominaisuutta suoraan Azuren portaalista
  • muokata html-tiedostoja ja lisätä niihin CSS-muotoiluja ja tyylejä, saavuttaaksesi haluamasi lopputuloksen
  • lisätä muokattuihin html-tiedostohin JavaScriptiä, jolla muokkaat sivuston html-elementtejä

Jokainen kustomointivaihtoehto pitää sisällään sekä hyviä että huonoja puolia. Yllä oleva lista on kirjattu niin, että helpoimmin toteuttavissa oleva vaihtoehto on ylimmäisenä ja vastaavasti vaativin alimmaisena. Valmiit mallipohjat tarjoavat rajallisesti muutosta ja mikäli oman sovelluksen haluaa erottuvan joukosta, ei valmis mallipohja välttämättä miellytä.

Company Branding on ominaisuus, joka on erittäin helppo ottaa käyttöön ja se mahdollistaa erillisen taustakuvan tai oman logon lisäämisen järjestelmään. Näin näyttäviä lopputuloksia saadaan aikaiseksi nopeasti ja helposti.

Mikäli Company Brandingin tarjoamat muutokset eivät riitä, voidaan hyödyntää Microsoftin tarjoamia mallipohjia, joita voidaan muokata lisäämällä halutunlaisia CSS-tyylejä. Html-tiedostot vaativat oman tallennustilansa Azuren palvelusta, jotta niitä voidaan käyttää B2C-järjestelmässä. Tämä edellyttää ns. storage-tilin luomista, jonka jälkeen voidaan lisätä säiliö, eli ”container.” Säiliöön tallennetaan muokatut html-sivustot, joiden sijaintiin viitataan B2C-järjestelmässä.

Viimeinen ja haastavin vaihtoehto edellyttää ymmärrystä JavaScriptistä. JavaScriptin käyttö B2C-järjestelmän kustomointiin on tämän artikkelin kirjoitushetkellä vielä preview-vaiheessa, eli palvelu voi vielä kehittyä tai muuttua tulevaisuudessa. JavaScriptin käyttöön on oma ohjeistuksena Microsoftilta.

Opinnäytetyössä käytettiin JavaScriptiä pudotusvalikon luomiseen, jotta sisäänkirjautumisvaiheessa napit järjestyivät erilliseen valikkoon. Tähän prosessiin ja siihen mahdollisesti liittyviin ongelmiin, voi perehtyä tarkemmin lukemalla opinnäytetyön raportin, jonka linkki löytyy artikkelin lopusta.

Kustomointi, järjestelmä

Järjestelmän kustomointivaihtoehdot eivät jää pelkästään visuaaliselle tasolle. Järjestelmään on mahdollista myös valita, miten sovellukseen kirjaudutaan. Mikäli organisaation sovellusta halutaan käytettävän asiakkaille valmiiksi luoduilla käyttäjätunnuksilla, niin tämäkin on mahdollista. Organisaatio voi itse valita, haluaako se tarjota kirjautumisvaihtoehdoksi ainoastaan Facebook-tilin, vai voiko käyttäjä rekisteröityä esimerkiksi oman koulunsa sähköpostilla. Lisäksi voidaan tarjota kaksivaiheista varmennusta, eli MFA:ta (Multi-Factor Authentication).

Käyttäjän toiminnot sovelluksessa

B2C-järjestelmä mahdollistaa tietyt toiminnot, joiden pohjalta käyttäjä voi toimia. Näistä puhutaan järjestelmässä termillä ”user flow”, eli suomeksi ”käyttäjän virtaus”. Käytännössä tämä kuvastaa eri prosesseja, joita käyttäjä voi sovellusta käyttäessään käydä läpi tai suorittaa. Yksi tällainen suositeltu ”user flow” on käyttäjän sisäänkirjautumis-/rekisteröitymisprosessi. Tällöin käyttäjälle näytetään yksittäinen näkymä, jolta hän voi valita, mikäli hän haluaa kirjatua sisään, luoda uuden käyttäjän tai palauttaa salasanansa.

Jokaiselle sovellukselle tulisi lisätä sellaiset prosessit, joita oma järjestelmä vaatii. Opinäytetyössä hyödynnettiin seuraavia prosesseja:

  • Kirjaudu sisään / rekisteröi uusi käyttäjä
  • Muokkaa profiilia
  • Palauta salasana

Lopputulos

Kokonaisuutena B2C-järjestelmä tarjoaa monipuolisesti vaihtoehtoja asiakkaiden ja kuluttajien identiteettien ja pääsynhallintaan. Tämä artikkeli käsittelee järjestelmän käyttöä ”user flow” näkökulmasta, mutta mikäli aiheeseen haluaa perehtyä laajemmin, suosittelen tutustumaan myös kustomoitaviin käytäntöihin (eng. custom policy), sillä ne mahdollistavat käyttäjäkokemuksen muokkaamisen vieläkin laajemalla tasolla.

Lähde

Perkola, T. 2023. https://www.theseus.fi/handle/10024/791736, Turun ammattikorkeakoulun opinnäytetyö.