Moodle - Sincronización de usuarios y cohortes con LDAP (Directorio Activo, Active Directory)

Mantener un sistema Moodle al día es una tarea descomunal, sobre todo en el apartado de registro de usuarios y matriculaciones. Gracias a la ayuda desinteresada de mucha gente de la comunidad Moodle (gracias a todos, gracias, gracias, gracias), esta tarea se ha visto realmente simplificada. Así, en el trabajo he configurado el sistema para que por un lado el registro de usuarios sea automático, y por otro la asignación de usuarios en Cohortes también sea automática, en base a los grupos del Directorio Activo. De esta manera, con matricular una cohorte es suficiente para mantener un grupo de alumnos matriculado. Y si hay altas o bajas en el grupo, las matriculaciones se modifican a la vez. Veamos:

Tomemos como base que tenemos un Directorio Activo y tenemos a todos los alumnos en una Unidad Organizacional. La asignación de alumnos a grupos se hace creando grupos en una Unidad Organizacional inferior, y metiendo los alumnos en cada grupo. Nos encontramos alumnos que están en más de un grupo de hobetuz o lanbide, por ejemplo, y los metemos en más de un grupo. Ahora lo llevamos a Moodle:

  • Registro de usuarios: es la manera de meter a los usuarios en el sistema de Moodle. Con solo registrar a un usuario, le das acceso a la plataforma, pero no puede entrar en ningún curso. Esto se hace en Extensiones, Identificación, Usar un servidor LDAP. Os paso un resumen de mi configuración:
    • auth_ldap | host_url: ldap://192.168.xx.xxx (la IP del DC)
    • auth_ldap | bind_dn: CN=moodlead,OU=Otros,OU=Usuarios,DC=dominio,DC=com (ruta del usuario que permite sacar el listado, en la siguiente casilla meter la contraseña)
    • auth_ldap | user_type: MS AD
    • auth_ldap | contexts: ou=alumnos,ou=usuarios,dc=dominio,dc=com;ou=empleados,ou=usuarios,dc=dominio,dc=com
    • auth_ldap | search_sub: Sí 
    • auth_ldap | user_attribute: samaccountname (sí, lo tengo en minúsculas, y no sé si hace algo, pero está así!)
    • auth_ldap | objectclass: objectClass=user
    • auth_ldap | field_map_firstname: givenName
    • auth_ldap | field_updatelocal_firstname: En cada acceso
    • auth_ldap | field_lock_firstname: Bloqueado
    • auth_ldap | field_map_lastname: sn
    • auth_ldap | field_updatelocal_lastname: En cada acceso
    • auth_ldap | field_lock_lastname: Bloqueado
    • auth_ldap | field_map_email: mail
    • auth_ldap | field_updatelocal_email: En cada acceso
    • auth_ldap | field_lock_email: Desbloqueado si está vacío
    • auth_ldap | field_map_city: l
    • auth_ldap | field_map_country: c
    • auth_ldap | field_map_lang: preferredLanguage
    • auth_ldap | field_map_description: description
  • Sincronizar cohortes: en este paso, los usuarios se meten en cohortes. Hasta hace un año el módulo estaba huérfano debido al fallecimiento de su creador Patrick Pollet https://moodle.org/mod/forum/discuss.php?d=327529, y se hizo cargo de él Charles Fulton https://moodle.org/plugins/local_ldap. Última versión en su github. Mi configuración es esta:
    • local_ldap | group_class: group
    • local_ldap | cohort_synching_ldap_groups_autocreate_cohorts: sí

En definitiva, cada hora se generan los usuarios en Moodle y se meten en las cohortes correspondientes. Así, solo queda matricular las cohortes a los cursos pertinentes para que todo funcione perfectamente.