JaliosXperience
fr en
Path > Home > Forums > French Forum
Link

Synchronisation LDAP sans inscription automatique

Roni Levy - on 3/4/10 at 3:37 PM

Comment empêcher les inscriptions automatiques de membres tout en gardant la synchronisation avec nos groupes LDAP ?

Cette synchro fonctionne très bien pour les groupes, mais nous voudrions empêcher que n'importe quel membre de l'annuaire puisse devenir membre de JCMS (groupe par défaut), ie. n'avoir comme membres dans JCMS que ceux appartenant aux groupes LDAP synchronisés + ceux que nous créons manuellement dans JCMS.

JCMS 5.7.5 - Annuaire Sun DS 6.0

Bruno Courtiau - on 3/5/10 at 9:33 AM

Bonjour,

si je comprends bien votre besoin :

  • vous avez certains utilisateurs dans votre LDAP (existant dans JCMS ou non), qui doivent être synchronisés, mais...
  • vous avez d'autres utilisateurs qui ne sont pas autorisés et ne doivent pas être synchronisés dans JCMS et ne peuvent pas se connecter

Comment faire ?

La réponse consisterait à spécifier un filtre de recherche avancé (via la syntaxe LDAP standard) pour filtrer les membres à la sélection : Un peu comme ce qui est évoqué ici : http://support.jalios.com/jcms/818_DBForumTopic/synchronisation-sur-plusieurs-branches-ldap

L'idée étant de mettre plusieurs critères de recherche d'appartenance à tel ou tel groupe. Si l'utilisateur n'en fait pas partie, alors il ne sera pas trouvé par la recherche donc pas du tout autorisé à se connecter/synchroniser dans JCMS.

Roni Levy - on 3/8/10 at 6:47 PM

Bonjour,

J'ai l'impression que la solution proposée est difficile à mettre en oeuvre dans notre cas, car dans cet annuaire Sun DS, il n'existe pas d'attribut, dans la fiche LDAP d'un utilisateur, qui renseigne sur son appartenance à tel ou tel groupe.

Il semble qu'il faille scanner toutes les fiches des groupes existant pour savoir à quel groupes appartient un utilisateur (!)

Notre objectif est de permettre l'accès identifié qu'aux seuls membres des groupes de notre annuaire dont le nom commençe par "PIA_", groupes dont la synchro se fait bien. Nous avons actuellement 2900 membres "inscrits" dans notre webapp JCMS, alors que seuls quelques centaines y ont vraiment droit. Effectivement, les autres ne peuvent pas faire grand-chose, mais nous préfèrerions que la base des membres de la webapp ne soit pas encombrée par ces milliers de membres inutiles...

Notre config LDAP : ==========================

-- Rubrique "Utilisateurs" :

DN de recherche : ou=ac-acad,ou=education,o=gouv,c=fr

Filtre de recherche : (&(objectClass=person)(uid={0}))

objectClass : person

Synchroniser les comptes : Oui

-- Rubrique "Groupes" :

DN de recherche ou=groups,ou=ac-acad,ou=education,o=gouv,c=fr

Filtre de recherche (&(objectClass=groupOfUniqueNames)(cn=PIA_*)(uniquemember={0}))

<=== CONVENTION: cn=PIA_*

objectClass groupOfUniqueNames

Synchroniser les groupes Oui

Nom cn

Membres uniquemember

==================

Olivier Jaquemet - on 3/15/10 at 11:13 AM

Bonjour,

Dans ce cas, pour répondre à votre besoin, plusieurs possibilités ... :

  1. modifier votre schéma LDAP afin de pouvoir spécifier une requête LDAP avec filtrage sur groupe, mais j'imagine bien que c'est difficilement envisageable !
  2. réaliser un développement spécifique.

Pour cette 2ème piste, vous pouvez modifier la classe custom.LdapAuthenticationHandler, dans le répertoire WEB-INF/classes. Le code source de cette classe est volontairement accessible pour répondre à ce genre de demande.

Dans votre cas, il s'agirait de ne pas synchroniser le membre si il appartient bien à un de ces groupes PIA*.

Le test est à faire à la création d'un membre, ligne 300 dans la méthode updateOrCreateAccount(...), après la ligne suivante

member.setDeclaredGroups(synchronizeGroups ? groups : new Group[] {channel.getDefaultGroup()} );

Rajoutez un test pour valider l'appartenance à un groupe, et sinon, renvoyez null. Le membre ne sera pas autorisé à se connecter.

Roni Levy - on 3/15/10 at 4:09 PM

Bonjour,

Merci pour toutes ces suggestions.

Nous allons explorer ces pistes.

Cordialement

Login   Home   fr en
JALIOS SA - SIREN 440 126 035