Bonjour à tou(te)s,
j'ai quelques interrogations par rapport aux inscriptions automatisées, et à la synchronisation automatique des comptes utilisateurs via un annuaire LDAP.
J'espère que certain(e)s pourront me renseigner, et que ce fil pourra aider d'autres personnes ayant les mêmes préoccupations...
But du jeu : créer, et synchroniser (modifier, voir supprimer) automatiquement les comptes de Moodle, en utilisant le script /auth/ldap/auth_ldap_sync_users.php !
Je lance le script avec la commande suivante :
/usr/bin/php -c /etc/php.ini -d memory_limit=256M -d max_execution_time=1000 /var/www/html/moodle-sync-ldap/auth/ldap/auth_ldap_sync_users.php
J'aimerais quelques confirmations de mes premiers tests :
- rien n'est touché sur les utilisateurs en authentification "manual" (ouf) !
- les utilisateurs de la base LDAP sont bien importés (ou mis à jour, ou supprimés)
- ceux en authentification "cas" ne sont pas modifiés, alors que cela m'aurait arrangé...
J'avais, en test préalable au remplissage via LDAP, créé un utilisateur manuellement, mais avec authentification "ldap", et au premier remplissage, j'ai eu sur cet utilisateur l'erreur suivante :
<div class="notifyproblem" align="center">Duplicate entry 'terrier' for key 3<br /><br />INSERT INTO mdl_user ( AUTH, CONFIRMED, USERNAME, IDNUMBER, FIRSTNAME, LASTNAME, EMAIL, PHONE1, PHONE2, DEPARTMENT ) VALUES ( 'ldap', 1, 'terrier', 'terrier', 'SEVERIN', 'TERRIER', 'mon.mail@univ-tlse1.fr', '', '', '' )</div><br />
error inserting user terrier with idnumber terrier
et mon utilisateur a été marqué comme désinscrit
je l'ai réactivé à la main, et en repassant le script, il n'y a plus eu de problème...
Il semblerait qu'une solution à ce problème existe ici.
Question subsidiaire : dans quelques temps (mois), nous comptons passer en authentification unique via "cas", plutôt que "ldap".
Je voudrais être sur que l'on pourra continuer à synchroniser les utilisateurs, depuis l'annuaire LDAP, mais en leur fixant l'authentification "cas" !
Est-ce qu'il y a d'autres éléments à prendre en compte, et des choses dont il faudrait se méfier ?
Désolé pour ce long message, si vous avez des idées/remarques, n'hésitez pas
En réponse à Séverin Terrier
Re: Inscriptions automatisées / Synchronisation LDAP
par Arnaud Saint-Georges,
Bonjour Séverin,
A l'université de Rennes 2, nous somme passés d'une authentification LDAP à une authentification CAS depuis la rentrée d'octobre. Au préalable, nous avons "manuellement" mis à jour le champ auth de la table user (remplacement de 'ldap' par 'cas' pour tous les utilisateurs ayant 'ldap').
Voilà comment nous fonctionnons maintenant :
Les informations concernant le profil utilisateur sont synchronisées à partir de LDAP à chaque connexion (par exemple, son adresse de courrier électronique).
Les nouveaux utilisateurs sont créés dans Moodle chaque nuit à partir de LDAP. Ce qui est indispensable pour que les gestionnaires puissent les inscrire dans les cours.
Les utilisateurs Moodle sont éventuellement mis à jour chaque nuit à partir de LDAP.
Aucun utilisateur Moodle n'est automatiquement supprimé s'il n'existe plus dans LDAP (on se méfie ).
Voici comment la commande est lancée (extrait du fichier cron) :
00 07 * * * /applis/Programmation/php/bin/php /applis/Internet/moodle/auth/cas/auth_ldap_sync_users.php 1>>/applis/Internet/moodle/logs/auth_ldap_sync_users.log 2>>/applis/Internet/moodle/logs/auth_ldap_sync_users.error.log
Tu noteras qu'elle est appelée depuis le répertoire cas, et non ldap. C'est pour cela, il me semble me rappeler , qu'elle met à jour les utilisateurs en authentification 'cas'.
D'un point de vue technique, j'ai modifié le script moodle/auth/ldap/lib.php pour :
- corriger quelques erreurs ;
- auugmenter le traçage (log) ;
- synchroniser sur la base du code utilisateur 'username' et non du numéro d'étudiant 'idnumber' (car les enseignants n'en ont pas !) ;
- bien traiter la synchronisation de l'adresse postale complète (que nous avons intégrée dans Moodle [en bricolant ] pour envoyer automatiquement des polycopiés par la Poste) ;
- ne pas supprimer les utilisateurs dans Moodle.
Je joins la version modifiée de lib.php.
Remarque : Nous travaillons avec la version 1.5+ de Moodle.
A l'université de Rennes 2, nous somme passés d'une authentification LDAP à une authentification CAS depuis la rentrée d'octobre. Au préalable, nous avons "manuellement" mis à jour le champ auth de la table user (remplacement de 'ldap' par 'cas' pour tous les utilisateurs ayant 'ldap').
Voilà comment nous fonctionnons maintenant :
Les informations concernant le profil utilisateur sont synchronisées à partir de LDAP à chaque connexion (par exemple, son adresse de courrier électronique).
Les nouveaux utilisateurs sont créés dans Moodle chaque nuit à partir de LDAP. Ce qui est indispensable pour que les gestionnaires puissent les inscrire dans les cours.
Les utilisateurs Moodle sont éventuellement mis à jour chaque nuit à partir de LDAP.
Aucun utilisateur Moodle n'est automatiquement supprimé s'il n'existe plus dans LDAP (on se méfie ).
Voici comment la commande est lancée (extrait du fichier cron) :
00 07 * * * /applis/Programmation/php/bin/php /applis/Internet/moodle/auth/cas/auth_ldap_sync_users.php 1>>/applis/Internet/moodle/logs/auth_ldap_sync_users.log 2>>/applis/Internet/moodle/logs/auth_ldap_sync_users.error.log
Tu noteras qu'elle est appelée depuis le répertoire cas, et non ldap. C'est pour cela, il me semble me rappeler , qu'elle met à jour les utilisateurs en authentification 'cas'.
D'un point de vue technique, j'ai modifié le script moodle/auth/ldap/lib.php pour :
- corriger quelques erreurs ;
- auugmenter le traçage (log) ;
- synchroniser sur la base du code utilisateur 'username' et non du numéro d'étudiant 'idnumber' (car les enseignants n'en ont pas !) ;
- bien traiter la synchronisation de l'adresse postale complète (que nous avons intégrée dans Moodle [en bricolant ] pour envoyer automatiquement des polycopiés par la Poste) ;
- ne pas supprimer les utilisateurs dans Moodle.
Je joins la version modifiée de lib.php.
Remarque : Nous travaillons avec la version 1.5+ de Moodle.
En réponse à Arnaud Saint-Georges
Re: Inscriptions automatisées / Synchronisation LDAP
par Séverin Terrier,
Bonjour,
merci Arnaud pour cette réponse détaillée, qui devrait bien me servir pour la suite...
Je regarderais tout cela dans le détail (après le repas)
merci Arnaud pour cette réponse détaillée, qui devrait bien me servir pour la suite...
Je regarderais tout cela dans le détail (après le repas)
En réponse à Séverin Terrier
Re: Inscriptions automatisées / Synchronisation LDAP
par Séverin Terrier,
suite de mes tests... pour compléter les choses...
Finalement, je crois que nous suivons ce que vous faites à l'Université de Rennes 2, avec quelques mois de décalage
Par contre, ayant des moyens humains très limités, et afin de pouvoir suivre les évolutions de Moodle avec le moins de contraintes possibles, nous essayons au maximum de ne pas modifier (les fichiers de) Moodle, et de nous y adapter (tant que c'est possible facilement).
Donc, nous avons choisi d'avoir la même information pour "idnumber" que pour "username", ce qui nous simplifie les choses... et fonctionne pour les étudiants, enseignants, et administratifs
Je pense que nous laisserons active la suppression des utilisateurs, ce qui permettra d'avoir une base cohérente avec LDAP.
Il me reste juste éventuellement à filtrer certains utilisateurs LDAP (avec des identifiants temporaires), pour ne pas les créer dans Moodle !
Par rapport à CAS, effectivement, c'est bien à cela que je pensais :
- modification manuelle du champ "auth" dans la table "user"
- appel d'un autre script (qui, au final, utilise le code de "auth/ldap/lib.php" )
Nous fonctionnons avec la version 1.5.3+, et effectivement, il y a plusieurs différences avec ton fichier joint...
Merci encore Arnaud, car ton message (et mes tests) confirme bien ce que je pensais, et le bon fonctionnement, et je pense que nous mettrons en place cette automatisation en janvier (pour éviter tout risque en cas de problème pendant les congés)
Finalement, je crois que nous suivons ce que vous faites à l'Université de Rennes 2, avec quelques mois de décalage
Par contre, ayant des moyens humains très limités, et afin de pouvoir suivre les évolutions de Moodle avec le moins de contraintes possibles, nous essayons au maximum de ne pas modifier (les fichiers de) Moodle, et de nous y adapter (tant que c'est possible facilement).
Donc, nous avons choisi d'avoir la même information pour "idnumber" que pour "username", ce qui nous simplifie les choses... et fonctionne pour les étudiants, enseignants, et administratifs
Je pense que nous laisserons active la suppression des utilisateurs, ce qui permettra d'avoir une base cohérente avec LDAP.
Il me reste juste éventuellement à filtrer certains utilisateurs LDAP (avec des identifiants temporaires), pour ne pas les créer dans Moodle !
Par rapport à CAS, effectivement, c'est bien à cela que je pensais :
- modification manuelle du champ "auth" dans la table "user"
- appel d'un autre script (qui, au final, utilise le code de "auth/ldap/lib.php" )
Nous fonctionnons avec la version 1.5.3+, et effectivement, il y a plusieurs différences avec ton fichier joint...
Merci encore Arnaud, car ton message (et mes tests) confirme bien ce que je pensais, et le bon fonctionnement, et je pense que nous mettrons en place cette automatisation en janvier (pour éviter tout risque en cas de problème pendant les congés)
En réponse à Arnaud Saint-Georges
Re: Inscriptions automatisées / Synchronisation LDAP
par André Dumas,
Bonjour,
Je profite du fait d'avoir des experts en ligne pour poser deux ou trois questions qui me chagrinnet.
J'essaie de faire fonctionner Moodle et les inscriptions à partir d'un annuaire Ldap installé sur une Debian.
On utilise Openldap, l'identificatin fonctionne bien mais l'inscription non.
Question : y a t-il des incompatibilités par rapport à Openldap?
Si oui, y a t-il des solutions?
y aurait-il moyen, un script, qui permette d'extraire ds groupes (classes complètes) d'un Ldap pour les inscrire à un cours
Je suis sous Moodle 1.5.3
Et un grand merci pour vos réponses éclairées
André