IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Introducció

Moodle permet autenticar usuaris desde múltiples fonts (directoris ldap, bases de dades externes ,IMAP, RADIUS, etc...). L'autenticació per defecte és per correu electrònic (els usuaris que es volen registrar com a usuaris omplen un formulari i reben un correu d'inscripció).Els comentat a aquesta secció esta provat amb la versió 1.6.1+ de Moodle (unstable de debian a finals setembre 2006)

Les opcions d'autenticació les trobem a Administració > Usuaris > Opcions d'autenticació.

 NOTA: Si configurem un mètode d'autenticació (per exemple ldap) amb una serie de parametres aquests es conserven encara que passem a un altre opció
 NOTA1: Quelcom que no esta documentat (o almeny jo no he trobat) és que es poden combinar diferents autenticacions 
 (al menys he provat combinar correu electrònic i ldap). Simplement es configura ldap i després es torna a correu electrònic.

Ldap authentication

Escenari: Vull configurar ldap per tal de poder utilitzar un directori ldap i alhora que els nous usuaris que no pertanyin a l'organització que té el directori ldap puguin afegir-se com usuaris the Moodle

Exemple de configuració de l'escenari. Etic

Link privat

Sincronització base de dades ldap.auth_ldap_sync_users.php

Un usuari de Moodle dels forums (http://moodle.org/mod/forum/discuss.php?d=55075#250971) em va explicar que existia aquest script per volcar els usuaris de ldap a la base de dades Moodle (en el meu cas Mysql). Aquest escript afegeix usuaris, fa updates i elimina (lògicament) els usuaris que han estat afegits, modificats o eliminats de ldap.

Per una instal"lació de moodle de unstable de Debian (1.6.1+ a setembre de 2006) l'script es troba a:

 /usr/share/moodle/auth/ldap/auth_ldap_sync_users.php

Per executar l'script:

 /usr/bin/php -c /etc/php4/cli/php.ini /var/www/moodle/auth/ldap/auth_ldap_sync_users.php

Al mateix script es proposa executar la comanda via cron (Recommended cron entry):

  5 4 * * * /usr/bin/php -c /etc/php4/cli/php.ini /var/www/moodle/auth/ldap/auth_ldap_sync_users.php

5 minuts despres de les 4 de la nit.

L'script sembla que va bé, però al principi vaig tenir algun problema amb un error de duplicate key (usuaris sense idnumber que no se on havien sortit).

Un altre tema es que crea un usuari amb id buit que no se d'on surt de ldap.

No hi ha suport per afegir usuaris a ldap (encara)

 After successfully configuring moodle for ldap authentication I realized that Moodle doesn't have support for Openldap ("rfc2307") for email       
 confirmation when using ldap. After filling the user form I have the following error:
 
 auth: ldap auth_user_create() does not support selected usertype:"rfc2307" (..yet). I use version 1.6.1+.
 Is there support in newer versions? if not were is exepected to have support for this?

Sembla ser que la opció de crear usuaris a ldap només funciona per Novell de moment. Per tant no es posible funcionar amb Openldap i alhora permetre la creació d'usuaris per correu elcetrònic (NOTA: La execpció és el que es comenta a la NOTA1 de la introducció). Tot és una mica extrany però....

Al forum de moodle un usuari proposava un script per afegir usuaris a ldap

 http://moodle.org/mod/forum/discuss.php?d=55074

Crontab

Es pot automatizar la sincronització ldap-->mysql amb cron:

 $sudo crontab -e

i afegint les següents entrades de cron

 5 4 * * * /usr/bin/php -c /etc/php4/cli/php.ini /usr/share/moodle/auth/ldap/auth_ldap_sync_users.php >> /var/log/moodle/ldap_sync.txt
 30 15 * * * /usr/bin/php -c /etc/php4/cli/php.ini /usr/share/moodle/auth/ldap/auth_ldap_sync_users.php >> /var/log/moodle/ldap_sync.txt

Per tal d'executar cada dia a les 4:30 i a les 15:30

Troubleshooting

Language import utility no funciona

Quan instal·les el servidor a la versió 1.6 i vas a descarregar les llengues (P.ex. català i castellà), les descarregues però no s'instal·len. De fet deixen de sortir els llenguatges descarregats de la llista a descarregar però tampoc no apareixen als instal·lats.

Cal executar la utilitat de migració que es pot trobar a l'apartat d'administració i solucionara el problema.

LDAP-module cannot connect any LDAP servers ldaps

Tal i com es comenta als forums de moodle i tal com fa skolelinux si tenim problemes per connectar via php amb un servidor ldap segur cal afegir la següent linia al fitxer /etc/openldap/ldap.conf:

 TLS_REQCERT never

i reiniciar apache:

 sudo /etc/init.d/apache restart
 

Sembla que també es important (amb apache2) tenir els moduls mod_ldap i mod_auth_ldap i tenir la següent opció a httpd.conf:

 LDAPTrustedCA /whereEverYouWant/serverCA.pem
 LDAPTrustedCAType BASE64_FILE

Sembla ser que pot haver-hi DER_FILE en comptes de BASE64_FILE que és el correcte. NOTA: No m'ho he trobat en el cas del servidor que estic configurant i funciona igualment.

Recursos