Login SSO Guarani - Moodle

Hola,

Estamos actualizando Moodle y queríamos habilitar la comunicación con Guaraní.
Seguimos los pasos en https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.20.0/interfaces/moodle
y
https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.20.0/interfaces/moodle_sso.

La conexión entre los sistemas parece funcionar correctamente, probamos generar un curso desde Guaraní y funcionó, creando los usuarios en moodle.

Nuestra consulta es, estos usuarios que se crean mediante la conexión con guaraní, como se loguean en moodle?

Probamos logearnos con los mismos usuarios y contraseñas que en Guaraní y no nos funcionó, también probamos agregando dentro de la configuración del plugin “User key authentication” la url a Guaraní en “URL of SSO host”, esto nos redirige al login de guaraní pero no vuelve a moodle después de loguearse sino que se queda en guaraní. Al volver a entrar a moodle se sigue estando deslogueado.

Básicamente no nos queda claro como loguearnos en moodle una vez habilitado el SSO con Guaraní.

Gracias y saludos

Hola @gonzalo.monasterio

Las credenciales de Guaraní no se pasan a Moodle, no se puede saber la contraseña de la persona ya que se encuentra encriptada en la DB (columna clave de la tabla mdp_personas). Dicho usuario de Moodle debería seguir los pasos de ¿Olvidó su contraseña?.

En cuanto a Single Sign-On (SSO) con Moodle:

  1. Revisa tener la función auth_userkey_request_login_url habilitada.

  2. Configura Número de ID como Mapping field.

  3. Revisa que el Número de ID del usuario de Moodle sea el id de la persona en Guaraní (columna persona de la tabla mdp_personas).

  4. Probalo en una ventana de incognito para asegurar no tener ya la sesión iniciada en Moodle con otro usuario.

Lo podes probar con un alumno en la operación Reportes > Mis inscripciones columna Moodle botón Ir.

¿te da algún error en los logs?

Saludos.
2

Hola Leonel, muchas gracias.

Si, está funcionando la operación Reportes > Mis Inscripciones > Moodle > Ir.
Entonces entiendo que los usuarios podríán tener distintas contraseñas en Guaraní y en Moodle, y se estarían autenticando de forma manual en cada sistema?
Te consulto porque nosotros estamos intentando ir a un esquema de autenticación única para todos los usuarios de la facultad. En particular pudimos habilitar la autenticación en moodle usando Keycloak y OAUTH2, pero el problema es que nos falla la vinculación de usuarios con Guaraní. Por ejemplo, al crear un curso desde Guaraní, si los usuarios no existen en Moodle se crean con autenticación manual, por lo que los usuarios no podrían autenticarse en Moodle con OAUTH2. En cambio si existen (con OAUTH2), nos de error la vinculación. ¿Hay forma de que los usuarios en Moodle se creen desde Guaraní con otro método de autenticación (OAUTH2)?

Relacionado a eso, te consulto si es posible que la autenticación en Guaraní se haga con Keycloak. Actualmente para mantener una autenticación única estamos sincronizando las contraseñas de Guaraní con las del LDAP de Keycloak, y deshabilitando el cambio manual de contraseña en Guaraní, pero imagino que debe haber una mejor opción.

Gracias y saludos!

Hola @gonzalo.monasterio

Entonces entiendo que los usuarios podríán tener distintas contraseñas en Guaraní y en Moodle, y se estarían autenticando de forma manual en cada sistema?

Exactactamente. Con Login vía Single Sign-On (SSO) no importa que las contraseñas sean distintas porque usa el campo Número de ID como Mapping field.

¿Hay forma de que los usuarios en Moodle se creen desde Guaraní con otro método de autenticación (OAUTH2)?

Si, podes personalizar la función crearUsuarios de php/nucleo/moodle/moodle_nucleo.php cambiando el $usuario['auth'] = static::AUTH_MANUAL;, tenes las siguientes constantes:

const AUTH_EMAIL = 'email';
const AUTH_MANUAL = 'manual';
const AUTH_NOLOGIN = 'nologin';
const AUTH_USERKEY = 'userkey';
const AUTH_CAS = 'cas';
const AUTH_DB = 'db';
const AUTH_LDAP = 'ldap';
const AUTH_LTI = 'lti';
const AUTH_MNET = 'mnet';
const AUTH_NONE = 'none';
const AUTH_OAUTH2 = 'oauth2';
const AUTH_SHIBBOLETH = 'shibboleth';
const AUTH_WEBSERVICE = 'webservice';

Relacionado a eso, te consulto si es posible que la autenticación en Guaraní se haga con Keycloak.

¿eso es un plugin de Moodle? ¿de que se trata?

Saludos.
2

Buenisimo, gracias!
Usamos Keycloak como gestor único de identidad y autenticación.
Los estudiantes tienen un único usuario de la facultad y lo pueden usar en todos los sistemas.
La idea sería poder integrarlo a guaraní, tener una opción de loguearse con X que redirija a esta página de autenticación, que ingresen sus credenciales y vuelvan a guaraní autenticados. Vimos en varios sistemas Guaraní de otras facultades que es factible.
Creo que la pregunta sería como cambiar la autenticación de Guaraní para que en vez de manual sea OAUTH2 o SAML.
Saludos!

Hola @gonzalo.monasterio

Veo que Keycloak es muy parecido a SAML que ya lo estamos usando en Guaraní dentro del expediente (ver Configurar parámetros SAML en SIU-Guaraní).

Deberíamos analizarlo, ya que todos los módulos por ahora usan SAML para el login centralizado.

Saludos.
2