SSO Moodle-Guarani

Hemos seguido las instrucciones para configurar el SSO con Moodle
http://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.16.0/interfaces/moodle_sso

Los servicios WEB funcionan perfectamente.
Pero no logramos integrar el acceso para usuarios.

Revisando la documentación del módulo: https://github.com/catalyst/moodle-auth_userkey/blob/MOODLE_33PLUS/README.md entendemos que hay que formar una URL desde Guaraní para acceder a Moodle

¿Hay alguna operación de Autogestión creada a tal efecto? ¿Pueden orientarnos con esto?

Gracias

Hola Fernando,

Para probar que funcione todo bien podes ingresar con un alumno a la operación Reportes => Mis inscripciones, vas a ver que hay una columna que dice Moodle, si la comisión tiene un curso de Moodle asociado te permitirá navegar al mismo.

El docente también puede hacerlo en Cursadas solapa Moodle, hay un botón que dice Ir al Curso.

Para que la persona de Guaraní se pueda loguear en Moodle se debe haber asociado mediante los botones de Actualizar Docentes y Actualizar Alumnos de la operación Cursadas solapa Moodle (perfil docente) .

saludos.

Hola Leonel

Gracias por tu explicación. Ahora comprendo el funcionamiento. El tema es que nosotros tenemos una implementación propia de sincronización de comisiones, alumnos y docentes , anterior a la que tiene 3.16 y nos interesaba usar la opción SSO únicamente. Hemos podido hacer alguna prueba generando la URL para auth key del servicio moodle, pero solo a modo de prueba sabiendo el DNI de un alumno por ejemplo.
Por lo que veo, si no se hace el proceso de Actualizar Docentes y Actualizar Alumnos de la operación Cursadas no se establecen los vínculos.

¿tendrás alguna documentación que nos permita hacer una operación propia en Autogestión?

En principio necesitaríamos algo tan simple como:

  • Al Loguearse en Guaraní que haya una OPERACIÓN que puede estar en el MENU ppal (como las que se habilitan/deshabilitan) y que al hacer clic ingrese directamente a Moodle con el usuario correspondiente. Imagino que es lo mismo que MIS INCRIPCIONES que comentás o de docentes CURSADAS -->Moodle , pero sin controlar si está sincronizado o no. Simplemente loguearse.

Gracias nuevamente

Hola Fernando,

Si te fijas en el paso 2 de esta documentación, vas a ver que se elige como “Mapping field” el “Número de ID”. Lo que nosotros hicimos en Guaraní fue asociarle el ID de persona (columna persona de la tabla mdp_personas) al “Número de ID” del usuario de Moodle, con eso Guaraní sabe como loguear a la persona en Moodle. Ustedes pueden usar ese campo u otro de los que ofrece Moodle (Nombre de usuario y Dirección de correo). Yo les recomiendo usar el ID de persona que nunca cambia.

En cuanto a agregar una nueva operación, acá te explica un poco. También hay ejemplos en la carpeta src/pers.

saludos.

Gracias Leonel

¿hay posibilidad que nos digas el nombre de la operación que uds. implementaron en Mis Inscripciones o en Cursada docente? Así miramos el código para tomarlo como referencia.
Hicimos pruebas con Postman usando como decís el mapping field con algún dato conocido y funciona bien. Ahora tendríamos que implementar una nueva operación. Ya hemos trabajado con personalizaciones, pero si hay un código de referencia mucho mejor.

Gracias
Saludos

Hola Fernando,

Podes ver en la función accion__curso_moodle del archivo src/siu/operaciones/inscripciones/controlador.php, vas a ver que se llama a la función \moodle::generarUrlCurso. Esta ultima crea un objeto de la clase moodle, y llama al método getUrlCurso.

El código de interés lo vas a ver en la clase src/siu/modelo_g3/nucleo/moodle/moodle_nucleo.php, tenes que ver las funciones generarUrlCurso, getUrlCurso y loguearUsuario.

Las mas importante es loguearUsuario, la cual llama al WS de Moodle auth_userkey_request_login_url pasándole idnumber, esta devuelve una URL con un TOKEN (JWT) que hace que el usuario ingrese a Moodle ya logueado.

Cualquier cosa me consultan!!!

saludos.

Muy claro

Creo que con esto podemos avanzar. Cualquier duda vuelvo a consultar

Saludos

Hola buenas Leonel! Acá en UNAJ estamos haciendo pruebas de ésto. Tenemos algunas dudas. Nosotros tenemos todas las configuraciones que se mencionan más arriba realizadas.
Pero a la hora de ir a Reportes >> Mis inscripciones, vamos a la columna moodle y apretamos el botón de Ir, nos pide que nuevamente nos autentiquemos en campus (moodle).

Nosotros tenemos la mayoría de nuestros estudiantes con autenticación a través de base externa en moodle, es decir que autentican con usuario y clave guaraní. El inconveniente es que tienen que hacer doble logueo.

¿Se puede hacer la autenticación por guaraní y que automáticamente si apretamos ir entre al aula virtual de moodle?
Estamos en versión 3.21.0 de guaraní.

Saludos! Florencia

Hola @mfayala

Vas a tener que seguir la documentación Single Sign-On (SSO) con Moodle.

Ademas la persona tiene que estar vinculada a un usuario de Moodle, lo podes hacer en la operación » Matrícula » Personas » Administrar Personas solapa Moodle. En la tabla int_pv_usuarios también podes ver la vinculación.

saludos.
[size=1pt]2[/size]

Si tenemos todos los pasos hechos de la documentación que me mencionas. Y las personas vinculadas, cuando vamos por autogestión resuelve bien ir al moodle, pero en ese punto nos pide volver a autenticarnos.

Desde guaraní no nos tira logs extraños.
Tenés idea que nos puede estar faltando?
Saludos

Hola @mfayala

¿Nos podes adjuntar los logs al momento de hacer click en el botón Ir dentro de la columna Moodle?
Vas a ver que en los mismos tiene que estar el texto loginurl, ej:

Array
(
    [loginurl] => http://<URL-MOODLE>/auth/userkey/login.php?key=<CLAVE>
)

Yo estoy usando Moodle 4.1 y me funciona bien.

¿Pusiste como Mapping field el Número de ID?
Proba aumentando el User key life time. Ver Single Sign-On (SSO) con Moodle.

Si vas a Editar perfil del usuario en Moodle solapa Opcional ¿tiene Número de ID asignado? ¿se corresponde con el ID de persona (columna mdp_personas.persona)?

saludos.
[size=1pt]2[/size]