http://www.helsinki.fi/~aulaskar/tietos/vetuma/doc/vetuma2.0/, alla oleva tieto koskee vanhaa versiota. : Ismo Aulaskari 17.4.2008
Vetuma.pm on todettu toimivan myös uuden Vetuma 2.1-määritelmän kanssa. En ole vielä julkaissut virallisesti seuraavaa versiota Vetuma.pm:stä vaikka se HY:llä tuotannossa salasanaresetointi- ja käyttöluvan aktivointisovelluksissa syksystä asti on ollutkin. Syynä on noihin oheisohjelmistoihin, jotka myös täällä piti julkaista, tullut toistuva lisätoiminnallisuuden tarve. Softat eivät ole päässeet vakiintumaan tarpeeksi että niitä olisi jaksanut kattavasti dokumentoida. Ne kyllä saa minulta tiskin alta niiltä osin kuin ne yleiskäyttöisiä ovat. : Ismo Aulaskari 19.3.2008
Vaikka lupasin moduulin seuraavan version ja oheissovellusten julkaisun kesäkuussa, ajattelin jättää sen sittenkin kesälomieni jälkeen jolloin viilaan vielä HY:llä tuotantoon siirtyvää käyttölupasovellusta. Jos joku kaipaa johonkin noita softia jotka testeissä jo toimivat ennen elokuuta voi ottaa yhteyttä henk.koht. : Ismo Aulaskari 5.7.2007
HUOM: Moduulin seuraava, toiminnallisuudeltaan laajempi versio on tulossa kesäkuussa!
Uudistuksina mm. liikennemäärän rajoitin, paremmat oheiskirjastot www-sovellusten tekoon, ja VETUMA-autentikointiin
integroidut salasananvaihtosovellus ja käyttölupasitoomuksen allekirjoitussovellus.
Dokumentin versio 1.0.1. Pieniä täydennyksiä tähän dokumenttiin : Ismo Aulaskari 15.2.2007
Tämän dokumentin versio 1.0 ja samalla Vetuma.pm-julkaisu : Ismo Aulaskari 2.2.2007
Vetuma.pm on Helsingin yliopiston tietotekniikkaosaston toteuttama Perl-kielinen avoin ja vapaa autentikointimoduuli, joka
toteuttaa julkishallinnon ja Fujitsu Service Finlandin VETUMA-portaalin version 2.0 tunnistamisrajapinnan.
Moduuli siis mahdollistaa henkilön vahvan tunnistamisen VETUMA-portaalin tukemilla menetelmillä,
kuten verkkopankkitunnuksilla, poliisin myöntämällä sähköisellä henkilökortilla ja mobiilivarmenteilla.
Vetuma.pm itse on yksinkertainen ja tekee sen minkä lupaa.
VETUMA-tunnistautumisvastauksesta saadaan käyttäjän henkilötunnus, jonka avulla voidaan hakea käyttäjä organisaation
käyttöluparekisteristä, tai käyttää saatuja tietoja uuden käyttäjän luontiin.
VETUMA-palvelun käyttöä varten organisaation on tehtävä käyttösopimuksia käyttämiensä toisten osapuolten, eli Fujitsu Servicen,
pankkien, mobiilivarmentajien ja Väestörekisterikeskuksen kanssa.
Vetuma.pm
käyttää CPAN-arkistosta löytyviä avoimia Perl-kirjastoja, jotka asentuvat useimmille Unix-alustoille. Moduuli on
testattu Red Hat Enterprise Linux 4-alustalla Apache 2 www-palvelinta vasten Tupas ja HST-autentikoinnilla.
Vetuma.pm muistuttaa arkkitehtuuriltaan
Tampereen yliopiston Tupas.pm-moduulia, jolle se on henkistä sukua ja josta se lainaa muutamia koodinpätkiä.
Tämä on Vetuma.pm:n ensimmäinen julkaisu.
Fujitsu Services myy omia toolkitejaan Java- ja ASP.net-alustoille, jotka toteuttavat VETUMA-portaalin rajapinnat Vetuma.pm:ää kattavammin. Niitä ei valitettavasti HY:llä ehditty tähän hätään testata vastoin alkuperäisiä suunnitelmia.
Helsingin yliopistolla päätettiin kokeilla Tupas-pankkitunnuksilla tehtyä vahvaa tunnistamista keväällä 2006
HAKA-pilotin muodossa. Tampereen Yliopiston Tupas.pm-moduuli olikin jo integroitu HY:n testijärjestelmiin kun
loppukeväästä saatiin vihiä uudesta laajemmasta saman tarpeen täyttävästä VETUMA-portaalista joka tarjosi
vahvaa tunnistamista Tupas-tekniikan lisäksi myös HST-kortilla ja mobiilivarmenteilla.
HY:n Tupas-pilotti vaihtuikin
VETUMA-pilotiksi jonka lopputuloksena syntyi VETUMA-autentikointiportaalin tunnistusrajapinnan toteuttava
avoin Vetuma.pm-moduuli ja projektin loppumetreillä vielä VETUMA 2.0-spesifikaation toteuttava versio,
josta tämä dokumentti kertoo.
Pilotin yhteydessä aloitettiin rakentamaan myös VETUMA-tunnistautumiseen
pohjautuvaa salasananvaihtopalvelua ja suunnittelemaan uusien opiskelijoiden käyttölupien luontia VETUMA-tekniikan
avulla. Lisäksi pilotin ohessa syntyi suomenkielinen dokumentti sähköisten henkilökorttien käytöstä
Linux-käyttöjärjestelmässä:
Sähköinen henkilökortti ja Linux, sekä
testitoteutus VETUMA-tunnistamisen liittämisestä Shibboleth-luottamusverkostoihin.
Voi myös olla että tulevaisuudessa tulee tarve laajentaa Vetuma.pm tukemaan VETUMA-portaalin maksamis ja
allekirjoitusrajapintoja. Tätä kirjoittaessa HY:llä on toimiva VETUMA-testipalvelu ja tuotantokäyttö odottaa
sitä hyödyntävien palveluiden valmistumista.
Palvelun asentaja tarvitsee Perl-5-ympäristön jossa seuraavat CPAN-kirjastot riippuvuuksineen:
Digest::MD5 AppConfig AppConfig::File CGI HTML::Template IO::Socket::INET POSIX Sys::Syslog Digest::SHA Net::LDAP CGI::Session
Lisäksi tarvitaan www-palvelin CGI-tuella, joista Apachet kelpaavat mainiosti.
Palvelun käyttäjä tarvitsee modernin www-selaimen joka tukee HTTPS:ää. Shibboleth-käytössä vaaditaan cookiet käyttäjän selaimessa. VETUMA-portaali ja verkkopankit suosittelevat myös Javascriptin käyttöä. HST-tunnistus vaatii kortinlukijan ohjelmistoineen.
Vetuma.pm:ään liittyy seuraavat tiedostot:
appl/vetuma/lib/Vetuma.pm #itse Vetuma.pm appl/vetuma/doc/LICENSE #lisenssi appl/vetuma/templates/* #erilaisia html-sivupohjia appl/vetuma/etc/vetuma.cfg #konfiguraatiotiedosto appl/ldap/Vetuma_LDAP.pm #LDAP-moduuliPerl-oliona toteutetun Vetuma.pm metodeista on ulkopuolelta tarkoitettu käytettäväksi
new, authenticate, create_form, auth_user, lang, test_mode, system_error, set_return_url ja read_vetuma_error.
Näistä ainoastaan kaksi viimeistä ovat Tupas.pm:n tunteville käsitteellisesti uusia. read_vetuma_error parsii
VETUMA-palvelun lähettämän virhevastauksen, ja set_return_url on tarkoitettu Shibboleth-käyttöön.
use CGI;
use HTML::Template;
use Vetuma;
my $auth_user;
my $vetuma = new Vetuma();
my $query = new CGI;
#tämä luottaa että käyttäjätunnuksia löytyy 0-1
if( $auth_user = $vetuma->authenticate($query) ) {
#Käyttäjä on tunnistettu ja hän on $auth_user
#Muistetaan tämä ja mennään kohdesovellukseen
}
else {
# auth_user not defined, possibly an error?
if( $vetuma->auth_user() ) {
# indeed an error!
$vetuma->system_error();
}
else {
# no error, user not authenticated
print $query->header(-expires=>"now");
print $query->start_html(
-title=>'VETUMA login',
-style=>$stylesheet
);
my $template = HTML::Template->new(filename => $templatefile);
$template->param(FORM_FI => $vetuma->create_form());
$template->param(LANG_FI => 1);
print $template->output();
print $query->end_html();
}
}
Suurin osa Vetuma.pm:n konfiguraatio-asetuksista on tiedostossa vetuma/etc/vetuma.cfg
Demosovellukseen sisältyy seuraavat tiedostot:
appl/session/* #Sessionhallintakirjastot appl/vetuma/templates #html-sivupohjia vetumacgi/* #cgi-sovelluksiaVetuma.pm:n mukana tulee Perl-kielisiä Vetuma.pm:ää ja HTML::Templatea hyödyntäviä esimerkki CGI-sovelluksia, jotka tarjoavat esimerkin Vetuma.pm:n käytöstä ja toteuttavat pohjan HY:n tulevalle salasananvaihtopalvelulle. Demopalvelun aloitussivu on toteutettu vetumaauth.cgi-tiedostossa. Demosovellus on hieman keskeneräinen, mutta opettavainen. Demopalvelun lähdekoodi on täällä: Vetuma-demosovellus, lähdekoodi
Aluksi on luotava Perl-ympäristö. HY:llä Vetuma.pm on asennettu omalle tunnukselleen jolla on oma CPAN-ympäristö. Tarvittavat CPAN-moduulit asentuvat esim. seuraavilla loitsuilla:
cpan -i Digest::MD5 AppConfig AppConfig::File # sano yes seuraa riippuvuuksia cpan -i CGI HTML::Template IO::Socket::INET POSIX Sys::Syslog Digest::SHA Net::LDAP CGI::Session # sano yes ssl:lle
Pura Vetuma-zippipaketti. Konfiguroi vetuma.cfg ja polut Vetuma.pm:n alussa. Konfiguroi Vetuma_LDAP.pm käyttämään oman organisaatiosi LDAP-hakemistoa tai korvaa LDAP-henkilötunnuskysely muulla autentikointimenetelmällä. Konfiguroi tarvittaessa myös muut käyttämäsi moduulit ja cgi-sovellukset.
Vetuma.pm integroidaan Shibboleth-1.3-käyttöön muuten kuten mikä tahansa muukin autentikointimenetelmä,
mutta on muistettava kaapata Shibboleth SP:n back-parametri ja säilytettävä se VETUMA-portaalin
käsittelyssä esimerkiksi laittamalla se parametriksi VETUMA:n paluuosoitteessa. Lisäksi on hyvä
pitää mielessä, että jos VETUMA:n palauttamalla henkilötunnuksella löytyy useampia käyttäjätunnuksia
kotiorganisaatiosta, Vetuma.pm palauttaa ne kaikki listakontekstissa.
HY:n esimerkki-Shibboleth-toteutus
huomioi molemmat näistä asioista ja tarjoaa tarvittaessa välisivun jossa käyttäjä voi valita
useammasta käyttäjätunnuksestaan.
Shibboleth- ja mod_auth_tkt-integraatio, lähdekoodi
This sofware was made in the IT-center of Helsinki University and released free without any warranty to the world. Vetuma.pm based on the open Vetuma spesification by Fujitsu Services Finland and ideas and some pieces of code from Tupas.pm, of which the following license is from: Copyright 2004-2005, University of Tampere, Computer Centre Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.