Comment puis-je faire une requête LDAP qui ne renvoie que des groupes ayant OU=Groupes de tous les niveaux?
Si je suis à la recherche pour tous les Groups
, je reçois trop de déchets.
Si j'essaie d'affiner la base, j'ai trop peu.
Voici un exemple:
CN=A Team,OU=Groups,OU=Americas,DC=example,DC=com
CN=B TEAM,OU=Groups,OU=EMEA,DC=example,DC=com
CN=C Team,OU=Legacy Groups,DC=example,DC=com
CN=D Team,OU=Groups,OU=Bangalore,OU=APAC,DC=example,DC=com
CN=E Team,OU=Common Groups,DC=example,DC=com
Je suis à la recherche d'un annuaire LDAP filter
qui renvoie A B D E (sans C) - principalement la logique serait de me faire tous les groupes qui n'ont OU=Groups
ou OU=Common Groups
Ma recherche actuelle est à l'aide de:
Search base: CN=Users,DC=citrite,DC=net
Filter: (objectCategory=Group)
- Avez-vous essayé un filtre quelque chose comme
(&(objectCategory=Group)(distinguishedName=*OU=Groups*))
? - Distinguer les noms de domaine (DNs) ne sont pas des attributs, ils sont des collections d'une ou de plusieurs noms uniques relatifs et ne peuvent pas être utilisés dans des filtres.
Vous devez vous connecter pour publier un commentaire.
D'abord, sur Microsoft Active Directory est impossible à faire en une seule recherche, c'est parce que l'ANNONCE n'est pas entièrement compatible avec LDAP.
Compatible LDAP serveurs prennent en charge un
extensible-match
filtre qui fournit le nécessairele filtrage. De RFC4511:
Noter que le extensible-match filtre technique fonctionne uniquement compatible LDAP serveurs,
de l'ANNONCE qui n'en est pas un.
Par exemple, j'ai ajouté les entrées suivantes à un serveur:
Examiner le filtre dans la recherche suivante, après les entrées ci-dessus ont été ajoutés:
Noter que
ou=common groups
,ou=groups
, et leurs subordonnés sont retournés, mais pasou=legacy groups
et subordonnés.Cet exemple utilise la syntaxe moderne de la commande ldapsearch outil de ligne de commande. Si l'utilisateur est
en utilisant l'héritage OpenLDAP version de la commande ldapsearch, les paramètres de l'outil de ligne de commande sont
quelque peu différents, mais qui n'a pas d'importance. Ce qui compte c'est le filtre.
ou:dn:=groups
mais quand je mets ce je n'ai jamais obtenu de résultats. Je suis interrogation d'un Active Directory de Microsoft, donc je suppose que je n'ai pas de contrôle sur le champ dnAttributes - en fait, je n'ai aucune idée de comment même de voir sa valeur.