- Preduvjet za instalaciju dodatka za autentikaciju korisnika Moodlea uporabom SSO sustava AAI@EduHr je da je na poslužitelju instaliran i podešen programski alat simpleSAMLphp;
- Preuzmite simplesaml autentikacijski dodatak za Moodle;
- Postavite datoteke na poslužitelj te ih instalirajte i omogućite kroz administracijsko sučelje Moodlea
- Konfiguracija dodatka vrši se kroz administracijsko sučelje Moodlea, u dijelu administracije dodatka. U polju “SAML konfiguracija” treba postaviti JSON kojim se konfigurira dodatak. Dodatak podržava više autentikacijskih izvora (eng. authsource), koji se mogu konfigurirati neovisno. Primjer JSON konfiguracije s jednim autentikacijskim izvorom ('default-sp') je:
{
"default-sp": {
"idp": "default-sp",
"loginstr": "login_aai",
"pix": "aai",
"default": 1,
"samllib": "\/var\/www\/simplesamlphp\/lib",
"ssout": 1,
"emptymetadata": 0,
"enabled": 1,
"uid": "hrEduPersonUniqueID",
"firstname": "givenName",
"lastname": "sn",
"email": "email"
}
}
"default-sp": {
"idp": "default-sp",
"loginstr": "login_aai",
"pix": "aai",
"default": 1,
"samllib": "\/var\/www\/simplesamlphp\/lib",
"ssout": 1,
"emptymetadata": 0,
"enabled": 1,
"uid": "hrEduPersonUniqueID",
"firstname": "givenName",
"lastname": "sn",
"email": "email"
}
}
Parametri koji se mogu definirati kroz JSON su:
- idp - autentikacijski izvor
- loginstr - vrijednost iz 'lang' paketa kojom se definira tekst ispisa na gumbu za prijavu
- pix - ikona u 'pix' direktoriju
- default - određuje zadani mehanizam za prijavu prilikom direktnog pristupa dodatku za prijavu bez proslijeđivanja argumenata (npr. https://example.org/moodle/auth/simplesaml/index.php)
- samllib - putanja do SimpleSAMLphp biblioteke
- ssout - definira hoće li se vršiti Single Sign-Out
- emptymetadata - mogu li ime i prezime mogu biti prazni (može li korisnik sam upisati u profilu ime i prezime)
- enabled - definira može li se autentikacijski izvor koristiti
- uid, firstname, lastname, email - korisnički atributi
Ako želite omogućiti prijavu korisnika samo iz domene Vaše ustanove, to možete omogućiti tako da u datoteci index.php na liniji 117 dodate ovaj kod:
$allowed_domains = array('domena.hr');
$uid_elements = explode('@', $attributes[$samlparam->{$sp}->uid][0]);
$domain = array_pop($uid_elements);
if(!in_array($domain, $allowed_domains)){
throw new moodle_exception('Pravo pristupa sustavu imaju samo nastavnici i studenti institucije XY.');
}
$uid_elements = explode('@', $attributes[$samlparam->{$sp}->uid][0]);
$domain = array_pop($uid_elements);
if(!in_array($domain, $allowed_domains)){
throw new moodle_exception('Pravo pristupa sustavu imaju samo nastavnici i studenti institucije XY.');
}
Važno!
- Ako ste do instalacije simplesaml dodatka koristili FWS za autentikaciju korisnika, potrebno je svim korisnicima u bazi koji su se prijavljivali uoprabom FWS dodatka promijeniti metodu autentikacije. To se može napraviti direktnom intervencijom u bazu podataka. Dakle, u tablici user potrebno je svim zapisima koji u polju auth imaju upisanu vrijednost fws upisati umjesto te vrijednosti simplesaml SQL naredbom (prilagodite je točnom nazivu svoje tablice, prije pokretanja svakako napravite kopiju tablice):
UPDATE user SET auth='simplesaml' WHERE auth='fws'
- Ako imate instaliran Suhosin, da bi dodatak ispravno radio, potrebno je u konfiguraciji PHP-a podesiti:
suhosin.get.max_value_length = 2048