Plugins Authentification - CAS combiné avec base de donnée externe ?

Plugins Authentification - CAS combiné avec base de donnée externe ?

par Sébastien Mehr,
Nombre de réponses : 6
Avatar Développeurs Avatar Testeurs

Bonjour,

Nous disposons d'une base de donnée Oracle externe contenant l'ensemble des utilisateurs de l'Université que l'on souhaiterait synchroniser (création, mise à jour et suspension de comptes) avec notre Moodle.

Nous aimerions également nous appuyer sur notre CAS afin d'authentifier nos utilisateurs sur notre plateforme.

On a testé avec succès le plugin d'authentification "Base de donnée externe" pour rapatrier nos utilisateurs. Le soucis c'est que du coup, le champ auth de la table mdl_user est paramétré sur db et donc, non utilisable avec le CAS.

Nous avions dans l'idée de dupliquer le plugin "Base de donnée externe" et de le modifier en conséquence afin qu'il importe nos utilisateurs de la base Oracle tout en les paramétrant pour s'authentifier sur le CAS mais peut-être que la communauté Moodle a une meilleure suggestion ?

Merci d'avance pour votre aide.


Moyenne des évaluations  -
En réponse à Sébastien Mehr

Re: Plugins Authentification - CAS combiné avec base de donnée externe ?

par stephane ngov,

Bonsoir,


je ne sais pas si cela fonctionne pareil, mais dans notre campus,

c'est oracle => LDAP => moodle.


Si nous souhaitons mettre à jour les membres, on met à jour le LDAP donc une répercussion avec CAS.

s'il y a des membres nouveau ou à qui quitte l'université,le script de la synchro membre fera son travail de mettre à mise à jours

dans la table de moodle.


C'est comme ça que notre l'université fonctionne.

Moyenne des évaluations Utile (1)
En réponse à Sébastien Mehr

Re: Plugins Authentification - CAS combiné avec base de donnée externe ?

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour,

Et votre CAS ne s'appuie pas sur un annuaire LDAP ? Parce que Moodle intègre en standard un script de synchronisation avec l'annuaire LDAP : auth/cas/cli/sync_users.php sourire

Sinon, il resterait toujours la méthode "brute", en modifiant la méthode d'authentification des utilisateurs, avec une commande du style :

UPDATE mdl_user SET auth = 'cas' WHERE auth = 'db';

Séverin

Moyenne des évaluations Utile (1)
En réponse à Sébastien Mehr

Re: Plugins Authentification - CAS combiné avec base de donnée externe ?

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs

Bonjour,

Merci pour vos réponses.

Nous disposons effectivement d'un annuaire LDAP qui lui même s'appuie la base de donnée Oracle et pourrait jouer le rôle d'intermédiaire.

D'après mon collègue qui s'occupe du SI, il serait préférable d'aller prendre les informations à la source (d'où l'idée de synchroniser Moodle avec la base Oracle) mais au vu de vos propositions concordantes, je vais peut-être en rediscuter avec lui clin d’œil

D'ailleurs à ce propos, j'ai regardé un peu la configuration du script de synchronisation LDAP et je me posais une question concernant l'appariement des données (nom, prénom, adresse mail....).

Si l'on configure la synchronisation LDAP combinée au CAS avec la mise à jour des données locales paramétrée sur À chaque connexion, que se passe-t-il au premier lancement du script sync_users.php ?

  • Est-ce que le script rapatrie l'ensemble des utilisateurs dans la base de donnée Moodle ?
  • Est-ce qu'il "attend" que l'utilisateur se connecte au moins une fois pour créer le compte et mettre à jour les données ?


    Exemple d'appariemment de données avec la synchronisation LDAP

@Severin On se garde la méthode brute en plan B grand sourire

En réponse à Sébastien Mehr

Re: Plugins Authentification - CAS combiné avec base de donnée externe ?

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Sébastien,

Le script de synchronisation rapatrie effectivement les utilisateurs existants dans le LDAP dans Moodle (en fonction des options définies), et sans attendre leur connexion : c'est bien le but de pouvoir créer les comptes puis inscrire les utilisateurs sans attendre qu'ils se connectent clin d’œil

Le "à chaque connexion" signifie que les informations seront mises à jour lorsque l'utilisateur se connecte (à chaque connexion).

L'option "Empêcher la création de compte lors de l'authentification" (authpreventaccountcreation) peut éventuellement permettre de restreindre le nombre de comptes créés manuellement.

J'espère que cela répond à tes interrogations.

Séverin

Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: Plugins Authentification - CAS combiné avec base de donnée externe ?

par stephane ngov,

il serait préférable d'aller prendre les informations à la source


Je suis du même avis, mais le problème c'est le système entre moodle et oracle n'est pas une base unique,

une seul base qui référence les membres.


D'ailleur au début c'est ce que j'imaginais comme mécanisme, mais en réalité c'est que

chaque jours le cron synchro membre se lance scan tout les membres du LDAP puis la compare avec la table mdl_user.


Si nouveau membre => rajouter le nouveau membre avec le propre ID de user de moodle

Si le membre n'est plus là => ne supprime pas le membre , met le désactive et mais concatène avec une chaine aléatoire pour le mail.


si dès le départ le membre à un numéro unique qui est le même dans la table de moodle mdl_user ,

ça faciliterais bien le choses.


Pour mon cas, j'ai inscrit les cohorte à partir de la base oracle mais je passe par par le LDAP,

(pour reconnaître le membre on fait correspondre au champs institution de la table user de moodle à

champs memberOf du LDAP).


La base de oracle est une base bien rangé niveau de l'entité de l'étudiant par exemple

un étudiant 1A appartient à la 1A et pas autre chose,

par contre dans le LDAP , il peut être étudiant 1A, redoublant, faire partie

d'un spécialité autre, c'est  adapté à la pédagogie du campus pas juste au niveau administratif.

Du coups si je veux inscrire ou désinscrire automatiquement la cohorte 1A

je me retrouve avec une liste qui ne correspond pas exactement référentiel de la base d'oracle .


Je pense qu'en faisant ainsi oracle => ldap, cela permet d'être plus souple pour chaque service

que le besoin de ces 2 bases n'ont pas les mêmes but.


Moyenne des évaluations Utile (1)
En réponse à Sébastien Mehr

Re: Plugins Authentification - CAS combiné avec base de donnée externe ?

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs
Merci pour ces précisions, tout est très clair maintenant !