Integrare Moodle con Shibboleth

Da sia.
Vai alla navigazione Vai alla ricerca

Abilitare shibboleth

Nei virtual host di apache, proteggere la cartella:

<Location /moodle/auth/shibboleth>
 AuthType shibboleth
 ShibRequireSession On
 require valid-user
</Location>

(se moodle è installato nella cartella moodle).

Fare login in Moodle come admin, seguire il link: Administration\Users\Authentication, abilitare "shibboleth". Fare clic su "settings" e fare le seguenti mappe:

Nome campo shibboleth-sp1.3 shibboleth-sp2.x
Username REMOTE_USER uid o eppn (meglio)
firstname HTTP_SHIB_PERSON_GIVENNAME givenName
lastname HTTP_SHIB_PERSON_SN sn
email HTTP_SHIB_INETORGPERSON_MAIL mail
description HTTP_SHIB_PERSON_DESCRIPTION ou
city/town city city
country country country

Per tutti i valori ha senso "update local" "on creation", mentre per "lock value" probabilmente è sufficiente bloccare nome cognome e indirizzo email.

Modificare la pagina di logon

In Administration\Users editare Common settings nella sezione Instructions. Aggiungere una form alternativa del tipo:

 <h3>LOGIN STUDENTI E DOCENTI</h3> 
 <a href="/moodle/auth/shibboleth/index.php">Login utenti</a>

Ora moodle mostra una form di logon a sinistra che serve solo per l'utente admin ed un bottone di logon al centro "login utenti" per docenti e studenti.

Per evitare che gli studenti tentino di fare il logon come amministratori, si consiglia di editare i file:

lang/en_utf8/moodle.php

ad esempio nella

$string['invalidlogin'] = 'Invalid login: users should follow <a href="/moodle/auth/shibboleth/index.php">User login</a> link'

(e così via per la lingua italiana e per le altre stringhe di istruzioni che si ritengono ambigue).

Mappare gli attributi

Shibboleth-sp2.x

Si usa il file attribute-map.xml: [attribute-map.xml]

Esempio di configurazione shibboleth plugin di moodle

Controllo degli accessi (autorizzazione)

Le autorizzazioni si possono includere in apache2 o in shibboleth2.xml (o l'uno o l'altro)

Autorizzazioni in apache2 (fare questo)

Modificare il file apache2 che contiene la definizione della Location da proteggere:

<Location /moodle/auth/shibboleth>
AuthType shibboleth
ShibRequireSession On
require shib-attr affiliation staff
require shib-attr unimoreDiporg4 ~ 'Servizi informatici'
</Location>

Fare il reload di apache2

I require sono in OR; se si vuole che siano in AND, usare la direttiva

ShibRequireAll On

La cediglia (~) significa regexp.

Autorizzazioni in shibboleth2.xml (alternativa ad inserire le autorizzazioni in apache: fare così solo come seconda scelta)

Modificare il file /etc/shibboleth/shibboleth2.xml nella sezione \\RequestMap\Host\Path (ad esempio):

<Path name="moodle/auth/shibboleth" authType="shibboleth" requireSession="true">
  <AccessControl>
             <OR>
               <Rule require="affiliation">staff</Rule>
               <Rule require="diporg4">CENTRO SERVIZI INFORMATICI DI ATENEO</Rule>
             </OR>
  </AccessControl>
</Path>

La condizione di esempio permette il logon solo al personale tecnico/amministrativo (affiliation="staff") oppure al personale di qualunque qualifica in servizio o accreditato presso il CeSIA (unimoreDiporg4='CENTRO SERVIZI INFORMATICI DI ATENEO').

I nomi degli attributi da usare sono quelli definiti come Alias nel file attribute-map.xml.