Authentification CAS

Authentification CAS

par Christophe Duval,
Nombre de réponses : 12

Bonjour à tous,

 

Voulant tester la solution BigBlueButton avec une gestion de groupes, de droits, etc ... j'ai installé Moodle avec le plugin BBB.

Après quelques tests, notamment sur l'authentification, j'ai activé celle utilisant un serveur CAS.

J'ai surement désactivé autre chose, car depuis, c'est la seule qui m'est proposée lorsque je clique sur "connexion" sur la page d'accueil. Celà ne semble pas poser de problème étant donné qu'elle fonctionne, mais du coup je n'ai plus accès aux comptes administrateurs de l'application, stockée en base interne.

J'ai beau regardé dans la base de donnée (qui est énorme d'ailleurs), je ne trouve pas comment je pourrais revenir à une authentification classique et avoir accès à mes menus d'administration de moodle.

J'ai bien mes utilisateurs 'normal' et 'cas' dans la table mdl_users.

Comment puis-je avoir les 2 modes d'authentification en passant par la base de donnée ? ou par un autre moyen ?

Merci

Moyenne des évaluations  -

Re: Authentification CAS

par Patrick Pollet,

Dans la table mdl_config_plugins, remets à 1 la valeur de la colonne value pour la ligne plugin='auth/cas' et name='multiauth'

 

Ca corresponds à l'option 'authentification multiple' du réglage de l'authentification CAS... mais je crois que tu n'y as plus accès clin d’œil


 

A+

Annexe screenshot_114.png
Moyenne des évaluations Utile (2)

Re: Authentification CAS

par Pascal Maury,
Avatar Développeurs de plugins

Bonjour,

1/ phpCAS::logout

Je reprends ce sujet pour évoquer un autre problème concernant notre Moodle et notre CAS.
Moodle : 1.9.12
Client phpCAS 1.1.3
Serveur CAS : 3.4.6

Lorsque je clique sur Déconnexion sur la page de Moodle, ce dernier appelle la page https://sitecas.u-paris.fr/logout?url=http%3A%2F%2Fsitemoodle.u-paris.fr

Or avec le changement de serveur CAS qui vient d'être opéré (nous sommes passé à la version 3.4.6), il ne faut plus utiliser le mot url dans l'adresse transmise au serveur cas mais le mot service ( https://wiki.jasig.org/display/CASC/phpCAS+logout)
(ndlr : d'ailleurs il me semblerait logique que cela soit la méthode logoutWithRedirectService($service) qui devrait être appelée et non logout tout court)

Bref, comment corriger ce problème ? La génération de l'adresse appelée lorsque l'on clique sur Déconnexion est faite par phpCAS je suppose. Est-ce un problème de version ?

Ai-je intérêt à MAJ le dossier phpCAS par la dernière version (1.2.1) comme conseillé dans un autre échange sur le forum ? Visiblement il n'y avait rien d'autre à modifier pour mettre à jour phpCAS. je suis surpris d'ailleurs que la version 1.9.12 n'est pas fait la MAJ au passage.

Qu'en est-il chez vous ? Avez-vous le même problème ?

 

2/ De manière plus générale, j'ai remarqué que Moodle (1 ou 2 d'ailleurs) ne revérifie pas la session auprès du CAS. Si je me connecte à un site CASifié, puis à mon site moodle, puis que je me déconnecte du premier site et du cas dans la foulée, je reste connecté à Moodle. Moodle n'est pas conscient de la déconnexion que j'ai fait au niveau du CAS. Est-ce normal ?

 

3/ Enfin, dernière réflexion : Moodle propose de se déconnecter du CAS lorsque l'on clique sur Déconnexion. Mais faut-il le faire ? Exemple : si l'utilisateur se connecte à un site CASifié, puis à au site moodle, puis qu'il se déconnecte du site moodle sur lequel j'ai configuré une déconnexion du CAS. S'il retourne finir de rédiger un message sur le site initial, il va perdre son message en validant (en supposant que l'autre site vérifie lui la session du CAS à chaque chargement de page).
Inversement si on ne déconnecte pas l'utilisateur du CAS, ce dernier peut penser s'être entièrement déconnecté du "système" alors que ce n'est pas le cas. Pire encore, s'il est conscient qu'il doit aussi se déconnecter du CAS, où trouvera-t-il l'adresse pour le faire ?

Moyenne des évaluations Utile (1)

Re: Authentification CAS

par Pascal Maury,
Avatar Développeurs de plugins

Alors, je pense avoir trouvé.

J'ai essayé avec la version 1.2.1 de CAS : sans succès. Même en changeant la "Version du logiciel CAS" en le passant à 3.4.6 ou à 3 (là j'ai eu l'erreur phpCAS error: phpCAS::client(): this version of CAS (`3') is not supported by phpCAS 1.2.1) **.
J'en ai donc conclu que le problème ne venait pas de phpcas (à moins d'un bug dans les 2 versions). J'ai donc simplement regardé le fichier de moodle auth/cas/auth.php qui, je suppose, fait l'interface entre moodle et phpcas. Et en effet, à la ligne 170 on voit appaitre le code suivant :

if ($this->config->logoutcas ) {
$backurl = $CFG->wwwroot;
$this->connectCAS();
phpCAS::logoutWithUrl($backurl);
}

On voit à la ligne 173 un appel à la fonction phpCAS::logoutWithUrl(), qui est donc obselète avec les serveurs dont la version est supérieur à 3.3.5 comme indiqué dans le lien que j'ai donné (je le redonne ici sans le ')' qui a cassé mon lien ! => https://wiki.jasig.org/display/CASC/phpCAS+logout )

A mon humble avis, il faut remplacer la ligne 173 par :

phpCAS::logoutWithRedirectService($backurl);

L'essai de mon coté est concluant en tout cas.

J'aimerais le soumettre comme bug mais vu que c'est ma première fois rouge, je voudrais que l'on me confirme
- qu'il s'agisse bien d'un bug
- que la correction proposée est correcte

Si j'ai bien suivi, le tracker est ici : http://tracker.moodle.org. J'ai cherché "logout" mais je n'ai rien trouvé qui relate ce bug dans les bugs ouverts ou acceptés.

Merci de vos avis sur la question :

Mes 2 autres réflexions sont toujours ouvertes à discussion !

2/ De manière plus générale, Moodle (1 ou 2 d'ailleurs) ne revérifie pas la session auprès du CAS à chaque page. Est-ce normal ? (plus de détails dans mon message précédent)

3/ Enfin, dernière réflexion : Moodle propose de se déconnecter du CAS lorsque l'on clique sur Déconnexion. Mais faut-il le faire ? (plus de détails dans mon message précédent)

Pascal

 

** Ne faudrait-il pas d'ailleurs changer le texte "Version du logiciel CAS" par "Version du protocol CAS" ? Car avec "Version du logiciel CAS" on ne sait pas trop de quoi il s'agit... Je dis ça sans savoir s'il s'agit en effet de la version du protocol dont il s'agit, mais je l'ai lu là : http://tracker.moodle.org/browse/MDL-16646

Re: Authentification CAS

par Pascal Maury,
Avatar Développeurs de plugins

Je relance ce sujet : le bug n'ayant pas été corrigé !

De notre côté, suite à des plaintes d'enseignants n'arrivant pas à se déconnecter réellement, j'ai changé ma manière de gérer la déconnexion : j'ai choisi Oui pour le champ Déconnexion (voir copie d'écran ci-dessus).

En effet, sans cela, lorsqu'un utilisateur se déconnecte de Moodle, cela ne le déconnecte pas du CAS. Par conséquent, un simple clic sur Connexion sur notre site Moodle suffit à le reconnecter sans que le mot de passe soit demandé. C'est logique, vu qu'il n'est pas déconnecté du CAS mais cela est difficile à expliquer aux utilisateurs.
Il faudrait :
- soit qu'ils se déconnectent du CAS aussi (question : où mettre le bouton pr cela ?)
- soit qu'ils suppriment leurs cookies (trop compliqué à expliquer)

Personne n'a ce problème ? Si oui, le fait que la page du CAS ne renvoie pas au site Moodle (le bug que je signale intialement dans ce sujet) ne pose pas problème ?

J'avais posté un autre bug qui a été corrigé bien plus vite, celui-là traine depuis plus de 6 mois alors que sa résolution est basique. Dois-je en refaire "la pub" sur les forums anglophones ?

Re: Authentification CAS

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

Bonjour Pascal,

Effectivement, je crois que tu peux essayer de faire bouger les choses, en créant une discussion dans le forum dédié à l'authentification, et en mettant un lien vers MDL-27610.

Inversement, sur le rapport de bogue, indique la discussion que tu auras lancé, et tout ce qu'il peut y avoir de nouveau (dernières versions testées et comportant encore le problème...).

Re: Authentification CAS

par Dominique Bouillet,

Bonsoir,

j'ai moi aussi choisi la Déconnexion de CAS lors de la déconnexion de Moodle pour les mêmes raisons que toi.

Mais j'ai aussi le souci inverse : j'ai demandé à notre service informatique qu'une déconnexion CAS provoque aussi une déconnexion Moodle mais sans succès jusqu'à maintenant. Je trouve que cela provoque dessituations perturbantes. Exemple : un utilisateur A se connecte sur l'ENT et ouvre plusieurs applications (moodle, webmail...). Si ensuite, il se déconnecte de CAS à partir d'une application autre que Moodlle, il reste quand même connecté A sur Moodle. Et s'il prête son terminal à un collègue qui ouvrir une autre session CAS, il y aura deux applications, une avec l'identitié A et l'autre avec une autre identité.

Domy

Re: Authentification CAS

par Pascal Maury,
Avatar Développeurs de plugins

En effet, ca peut porter à confusion. Effectivement Moodle ne revérifie pas à chaque accès la session au niveau du CAS (ca serait d'ailleurs un peu lourd).
Et ce comportement ne peut etre changé qu'en modifiant moodle. Ca me parait pas impossible mais ca me parait lourd qd à mettre en place..