Authentification CAS : filtrer les utilisateurs avec un champ LDAP

Authentification CAS : filtrer les utilisateurs avec un champ LDAP

par Pascal Maury,
Nombre de réponses : 4
Avatar Développeurs de plugins

Bonjour,

Je viens pour un problème pas évident  : mes utilisateurs s'authentifient en passant par le CAS. Je récupère ensuite les informations relatives à leur identité à travers un LDAP. J'ai défini le contexte au niveau d'une branche, genre : "ou=personne,dc=univ,dc=fr"

Il se trouve que le CAS sert également pour d'autres applications, accessible pour un public "plus large". Je ne sais pas exactement comment il est paramétré mais le contexte doit être positionné plus "haut" (ou plus "bas" je sais pas comment on dit), genre : "dc=univ,dc=fr"

Cela permet à des utilisateurs de plusieurs branches (exemple : ou=personne,dc=univ,dc=fr et ou=ancien,dc=univ,dc=fr) de pouvoir s'authentifier pour utiliser ensuite des services ouverts à un plus large public que mon Moodle (le mail par exemple qui reste accessible aux anciens étudiants pendant un certain temps).


Pour la plate-forme Moodle, nous souhaitons que seuls les utilisateurs appartenant à la branche "ou=personne,dc=univ,dc=fr" puisse entrer sur la plate-forme. Mais une telle cette option de filtrage n'existe pas. Ou alors je sais pas où elle est.

Lorsqu'un utilisateur d'une branche comme ou=ancien,dc=univ,dc=fr s'authentifie, le CAS valide les identifiants (à raison) et Moodle créé son compte, je n'ai pas moyen de lui interdire. La seule chose qui le bloque est en fait le remplissage des données : vu que j'ai paramétré les champs LDAP avec la branche "ou=personne,dc=univ,dc=fr", Moodle ne parvient pas à le trouver dans le LDAP et ne fait donc pas la liaison des données. Et notamment le champ mail obligatoire. L'utilisateur se retrouve donc bloqué sur la page de profil lui expliquant que certains champs sont obligatoires (mais il ne peut pas les ajouter, j'ai évidemment verrouillé les champs).

J'obtiens donc ce que je veux mais pas du tout proprement déjà, et 2e point, vu que je garde des utilisateurs d'une année sur l'autre (enfin je fais du ménage mais sur 2 ans), il arrive qu'un revenant (inscrit il y a 2 ans) se reconnecte et accède à la plate-forme, car son profil est déjà rempli d'il y a 2 ans. Mais pour autant, il ne devrait pas pouvoir utiliser ce service.

Bon je sais pas si je suis très clair mais bon c'est vendredi sourire

Si qq'un a compris et peut m'aider, je prends !

Merci !

Pascal


Moyenne des évaluations  -
En réponse à Pascal Maury

Re: Authentification CAS : filtrer les utilisateurs avec un champ LDAP

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

Bonjour Pascal,

J'ai bien compris sourire

Mais j'ai peur de ne pas forcément pouvoir t'aider...

La seule possibilité que j'entrevois, c'est dans "Administration du site > Plugins > Authentification > Gestion de l'authentification" de cocher l'option "Empêcher la création de compte lors de l'authentification" (authpreventaccountcreation).

Il faudra par contre avoir prévu de créer auparavant les comptes des personnes qui doivent pouvoir se connecter !

Dis nous si ça fonctionne...

Séverin


En réponse à Séverin Terrier

Re: Authentification CAS : filtrer les utilisateurs avec un champ LDAP

par Pascal Maury,
Avatar Développeurs de plugins

Salut Séverin,

Hélas, je ne peux pas faire ca pour le moment !

je vais voir comment je vais gérer ca ...

En réponse à Pascal Maury

Re: Authentification CAS : filtrer les utilisateurs avec un champ LDAP

par Éric Bugnet,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Traducteurs

Salut,

Sur plugin / CAS :

- tu as le contexte à définir (j'ai mis 2 OU perso)

- dans script cron, tu peux virer des users qui ne sont plus dans ta base (et donc j'imagine dans tes OU)


Perso, j'utilise un cron qui lance toutes les nuits une synchro avec notre LDAP, et ensuite un cron qui lance un script pour synchroniser les cohortes avec les groupes du LDAP (merci P. Pollet !)

J'ai pas constaté ce problème... mais je ne supprime pas les users s'ils ne sont plus dans l'arborescence.

Peut être aussi peux tu limiter la lecture de ton arborescence LDAP aux OU concernées seulement par ton user moodle (DN) ? Du coup il ne pourrait pas consulter les autres OU... Je sais pas si ça peut se faire !

Éric
En réponse à Éric Bugnet

Re: Authentification CAS : filtrer les utilisateurs avec un champ LDAP

par Pascal Maury,
Avatar Développeurs de plugins

Bonjour Eric,

Merci pour ces infos mais cela ne réponds pas à mon problème : Moodle consulte correctement le LDAP, c'est juste que je n'empêche pas la création de compte si l'utilisateur n'est pas trouvé !

Séverin m'a donné la solution : activer l'option "Empêcher la création de compte lors de l'authentification" mais cela veut dire :
- que je dois créer/supprimer les comptes par le cron (tous les soirs par exemple)
- que l'utilisateur doit attendre le soir pour pouvoir accéder à la PF

Je ne peux pas faire ca pour le moment. La solution sur laquelle je vais me rabattre est la suivante : à la connexion, nous exécutons un script (grâce à l'évènement "LOGIN"). Dans celui-ci je vais vérifier un champ du LDAP. Si Moodle n'arrive pas à le récupérer c'est que l'utilisateur n'est pas dans la branche people et qu'il y a donc un problème. Je vais le déconnecter et le rediriger vers une page d'explications.