6 de juny de 2013

Identificar-nos a Moodle amb l’usuari de Google apps

Així, per exemple, si volem utilitzar l’aplicació Prezi i no volem tenir un altre usuari i una altra contrasenya, podem identificar-nos amb l’usuari que tinguem a Facebook. A través del protocol, serem redirigits al web de Facebook i, si en donem permís, Facebook comprovarà que les dades són correctes i ens tornarà al web de Prezi ja identificats.

Això mateix ho podem utilitzar per evitar que un alumne tingui un usuari al Google apps for education i un altre al Moodle. Podem configurar el Moodle per tal que, utilitzant el protocol Oauth 2, utilitzi usuaris de Google apps for education.
És important tenir en compte que habilitar aquesta opció no deshabilita les altres identificacions. Per tant, els usuaris que no es modifiquin seguiran entrant amb usuari i contrasenya sense cap problema.
Per aconseguir aquesta funcionalitat, haurem d’instal·lar al servidor Moodle un connector anomenat Oauth2 Authenticacion. Aquest connector també permet utilitzar usuaris de Facebook o de WindowsLive, però aquí ens centrarem amb els usuaris de Google apps for education.
Les instruccions dels desenvolupadors són molt senzilles, però quan s’implementa no resulten tan senzilles per les persones poc expertes. Així que citaré els passos que ens recomanen i comentaré els afegits que cal fer:
1.- Descarregar el connector de l’adreça https://moodle.org/plugins/view.php?plugin=auth_googleoauth2
Aquest connector serveix per les versions 2.1 i superior (inclosa la darrera, la 2.5)

2.- Afegir el connector a la carpeta /auth/googleoauth2/ del servidor
Ho podeu fer per FTP o a través d’alguna aplicació del vostre hosting.

3.- Dins del menú d’Administració del Moodle, habilitar el connector Google Oauth 2 (Administració del lloc > Connectors > Atenticació > Gestió de l’autenticació)
4.- Als paràmetres del connector Oauth 2 (Administració del lloc > Connectors > Atenticació > Google Oauth 2), introduir el Google client ID i  Google secret.
Aquí surt la primera dificultat pels inexperts en la matèria. Per aconseguir aquestes dades, ens caldrà anar a l’adreça següent: https://code.google.com/apis/console. En aquesta adreça, si tenim el Google apps for education, hi trobarem les dades que en caen (en la captura he esborrat part de les dades per seguretat).
Els desenvolupadors no ens ho avisen, però ja que estem en aquesta pàgina de l’API de Google, aprofitem i canviem un parell de coses més. Amb el botó Edit branding information, posem la Home page URL del vostre Moodle. I amb l’enllaç Edit settings, poseu la Redirect URLs. Ha de ser l’adreça del vostre Moodle, afegint-li auth/googleoauth2/google_redirect.php
Ara ja tenim configurat el Moodle i el Google per tal que entre ells es puguin passar identificacions.
5- Canviar la plantilla HTML d’entrada, afegint un codi.
Ens falta modificar la pàgina del Moodle on es demana l’usuai i la contrasenya. Aquesta pàgina (si el vostre tema no n’utilitza una d’específica), està a login/index_form.html
Editem aquest fitxer i al final de tot, afegim el codi següent (en negreta hi ha l’adreça de la imatge que vulgueu posar per tal que els usuaris hagin de clicar).


<?php
//get previous auth provider
$allauthproviders = optional_param('allauthproviders', false, PARAM_BOOL);
$cookiename = 'MOODLEGOOGLEOAUTH2_'.$CFG->sessioncookie;
if (empty($_COOKIE[$cookiename])) {
$authprovider = '';
} else {
$authprovider = $_COOKIE[$cookiename];
}
?>
<center>
<?php
echo get_string('signinwithanaccount','auth_googleoauth2');
?>
<div style="width:'1%'">
<?php
$displayprovider = ((empty($authprovider) || $authprovider == 'google' || $allauthproviders) && get_config('auth/googleoauth2', 'googleclientid'));
$providerdisplaystyle = $displayprovider?'display:inline-block;':'display:none;';
?>
<div class="singinprovider" style="<?php echo $providerdisplaystyle; ?>">
<a href="https://accounts.google.com/o/oauth2/auth?client_id=<?php echo get_config('auth/googleoauth2', 'googleclientid'); ?>&redirect_uri=<?php echo $CFG->wwwroot; ?>/auth/googleoauth2/google_redirect.php&scope=https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&response_type=code">
<img width="118" height="52" src="adreça_de_la_imatge_del_boto" />
</a>
</div>
</center>

La pàgina per identificar-se quedarà, segons el tema i la imatge que trieu, d’una forma semblant a:
Clicant el botó, l’alumne (o professor) utilitzarà el seu usuari de Google apps for education. Si l’usuari no existeix al Moodle, automàticament el crearà.
Si ja existeix, haureu de fer un darrer pas per modificar-li el perfil indicant que voleu que utilitzi el Google Oauth 2
6- Modificar el perfil dels usuaris ja creats i triar identificació Google Oath2.
Els usuaris creats prèviament, si no els feu cap canvi seguiran entrant amb usuari i contrasenya. Si voleu que canviïn i entrin amb el Google apps for education, haureu d’entrar al seu perfil de Moodle i assegurar-vos de dues coses:
  • Que en el camp adreça electrònica tingui l’adreça correcte del seu usuari de Google apps for education.
  • Que en el mètode d’indentificació, tingui triat Google Oauth2.