Español (Spanish)
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:
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.
buenas tardes.
necesito la ayuda de ustedes, realice el mismo procedimiento que indica la pagina pero al final cuando le doy aceptar me sale un error, no se si me esta molestando http://www.plataformavirtualcis.cartagenainterschool/moodle/auth/googleoauth2/google_redirect.php gracias
Hola Jonathan,
tengo poca información, pero fíjate que a la dirección que te da error le falta el .com
Debería ser http://www.plataformavirtualcis.cartagenainterschool.com/moodle/auth/googleoauth2/google_redirect.php i seguramente no te daría el error.
Comprueba que en tu fichero config.php de moodle, en la línia $CFG->wwwroot = ‘http://www.plataformavirtualcis.cartagenainterschool.com/moodle’; tengas puesto el .com
A ver si es solo esto y queda solucionado.
Hola, estoy intentando instalarlo. Lo he subido por FTP, dentro de /auth/googleoauth2/
El problema es que no lo veo en la lista para gestionar las extensiones de identificación.
¿Que me falta o qué hago mal? Gracias.
Primero tienes que ir a Notificaciones e instalarlo
Bones Jaume,
en primer lloc agrair-te la feina realitzada, està molt ben documentada. En segon lloc, demanar-te ajuda en relació a un error, que no aconsegueix treure.
Un cop realitzat la connexió amb Google apps, introdueixo el meu mail i passwd i em retorna el següent error:
Falta el paràmetre obligatori (state)
I no em deixa validar, llavors em retorna altre copa a la pantalla d’inici.
Gràcies per tot
Hola Raül,
amb la descripció que em dones i la informació que tinc no sabria orientar-te de quin és el problema 🙁
Quan jo ho vaig muntar fa un parell d’anys, vaig estar barallant-m’hi força, sobretot per fer les accions que els desenvolupadors del connector no explicaven. Però un cop descobert tot, em va funcionar perfectament.
També és cert que amb aquests quasi dos anys, han tret versions noves del connector. Jo he anat actualitzant-los i no he hagut de realitzar cap acció més.
Intenta revisar la informació dels desenvolupadors, a veure si trobes algun pas més que s’hagi de fer.
He pogut comprobar que encara baixant-me la darrera versió del conector ting el mateix error que en Raül.
Em surt el missatge:
“A required parameter (state) was missing”
pero no hi ha manera d’esbrinar perquè.
Agrairia si ens poguessis donar un cop de ma o si algu ho ha pogut solventar que ens faciliti alguna alternativa.
Moltes gracies per tot.
Hola Rubén,
m’he estat revisant el procés (ho vaig muntar fa un temps i com que funciona bé no ho he tocat més), i he vist que els de Google han canviat una mica la seva part, el punt 4 que explicava en l’article.
Si aneu a https://code.google.com/apis/console, primer cal configurar APIS&Auth / Credentials (per aconseguir el Client ID i Client Secret ) i després cal configurar APIS&Auth / Consent screen amb l’adreça del vostre servidor Moodle.
Heu fet aquestes dues comnfiguracions?
Hola Jaume,
Gràcies per la teva resposta tan ràpida.
He estat revisant les configuracions i aqui te les faig arribar.
Les 2 configuracions estàn realitzades.
Gràcies
Aqui et faig arribar els links de les configuracions
http://cmontserrat.cat/config1.png
http://cmontserrat.cat/config2.png
on podras veure que els la api esta correctament configurada i ja no em dona el missmatch del redirect_uri.
El correu amb que t’has registrat és correcte (teol*****@gmail.com)? Si és així, t’escric per privat i mirem a veure si ho aconseguim arreglar.
si es el correcte
Quan tingueu una resposta, si us plau, publiqueu-la. Gracies.
En Rubén em va comentar per privat la següent solució. No sé si el que explica té efectes colaterals:
“A entrar al Moodle em donava l’error que t’he comentat, el que he fet ha estat entrar a l’arxiu
auth/googleoauth2/google_redirect.php
i comentar les línies següents:
if ($_SESSION[‘STATETOKEN’] !== required_param(‘state’, PARAM_TEXT)) {
throw new moodle_exception(‘Invalid state parameter’);
}
després d’això m’ha deixat accedir facilment.”
Crec veure on està el problema. He creat un nou usuari entrant amb oauth2 i en el perfil de l’usuari nou creat, la població (suposo que en anglès ha de ser el camp ‘state’) està en blanc.
No trobo de moment on s’ha de definir la població en el compte d’Apps for Education.
Tots els meus usuaris que s’han creat automàticament a partir del Google apps tenen la població en blanc i no hi ha cap problema.
Potser només et falla la creació de l’usuari.
Prova a crear tu manualment un usuari al Moodle, indicant com a mètode d’autenticació oauth2, posant com a nom d’usuari l’adreça de correu electrònic del Google apps (i com a adreça també la mateixa adreça de correu electrònic).
Com que l’usuari ja estarà creat, el Moodle no l’intentarà crear i igual s’identifica correctament.
Hola de nuevo,
Como hago para deshabilitar el registro de los usuarios no registrados en moodle previamente.
Ejemplo si accedo con email@gmail.com en el moodle me crea el usuario y yo no quiero que lo haga,unicamente que autentifique los existentes sin dejar que se registren nuevos.
Gracias de Antemano
En el menú de Adminstración del sitio / Extensiones / Identificación / Gestionar Identificación aparece la opción
“Evitar la creación de cuentas al identificarse”, que por defecto no está marcada.
Si la marcas, justamente evitarás que se creen usuario solos, qse tendrán que crear manualmente en Moodle.
Hola Jaume al noste institut tenim un problema que probablement ens pots ajudar a resoldre.
A veure si m’explico bé.
Des de fa dos cursos al nostre institut tenim google apps per educació que utilitzem per donar una adreça de correu pròpia (institutlasegarra.cat) a tots els alumnes i pares del centre.
Amb aquesta adreça s’identifiquen per accedir a la intranet del centre i a més tenen totes les aplicacions google al seu abast.
Per fer el manteniment de les adreçes i grups de google, vaig fer una petita app amb php utilitzant les llibreries zend-framework.
Fins ara perquè google deixes donar d’alta / baixa /modificar adreces només calia identificar-se amb l’adreça de correu i contrasenya de l’administrador de google apps.
Des del 20/abril ja no és possible. És obligatori identificar-te amb Aouth2.0
I aquí està el meu problema, que no me’n surto.
Em sembla que tinc dos opcions:
a) Esbrinar com puc seguir utilitzant les llibreries de Zend. Però no veig per enlloc com fer-ho. Ho he preguntat al servei d’atenció de google apps i em diuen que ells no veuen que Zend s’hagi actualitzat.
b) Deixar de banda les llibreries i utilitzar el php que dona google. Aquí encara vaig més perdut.
Em sembla que faig bé lo de crear un projecte nou + escollir API que necessito (Admin SDK)
Però després no sé com fer-ho per utilitzar les eines PHP amb les que podria susbstituir les llibreries de Zend.
Em pots ajudar?
Gràcies.
Em sap greu Sisco, però no et puc ajudar. No he utilitzat mai les llibreries Zend i l’Aouth2.0 tampoc. Només he fet servir el conplement que explico i l’he configurat, però no en tinc experiència. Així que en saps més tu que jo que ja ho has remenat.
Gràcies, estic avançant i em sembla que me’n sortiré.
Si ho necessites quan ho tingui t’ho passo.
Si ho aconsegueixes, envia-m’ho que segur que algun dia em farà servei. I no tens un bloc on publicar-ho?
Hola:
Tengo dos dominios diferentes con Google Apps y deseo tener solo un Moodle pero que permita autenticar desde los dos dominios. En la configuración solo veo la opción de ingresar solo un Google cliente ID ¿cómo puedo permitir la autenticación con dos clientes de Google sin tener dos instancias de Moodle instaladas?
Gracias
Carolina
Me parece que con este complemento sólo se puede connectar con un dominio de Google Apps 🙁
Muy útil la información!
Muchísimas Gracias 🙂
La explicación es clara, te lo agradezco.
Llevo algunas horas peleando con ello y no hay manera:
401. That’s an error.
Error: invalid_client
The OAuth client was not found.
¿Tienes idea del motivo de este error?
Disculpo Sergio, però hace un año dejé de administrar el servidor Moodle de mi centro y ya no uso este complemento.