HY:n ehdotus käyttäjähallintotuotteesta (jota sovellettaisiin Atikiin) Versio 1.5 / 27.2.2009 Ismo Aulaskari HY aikoo markkinoida pakettia joihin kuuluisi HY:n konesalissaan ylläpitämä, varmuuskopioitu Linux(RHEL 5) -virtuaalipalvelin ja seuraavat HY:n ylläpitämät ohjelmistot (tai vaihtoehtoisesti varmaan ainakin jonkun muun ylläpitämä palvelin ja HY:n ylläpitämät käyttäjähallintoohjelmistot, tai pelkkä ohjelmistokokonaisuus jonka jokainen saa itse ylläpitää omalla tavallaan): Ldap-autentikointia tukeva Openldap-käyttäjähakemisto Kevytkäyttäjähallinto-automaatti joka ylläpitäisi Openldapin käyttäjätietoja ja tarjoaisi kaksisuuntaisia rajapintoja muiden järjestelmien (kuten Atik, korkeakoulujen järjestelmät, Oodi) suuntaan Asennettujen ohjelmistojen lähdekoodit vähintään paketin hankkineille asiakkaille saataville, jos ei koko maailman nähtäväksi (jolloin ohjelmistopaketti olisi kaikkien saatavissa ilman tukisopimusta) Ohjelmistokokonaisuus on mahdollista asentaa Linux-palvelimelle tavallisena käyttäjänä ja ajaa tavallisen käyttäjän oikeuksin Optioina (jotka nyt Atikin yhteydessä käytetään) Web-käyttöliittymä kevytkäyttäjähallintoautomaatille Vetuma-pohjainen tunnistus, käyttäjän rekisteröinti ja salasanan uusiminen, joka on irrallinen moduuli Atik-järjestelmästä Perustason käyttäjä- ja virkailijaroolien hallinta kevytkäyttäjähallintoautomaatissa (irrallinen Atik-järjestelmästä) Muina optioina (jotka eivät ole välttämättömiä) Shibboleth Identity Provider ja HAKA-federaatiota tukeva tietosisältö(olisi hyvä jos Atik-järjestelmä olisi Shibboleth Service Provider-suojattu) Ldapin kahdennus (Shibbolethin kahdennusta ei ole HY:llä testattu mutta teoriassa sekin on mahdollista) Kevytkäyttäjähallinnon www-littymän kahdennus onnistuu, jos kuorma käy yhdelle sovelluspalvelimelle liian raskaaksi
ATIK Kevytkäyttäjähallintosovellus WSrajapinta -autentikoi -luo uusi -hae -muokkaa Rajapintoja - Web-liitymä -LDAP -massatuonti esim. Oodista tai käyttölupajärj estelmästä LDAP / SAML2 -autentikoi -hae käyttäjä -Poista -Hae kaikki -Muokkaa Openldap / Shibboleth IDP Yliopiston autentikointijärjestelmä Linux-palvelin
Yhden tunnuksen politiikan toteuttaminen Ajateltu tässä versiossa tehdä niin että kaikki tunnistukset menevät Openldapin kautta, ja yliopiston tunnusten autentikointi ohjataan openldapista yliopiston Radiukseen, LDAPiin tai muuhun toteutettavaan rajapintaan, käyttäen Openldapkotitekoinen perl-demoni-siltaa joka on HY:llä tuotantokäytössä Yliopiston olemassaolevista tunnuksista luodaan kopio ATIK-tietokantaan saman käyttäjän ATIK-tunnukseksi sitä mukaa kun käyttäjiä pyrkii ATIKiin, salasanoja ei synkronoida Osaako ATIK ohjata käyttäjän Openldapin kohtaan riippuen siitä onko kysessä yliopiston tunnus, vai toteutetaanko tuki tälle ohjaukselle Openldapiin? HY-integraatiohahmotelma Jälkimmäinen vaihtoehto mahdollistaa käyttäjähallinnon helpomman kytkennän ATIK-järjestelmään ja voidaan toteuttaa esim. Ldap-attribuutin joka jakaa käyttäjät ATIK-käyttäjiin ja yliopiston käyttäjiin avulla HY:n keskitetyn tunnistuksen vaativat palvelut ATIK Shibboleth LDAP Radius Atikkäyttäjähallinto AD Unix Opiskelijarekisteri HY IDM
Miksi? Atik:in ja yliopistojen järjestelmien välille tarvitaan integraatiota 1. tarjouskilpailu Atik-2.0-järjestelmästä epäonnistui koska yliopistot eivät kyenneet määrittelemään yhteistä integraatiorajapintaa Atikiin ja toimittajat hinnoittelivat useiden eri integraatiovaihtoehtojen toteuttamisen, sekä käyttäjien tunnistukseen ja käyttäjähallintoon (vahva verkkotunnistus, salasana- ja roolihallinto) liittyvät toiminnot liian kalliiksi tämän takia ryhdyttiin suunnittelemaan yhtä standardoitua integraatiorajapintaa jota tarjota toimittajille ja toteuttaa sen yliopistopuoli eri integraatioineen halvemmalla HY:n projektina kaikkien käyttöön Yliopistojenvälisen yhteisen käyttäjähallinnon toteuttamisen syy potentiaaliset kustannushyödyt, ylläpidossa ja Tupas/Vetuma-sopimuksissa HY itse aikoo käyttää kevytkäyttäjähallintoa sopivalla tavalla olemassaolevaan käyttäjähallintoonsa integroituna, ei sen korvaajana merkittävä osa koodipohjasta on jo tehty ja tuotantokäytössä Teatterikorkeakoulun HAKA-käyttäjähallintona yhteistoiminta kustannussyistä oli Atik 2.0-projektin kantava idea Kevytkäyttäjähallintotuotteessa oma tunnusvarasto ja käyttäjähallintotoiminnot jotta voidaan säilyttää Atik-tunnuksia jossain silloin kun yliopiston käyttäjähallintoon ei pääse kuin opiskelijarekisterin kautta Atikissa luodaan tunnuksia jo ennen käyttäjien ilmoittautumista kursseille, kurssi-ilmoittautumiset kirjataan opiskelijarekisteriin kuka tahansa kadunmies voi luoda tunnuksen eli niitä on potentiaalisesti paljon yliopistojen ei tarvitse välttämättä antaa Atikille pääsyä yliopiston käyttäjähallintoon/opiskelijarekisteriin Samalla voitaisiin tarjota kevyttunnushallinto sitä tarvitseville Tarkoitus olisi tarjota integraatiorajapintoja myös kevytkäyttäjähallinnolle tulleitten kutsujen välittämiseen yliopiston järjestelmille Kevytkäyttäjähallinnon lokaalit tunnukset voidaan myös verkkotasolla pitää erossa esim. lisenssoiduista aineistoista
Openldap-hakemisto Skeematuki vähintään attribuuteille uid (käyttäjätunnus) cn (koko nimi muodossa etunimet sukunimi) userpassword (käyttäjän salasanatiiviste, jos paikallinen salasana) käyttäjän roolit jos tieto on Atik-järjestelmästä saatavilla onko opinto-oikeutta voimassa tarkempia rooleja, esim. Virkailijastatus eduperson-roolit (esim. Vetuma 2.1 VTJ-kyselyn avulla, tai käyttäjän itse syöttämänä): hetu sähköposti givenname (etunimet) sn (sukunimi) voimassaolon loppupvm luontipvm muut tarvittavat tiedot (rajaus Atikin ja käyttölupajärjestelmän välillä) Laskutus? opinnot/ilmoittautumiset? opinto-oikeuden pituus? Näitä tuskin tarvitaan käyttäjähallintosovelluksessa, paitsi jos halutaan käyttää niitä rooleina hienojakoiseen auktorisointiin Skeema laajennettavissa funeteduperson 2.0-ehdot täyttäväksi (ja täten Shibboleth-yhteensopivaksi) Mahdollinen HAKA-luottamusverkostojäsenyys asettaa tiukkoja vaatimuksia käyttäjähallinnon prosesseille Mahdollisuus kahdentaa Openldap-palvelu vikasiedon/kuormantasauksen kannalta Toimii vähin katkoin ilmankin Mahdollisuus Shibboleth Identity Providerin asentamiseen Tarvitaan tuki Shibboleth-autentikointiin Rajapinta (Ldap v.3) jonka kautta TLS-/LDAPS-suojattu simple bind-tunnistus käyttäjätunnus menee (ainakin tilapäisesti) lukkoon liian monen epäonnistuneen yrityksen jälkeen
yksittäisen käyttäjän tietojen haku (joissain rajatapauksissa on mahdollista sallia koko tietokannan haku Ldap-protokollan yli, tätä ei kuitenkaan suositella) esim. Käyttäjän roolin kysely teoriassa voitaisiin sallia käyttäjien luonti ja muokkaaminen Ldap-protokollan yli, ohi käyttölupa-automaatin, salasanaresetointi nämä kuitenkin parempi toteuttaa käyttäjähallintosovelluksen kautta Konfiguroitu tekstitiedostolla Lokitus säädettävissä, normaalisti ldap-operaation tarkkuudella Ldap-hakemiston monitorointi? (HY:llä esim. Big Sister, Smokeping, Logwatch..)
Kevytkäyttäjähallinto-automaatti J2EE5-alustalle (referenssisovelluspalvelimena Glassfish v2) Automaatti/automaatit joka huolehtii kerran vuorokaudessa vanhentuneiden käyttäjätunnusten poistosta/lukitsemisesta käyttäjätietokannan levylle dumppaamisen varmuuskopiointia varten On konfiguroitavissa tekstitiedostosta ldap-palvelimen ja ylläpitotunnuksen tiedot tuetut käyttäjätiedot käyttäjätunnuksen formaattifunktio/-luokka Periaatteessa kahdennettavissa sovelluspalvelinklusterilla Lokitus säädettävissä sovelluspalvelimella, monitorointi sovelluspalvelimella Rajapinta (WS-I Basic Profile 1.1 -web service) HTTPS-yhteyden yli, jonka kautta uusien käyttäjätunnusten luonti ATIKista Ldapiin käyttäjätunnusten tietojen muokkaaminen ATIK-järjestelmän opintotietojen perusteella roolin (opiskelija/ei-opiskelija, virkailija) päivitys käyttäjän/käyttäjien tietojen haku käyttäjän rooli(e)n kysely tarvittaessa myös kaikki käyttäjät XML-dumppina synkronointitarpeita ajatellen Optiona Oodi-rajapinta (Web service, Oodin WS-määritelmien mukaan) seuraavien tietojen synkronointiin: opiskelijan vanhojen opiskelutietojen katselu ei ilmeisesti kuulu käyttäjähallintosovelluksen piiriin vaan ATIKiin Optiona muu tarvittava organisaatiokohtainen integraatiorajapinta? REST, HTTPS POST? Tarvitaan tarkistuksia yliopiston käyttölupajärjestelmästä, onko käyttäjä jo siellä olemassa
Optiona web-liittymä käyttäjätietojen ylläpitoon (liittyy tuotteen muihin käyttömahdollisuuksiin) tarpeita voi tulla myöhemmin käyttäjät jotka eivät voi VETUMA-tunnistautua, rekisteröinti, tietojen muuttaminen? käyttäjä/virkailijaroolien ylläpito rooleja rajallinen, harvoin muuttuva joukko, joita kontrolloidaan kevytkäyttäjähallinnon puolella ldapissa yksinkertaisuussyistä Käyttäjän rooleja säilytetään kevytkäyttäjähallinnon puolella ATIKkäyttäjäobjekteissa Ldapissa käyttäjällä voi olla monta roolia roolien muokkamiset ws-rajapinnan kautta Omien käyttäjätietojen tarkistaminen web-lomakkeella -Atikin ominaisuus(?) muokkausmahdollisuus myös Atikissa(?) Optiona Vetuma-autentikointi-osion toteuttaminen Luvan luonti openldapiin Salasanaresetointi (vain Atik-tunnuksille, ei yliopiston) Tunnistuksia rajattu määrä/viikko/hetu/ip? Kirjautumiskäyttöliittymä tarjoaa vaihtoehdot: kirjautuminen yliopiston tunnuksilla kirjautuminen ATIK-tunnuksilla unohtunut tunnus/unohtunut salasana/uuden tunnuksen rekisteröinti Kun käyttäjä yrittää luoda tunnusta, jos Atik-tunnus jo olemassa kerrotaan käyttäjälle käyttäjätunnus, jos ei muista ohjataan salasanaresetointiin Tarkistus onko käyttäjällä tunnusta kotiyliopistossa, henkilötunnuksen perusteella Vetuma-tunnistamisen jälkeen ei tarvitse luoda käyttäjälle sessiota ATIKjärjestelmään, vaan on ok että käyttäjä kirjautuu ATIKiin saatuaan VETUMAlla tunnuksen ja salasanan.
Atik-käyttölupajärjestelmän prosessit (löyhä hahmotelma) Kevytkäyttäjähallinnon tarjoamat kutsutyypit ja vastaukset: Käyttäjä yrittää kirjautua(tunnus, salasana) ok palautetaan ok väärä tunnus tai salasana palautetaan epäonnistuminen, ATIKin tarjottava käyttäjälle linkit seuraaviin: Unohti tunnuksensa Tunnus olemassa(sukunimi, hetu) Unohti tunnuksensa Rekisteröidy Ei tunnusta Rekisteröidy Rekisteröidy(sukunimi, hetu) Unohti tunnuksensa VETUMA-tunnistus saadaan varmistettu hetu, Luodaan tunnus Unohti tunnuksensa palautetaan käyttäjätunnus, tarjotaan opastusta tunnuksista Käyttäjä yrittää kirjautua uudestaan tarjotaan Salasanan resetointia(vai lähettääkö atik lokaaleja salasanoja käyttäjälle?) Luodaan tunnus(varmennettu hetu, etunimi, sukunimi, rooli, voimassaolon loppupvm, mail?) palauttaa luodun käyttäjätunnuksen Tunnus olemassa(sukunimi,hetu) palauttaa tunnuksen tai ilmoituksen sen puuttumisesta Salasanan resetointi Vetuma-tunnistus varmennetulla hetulla etsitään käyttäjän tunnus, ja annetaan vaihtaa sen salasana Muokkaa tunnusta(tunnus, rooli, henkilötiedot) Poista tunnus(tunnus) Hae tunnuksia(ldap-kysely) Roolien kysely(tunnus)