En regardant votre recherche, j'ai quelques points pour vous. Tout d'abord, la recherche utilise objectClass (non indexé) au lieu de objectCategory (indexé). Énorme problème de performance avec cette requête. Vous voulez toujours plus de combiner les deux ensemble en fonction de ce que vous essayez de récupérer:
(&(objectCategory=person)(objectClass=user)) = All users (no contacts)
(&(objectCategory=person)(objectClass=contact)) = All contacts (no users)
(&(objectCategory=person)) = All users and contacts
En ce qui concerne la recherche les utilisateurs dans un groupe, vous pouvez énumérer la liste des objets membres du groupe spécifique. Dans l'attribut de membre de l'objet de groupe est le distinguishedName de chaque utilisateur.
This article describes enumerating members of a group...
Ne pas oublier que vous devez gérer les groupes imbriqués du groupe parent, car il n'y a pas un moyen par défaut pour gérer cela avec les requêtes LDAP. Pour cela, vous devrez peut-être évaluer si l'objet membre est un groupe, puis obtenir l'attribut de membre pour ce groupe enfant. Enfin, vous devriez avoir l'habitude de spécifier un préfixe dns à votre requête.
Sans préfixe DNS:
LDAP://ou=ouname,dc=domain,dc=com
Avec le préfixe DNS (tous les trois de travail):
LDAP://servername/ou=ouname,dc=domain,dc=com
LDAP://servername.domain.com/ou=ouname,dc=domain,dc=com
LDAP://domain.com/ou=ouname,dc=domain,dc=com
Un seul domaine ne sera pas vous causer problème beaucoup mais quand vous essayez d'exécuter une recherche dans un environnement à plusieurs domaines, vous serez mordu sans cet ajout. J'espère que cela vous aidera à vous rapprocher de votre objectif.
C'était une réponse très réfléchie. – wcm
Ajouter (objectCategory = person) a vraiment accéléré la recherche. Merci beaucoup. – wcm
Mauvais. Dans l'attribut de membre de l'objet de groupe est le distinguishedName de chaque utilisateur, OU UN AUTRE ** GROUPE ** NOM ... –