Blogin shibbolointi -hanke

Blogin shibbolointi -pilotti

Tampereen teknillisen yliopiston Hypermedialaboratorio suunnittelee ja toteuttaa vuoden 2007 aikana organisaatiorajat ylittävän kertakirjautumisen (single sign-on) WordPress-blogijärjestelmään. Hanketta rahoittaa Haka-luottamusverkostoa operoiva Tieteen tietotekniikan keskus CSC.

Pilotin osapuolet ja toimijat (organisatorinen toimintaympäristö)

Tampereen teknillisen yliopiston Hypermedialaboratorio, Tampereen yliopiston Hypermedialaboratorio ja Tampereen yliopiston Opetusteknologiakeskus. Hanke tukee osaltaan TTY:n hypermedialaboratorion Polkka-hanketta (vuoden 2007 TTY:n virtuaaliyliopistohanke), jossa tuotetaan tukimateriaalia blogien opetuskäytöstä, suunnitellaan ja toteutetaan blogien opetuskäytön hyötyjä esittelevä esimerkkijärjestelmä sekä kerätään resurssikirjasto blogien käytännön soveltamisen tueksi TTY:llä.

Pilotissa loppukäyttäjäksi tarkoitettu kohderyhmä

Tampereen teknillisen yliopiston hypermedialaboratorion opetushenkilökunta ja hypermedialaboratorion kurssien opiskelijat. Tampereen yliopiston hypermedialaboratorion opetushenkilökunta ja hypermedialaboratorion kurssien opiskelijat. Tampereen yliopiston opetusteknologiakeskus tarjoaa mahdollisesti blogipalvelua koko Tampereen yliopiston käyttöön. Jatkossa shibboloitu blogi on otettavissa käyttöön muissa Suomen yliopistoissa ja korkeakouluissa.

Kohderyhmälle tarkoitetut ja toteutettavat palvelut

Blogeja voidaan hyödyntää monipuolisesti yliopistojen ja korkeakoulujen opetuksessa sekä viestinnässä. Opetuskäyttö voi olla mm. blogin käyttö kurssin verkkosivuna tai kurssin tapahtumien uutisoimisvälineenä. Blogia voidaan käyttää myös keskustelupalstana ja blogin tarjoaman RSS-tuen myötä blogin muutoksia voidaan seurata myös muilla viestintävälineillä.

TTY:n Polkka-hankkeen tavoitteena on kerätä yhteen blogien opetuskäyttöön liittyviä toimivia käytäntöjä, testata käytännössä blogien valjastamista osaksi valikoituja opintojaksoja sekä tukea blogien valjastamista verkko-opetuksen kehittämiseen TTY:ssa. Tässä blogin shibbolointihankkeessa on tarkoitus toteuttaa Polkka-hankkeessa valittavan blogijärjestelmän shibbolointi sekä toteuttaa shibboleth-tekniikan tarjoamia mahdollisuuksia käyttäjien henkilötietoihin perustuvaan käyttöoikeuksien hallintaan blogeissa. Blogeihin kirjoittamista, blogien lukemista ja muiden blogin toimintojen käyttöä tulisi voida rajoittaa esimerkiksi perustuen käyttäjän organisaatioon, käyttäjän rooliin organisaatiossa (opiskelija tai opettaja) sekä käyttäjän jäsenyyteen tietyllä kurssilla.

Kuvaus palveluiden teknisestä ympäristöstä sekä hahmotelma toteutuksesta

Tekninen ympäristö (suunnitelma)

Hankkeen tekniset ratkaisut määrittyvät Polkka-hankkeen alussa toteutettavan kartoitustyön perusteella. Todennäköisenä teknisenä ratkaisuna tulee olemaan ilmainen, avoimen lähdekoodin WordPress-blogijärjestelmä (http://wordpress.org/), joka on toteutettu PHP-kielellä ja käyttää MySQL-tietokantaa. WordPress on jo käytössä TTY:n hypermedialaboratoriossa. WordPressin on myös Tampereen yliopistolla herättänyt kiinnostusta mutta järjestelmästä puuttuva tuki keskistetylle käyttäjän tunnistukselle ja käyttöoikeuksien hallinnalle on estänyt sen käyttöönottoa.

Hahmotelma toteutuksesta

  1. projektisuunnitelman teko
  2. blogijärjestelmään ja erityisesti sen autentikointi- ja authorisointimenetelmien toteutukseen tutustuminen
  3. toteutettavan järjestelmän käyttöön liittyvien toimintaprosessien määrittäminen ja dokumentointi "Shibboleth-tunnistuksen ja käyttöoikeuksien hallinnan toteuttaminen blogijärjestelmään
  4. järjestelmän testaus ja pilotointi syksyllä 2007
  5. shibboloidun blogijärjestelmän käyttöönotto-ohjeistuksen toteuttaminen
  6. raportointi. Dokumentointi tehdään CSC:n tai sen edustajan määrittelemällä tavalla projektin aikana (sisältää projektisuunnitelman, väliraportin ja loppuraportin).

Alustava arvio toteutusaikataulusta

Järjestelmän toteutus on tarkoitus tehdä kesällä 2007 ja testaus sekä pilotointi syksyllä 2007. Aikaa toteutukseen ja testaukseen arvioidaan kuluvan 3 henkilötyökuukautta.

Pilotin toteutukseen käytettäväksi suunnitellut henkilöresurssit

Pilotissa tehtävä tekninen toteutustyö sekä hankkeen sisäinen ja rahoittajan vaatima dokumentointi tehdään TTY:n hypermedialaboratoriossa yhden tutkijan ja yhden tutkimusapulaisen voimin. Tampereen yliopiston hypermedialaboratorio ja opetusteknologiakeskus osallistuvat kehitettävän järjestelmän ominaisuuksien määrittelyyn, kehitettävän järjestelmän pilotointiin sekä pilotin ohjaukseen.

Hankkeesta vastaavan henkilön yhteystiedot

Lauri Pohjanen lauri.pohjanen@tut.fi 040 - 849 0177

WordPress blogijärjestelmä

Hankkeessa shibboloitavaksi valittiin WordPress-blogijärjestelmän normaaliversio sekä MU (multi-user) -versio. MU-versio mahdollistaa useiden blogien hallinnoimisen yhdellä järjestelmällä, kun normaaliversion sisältää vain yhden blogin. Käsityönä tehtävän asentamisen jälkeen shibboloitu WordPress mahdollistaa seuraavat toiminnot:
  1. Blogiin (MU versiossa sekä emoblogiin että opintojaksoblogeihin) voi kirjautua Shibboleth-mekanismia käyttäen organisaation peruspalvelutunnuksella.
  2. MU versiossa Shibboleth-tiedon perusteella tietyn laitoksen henkilökuntaan kuuluvat henkilöt voivat perustaa emoblogiin uusia (opintojakso)blogeja. Luontiprosessi on helppokäyttöinen ja mahdollistaa blogin nimeämisen, sivupohjan valinnan sekä muutamien Shibboleth-sidonnaisten asetusten tekemisen.
  3. Opettaja voi säätää opintojaksobloginsa Shibboleth-asetuksista sääntöjä, joiden mukaan blogiin rekisteröityville käyttäjille annetaan käyttäjärooli blogiin. Rooleilla on erilaisia (blogijärjestelmän ylläpitäjän muokattavissa olevia) oikeuksia blogin käyttöön. Esimerkiksi Subscriber-roolin omaava voi lukea blogiin kirjoitettuja viestejä ja kommentoida niitä. Student-roolin omaava voi kirjoittaa blogiin eri tyyppisiä viestejä, kuten viikkoharjoituksia tai tehtäviä. Teacher-roolin omaava voi tarkistaa ja hyväksyä Student-roolilaisten kirjoittamia viestejä. Administrator-roolilla on blogin hallintaoikeudet.
  4. Kun käyttäjä rekisteröityy Shibboleth-mekanismilla (opintojakso)blogiin, annetaan hänelle automaattisesti rooli, joka määräytyy opettajan opintojaksoblogiin tekemistä Shibboleth-asetuksista. WordPress MU -asennus voidaan tehdä esimerkiksi tietyn laitoksen tai ammattiaineen käyttöön. Toteutus tehtiin WordPressin laajennusmekanismiin (plugins) perustuen, jotta välttiin räätälöinnin sitomiselta tiettyyn WordPress-versioon.

Blogijärjestelmän käyttöön liittyvät toimintaprosessit

Prosessit blogin toimijoista ja toiminnoista

  1. Laitokselle voidaan perustaa blogijärjestelmä, johon laitoksen opettajat voivat itse luoda opintojaksoblogeja.
  2. Opettaja voi helposti itse perustaa opintojaksolleen blogin.
  3. Opettaja voi rajoittaa opintojaksobloginsa käyttöä vain opintojaksolle ilmoittautuneille opiskelijoille.
  4. Opettaja voi määritellä opintojaksoblogin käyttäjille rooleja. Rooleilla on erilaisia oikeuksia käyttää blogia. Uudelle blogiin rekisteröityneelle käyttäjälle voidaan antaa rooli automaattisesti shibbolethin kautta saatavien henkilötietojen perusteella esimerkiksi kurssiroolitiedon avulla.
  5. Opiskelijat voivat itse rekisteröityä opintojaksoblogiin.
  6. Opettaja voi määritellä kurssilleen eri tyyppisiä viestejä esimerkiksi harjoitustyö, viikkotehtävä tms.
  7. Opettaja voi määritellä eri tyyppisille viesteille viestien julkaisuun liittyviä hyväksymiskäytäntöjä.
  8. Opiskelijat voivat kirjoittaa blogiin eri tyyppisiä viestejä
  9. Opiskelijat voivat kommentoida toistensa viestejä.
Katso Kaavio blogijärjestelmän prosesseista.

Blogijärjestelmän rakenne

Kokonaisuus jakaantuu kahteen eri osa-alueeseen: emoblogi ja opintojaksoblogi. Emoblogi on blogijärjestelmän ydin, jonka alle opintojaksojen blogit luodaan. Emoblogi ei siis ole blogi, johon kirjoitetaan viestejä vaan sen osaksi luodaan blogit, joihin voidaan sitten kirjoittaa blogiviestejä.

Emoblogi

Emoblogi toimii organisaatiokohtaisesti. Yliopistossa tai korkeakoulussa yksittäinen laitos on yleensä se opetusta tarjoava yksikkö, jolle emoblogi perustetaan. Emoblogi tarjoaa mahdollisuuden uusien blogien luomisen ja hallitsemisen. Yliopistoissa blogeja perustetaan yleensä yksittäiselle laitoksen järjestämälle opintojaksolle.

Opintojaksoblogin luonti

Emoblogi tarjoaa opettajalle helppokäyttöisen opintojaksoblogin luontiprosessin:
  1. Opettaja kirjautuu käyttäen shibboleth-tunnistusta. Tunnistuksen yhteydessä blogi tarkistaa kuuluuko kirjautuja sen laitoksen henkilökuntaan, jolle emoblogi on asennettu.
  2. Kun opettaja on tunnistettu henkilökuntaan kuuluvaksi tarjoaa emoblogi hänelle uuden opintojaksoblogin luontisivun, jossa hänen pitää täyttää vain bloginsa nimi ja pääte blogin URL-osoitteeseen.
  3. Opettaja valitsee blogille haluamansa sivupohjan (template), joka määrittelee blogin ulkoasun (värit, fontit ja sivurakenteen).
  4. Blogi on perustettu ja opettaja siirtyy blogin hallinnan etusivulle eli Työpöydälle, jossa on ohjeita blogin asetusten säätämiseen erilaisin blogin opetuskäytön tarpeisiin.

Opintojaksoblogin shibboleth-asetukset

Jokaisella opintojaksoblogilla on shibboleth-asetukset, joiden avulla opettaja voi säätää mm. pystyykö blogiin rekisteröitymään käyttäjäksi shibboleth-kirjautumisen avulla sekä ohjaamaan uudet käyttäjät tiettyyn rooliin blogissa.

Katso kuva Blogin shibboleth asetukset

Säädettävissä olevat shibboleth-asetukset
  1. Onko shibboleth-rekisteröityminen käytössä
    • Opettaja voi valita käytetäänkö opintojaksoblogissa shibbolet-tunnistautumista. Perusteltu syy jättää käyttämättä shibboleth-tunnistautumista on, että opintojaksolla on opiskelijoilta jotka eivät pysty kirjautumaan blogiin shibboleth-tunnistautumisella, jolloin voidaan ottaa käyttöön manuaalisesti luotavat käyttäjätunnukset.
    • Opettaja voi myös tällä asetuksella sulkea blogin niin, ettei siihen oteta enää uusia käyttäjiä.
  2. Oletusrooli kaikille, jotka tulevat shibbolethin kautta
    • Opintojaksoblogissa käyttäjät kuuluvat johonkin neljästä roolista: Subscriber, Student, Staff tai Administrator
    • Opettaja voi valita minkä rooliin uudet blogin käyttäjät saavat.
    • Roolilla on tietyt käyttöoikeudet blogissa. Näitä käyttöoikeuksia säädetään Emoblogin asetuksista.
  3. Lisäksi opettaja voi asettaa haluamansa määrän asetuksia tai sääntöjä, joiden mukaan uusille blogin käyttäjille annetaan tietty rooli perustuen shibboleth-kirjautumisen kautta saatuihin henkilötietoihin.
    • Näitä asetuksia ovat
      • Organisaatio (schacHomeOrganization attribuutti)esimerkiksi tut.fi, jolloin tarkistetaan, että käyttäjä on Tampereen teknillisestä yliopistosta (TTY)
      • Opintojakso (eduCourseMember attribuutista) esimerkiksi MATHM-37000, joka tarkoittaa Hypermedian perusteet kurssia TTY:llä
      • Opintojakson toteutuskerta (eduCourseMember attribuutista)
      • Oltava henkilökuntaa (eduPersonAffiliation attribuutti)

Shibboleth-tunnistuksen ja käyttöoikeuksien hallinnan toteuttaminen blogijärjestelmään

Shibboleth-tunnistus toteutettiin sekä WordPress 2.2 että WordPress MU 1.2 versioon. Shibboleth-tunnistus toteutettiin WordPress-järjestelmän laajennusmekanismiin (plugins) perustuen (ks. http://codex.wordpress.org/Plugins).

Toteutustapa

  • Plugini koostuu hakemistosta, joka on suojattu shibboloinnilla .htaccess-tiedostolla. Hakemistossa on lisäksi pluginin toteuttava shibauth.php tiedosto ja index.php tiedosto
  • Plugini-php-tiedosto lisää wp-login.php-sivulle linkin "Kirjaudu TTY:n intratunnuksella"
  • Linkki vie pluginin hakemistoon, jossa kirjaudutaan shibbolethillä, ja jonka jälkeen index.php includoi wp-login.php:n
  • Plugini tietää että shibboleth-ympäristömuuttujat on asetettu ja kirjaa käyttäjän sisään. Jos käyttäjää ei ollut tietokannassa, luodaan se
  • wp-login.php uudelleenohjaa wp-admin-hakemistoon, mutta koska ollaan pluginin hakemistossa, hakemiston wp-admin-hakemiston index.php uudelleenohjaa käyttäjän oikeaan wp-admin-hakemistoon

Huomioita

  • Automaattisesti luoduilla käyttäjillä on tietokannassa salasanakenttä tyhjä. Tällöin ei myöskään näytetä admin-osiossa salasananvaihtokenttiä kyseisillä käyttäjillä.

Shibboloinnin toteutuksen lähdekoodi

Katso pluginin toteuttavan PHP-tiedoston lähdekoodi Shibauth PHP-tiedosto

Järjestelmän testaus ja pilotointi

  • Järjestelmää testattiin toteutuksen yhteydessä koko kesän ajan.
  • Järjestelmän testauksessa ongelmalliseksi nousi se, että Shibboleth-tunnistautumisen testaaminen eri tyyppisillä käyttäjillä kehitetyssä järjestelmässä on hankalaa. Järjestelmässä käyttäjän eri toimintoihin ja järjestelmän osiin liittyvät käyttöoikeudet ovat sidoksissa hänen shibboleth-attribuutteihinsa, joten kehittäjän on vaikea omilla tunnuksillaan testata miten järjestelmä toimii eri tyyppisillä käyttäjillä, joilla on muunlaisilla shibboleth-attribuutteja.
  • Ennen varsinaisen pilotoinnin alkamista syksyllä 2007 järjestettiin testaustilaisuus, jossa järjestelmästä löytyi bugeja, jotka estivät varsinaisen pilotoinnin aloituksen. Bugeja korjattiin mutta järjestelmää ei saatu syksyn 2007 aikana niin toimivaksi, että sen olisi voinut ottaa pilottikäyttöön. Ongelmat liittyivät tehdyn shibboleth-laajennuksen uudelleenohjaustoimintoihin, joissa käyttäjä ohjataan hänen shibboleth-attribuuttiensa perusteella oikealle sivulle. Toinen löydetty bugi liittyi blogin käyttöön silloin kun käyttäjän attribuutit muuttuvat kun käyttäjä on aikaisemmin kuulunut henkilökuntaan ja tehnyt silloin blogin ja myöhemmin hänen statuksensa vaihtuu opiskelijaksi.
  • Varsinainen pilotointi ja blogin tuotantokäyttöönotto siirtyi keväällä 2008 alkaville hypermedian kursseille.

Shibboloidun blogijärjestelmän käyttöönotto-ohjeistus

Asennus tavalliseen WordPress järjestelmään

  1. Lataa ja asenna Wordpress 2.2.x Asennusohjeet
  2. Asenna Shibbleth Service Provider ohjelmisto palvelimelle ja säädä se kuntoon.
  3. Lataa shibboleth plugin paketti Tiedosto:Shibauth.zip
  4. Pura plugin-asennuspaketti Wordpress:n wp-content/plugins hakemistoon
  5. Muokkaa oikeat shibboleth-attribuutien ympäristömuuttujanimet shibauth/shibauth.php -tiedoston alkuun
  6. Suojaa shibauth hakemisto shibboleth-kirjautumisella
    • Paketissa mukana .htaccess tiedosto jolla suojauksen voi hoitaa, jos Apache on konfiguroitu lukemaan .htaccess-tiedostoja ja Apachen asetuksissa on määritelty "AllowOverride AuthConfig"
    • Toinen keino on suojata shibauth hakemisto suoraan Apachen konfigurointitiedostossa:
  <Directory  "/path/to/wp/wp-content/plugins/shibauth">
    AuthType shibboleth
    ShibRequireSession On
    require valid-user
  </Directory>

Asennus WordPress MU -versioon

  1. Asenna Wordpress MultiUser 1.2.5a viralliselta svn-repositorysta ( esim. svn export http://svn.automattic.com/wordpress-mu/tags/1.2.5a/ wpmu ) Asennusohjeet README.txt
  2. Asenna Shibbleth Service Provider ohjelmisto palvelimelle ja säädä se kuntoon.
  3. Lataa shibboleth plugin paketti Tiedosto:Shibauth.zip
  4. Pura plugin-asennuspaketti WordpressMU:n wp-content/mu-plugins hakemistoon
  5. Muokkaa oikeat shibboleth-attribuutien ympäristömuuttujanimet shibauth/shibauth.php -tiedoston alkuun
  6. Suojaa shibauth hakemisto shibboleth-kirjautumisella
    • Paketissa mukana .htaccess tiedosto jolla suojauksen voi hoitaa, jos Apache on konfiguroitu lukemaan .htaccess-tiedostoja ja Apachen asetuksissa on määritelty "AllowOverride AuthConfig"
    • Toinen keino on suojata shibauth hakemisto suoraan Apachen konfigurointitiedostossa:
  <Directory  "/path/to/wpmu/wp-content/mu-plugins/shibauth">
    AuthType shibboleth
    ShibRequireSession On
    require valid-user
  </Directory>

Lisätietoa

Topic attachments
I Attachment Action Size Date Who Comment
Shibauth.zipzip Shibauth.zip manage 4.8 K 29 Jul 2010 - 15:10 PasiHaekkinen Shibboleth-autentikoinnin toteutus WPMU:hun
Print version |  PDF  | History: r5 < r4 < r3 < r2 | 
Topic revision: r5 - 29 Jul 2010 - 16:00:39 - PasiHaekkinen
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback