cancel
Showing results for 
Search instead for 
Did you mean: 

Requête LDAP récursive

ima_alfresco
Champ in-the-making
Champ in-the-making
Bonjour,

L'annuaire LDAP que nous avons est défini avec un groupe Alfresco qui possède des utilisateurs mais aussi des sous-groupes. Nous arrivons à récupérer les utilisateurs du premier niveau mais pas des niveau en dessous



<property name="personQuery">
         <value>(|(memberOf=CN=Alfresco,OU=Tests,DC=XX,DC=YY)(cn=TestAlfresco))</value>
</property>

<property name="searchBase">
            <value>DC=XX,DC=YY</value>
</property>

Comment faire pour récupérer les utilisteurs des sous groupes, récursivement.

Merci Beaucoup
6 REPLIES 6

pdubois
Champ on-the-rise
Champ on-the-rise
Je pense que votre "personQuery" est trop restrictive, à votre place, je la remplacerai par ceci:

        <property name="personQuery">
            <value>(objectclass=inetOrgPerson)</value>
        </property>

Généralement la "personQuery" retourne toutes les personnes de l'annuaire à partir d'une racine, idem pour les groupes.  Après c'est à vous de donner les droits d'accès nécessaires aux groupes en les invitant.

Si vous désirez avoir un filtrage différent des utilisateurs, je vous conseille d'étendre un peut le comportement de "org.alfresco.repo.security.authentication.ldap.LDAPPersonExportSource". Ceci est facilement configurable grâce à spring(il suffit de mettre le nom de votre nouvelle classe).

pdubois
Champ on-the-rise
Champ on-the-rise
Basé sur la remarque dans le fichier « ldap-authentication-context.xml » il existe une autre piste :


<!–

    There can be more than one stack of beans that import users or groups. For example, it may be easier
    to have a version of ldapPeopleExportSource, and associated beans, for each sub-tree of your ldap directory
    from which you want to import users. You could then limit users to be imported from two or more sub tress and ignore
    users found else where. The same applies to the import of groups.

    The defaults shown below are for OpenLDAP.

    –>

Ceci veut dire que vous pouvez définir plusieurs fois le processus d’import avec des racines différentes (searchBase) et des « personQuery » différentes.
Si cette solution est applicable dans votre cas, elle a l’avantage de  ne pas demander de développement java.

rguinot
Confirmed Champ
Confirmed Champ
Il en en général pratique de faire une requête avec ldapsearch et de tester les résultats. Les requêtes LDAP peuvent être compound avec des OR,AND, NOT , n'importe quel attribut LDAP, des groupes etc…

Il serait étonnant que vous n'arriviez pas à récupérer exactement les users que vous voulez en une seule requête.
Une fois que vous avez la bonne requête, il suffira de la reporter dans le fichier de configuration LDAP d'Alfresco. Cela évite bcp de trial & error.

ldapsearch est fourni avec le paquet openldap-clients sur une distrib Fedora par exemple.

En esperant être clair,
Romain.

ima_alfresco
Champ in-the-making
Champ in-the-making
Le problème est si je possède 20 sous groupes dois je faire 20 fois le travail? ou alors 20 fois ajouté un AND et cela n'est pas dynamique

rguinot
Confirmed Champ
Confirmed Champ
Essayez vos requêtes via les outils standards tels que ldapsearch (man ldapsearch). une fois que vous trouvé une requête qui retourne des résultats satisfaisants, il vous suffira de la recopier dans la config Alfresco.

ima_alfresco
Champ in-the-making
Champ in-the-making
J'utilise Softerra sur windows et le problème est que je ne trouve pas de requete LDAP recursive