Microsoft AD – Negative OU= LDAP-Filter

Microsoft AD – Negative OU= LDAP-Filter

Ich versuche, einen LDAP-Filter für MS AD zu erstellen, der Benutzer basierend auf einigen OUs filtert (in meinem Fall funktioniert das Ausschließen einer bestimmten OU, aber auch das Einschließen nicht):

(&(cn=Testuser1)(|(ou:dn:=Included1)(ou:dn:=Included2)))
(&(cn=Testuser1)(!(ou:dn:=Excluded)))

funktioniert nicht. Ich habe getestet, (ou:dn:=Included1)dass die eigentlichen „Ordner“-Objekte aufgelistet werden (unten mit * markiert), aber nicht die Benutzer darunter (mit dem DN, der die OU enthält). Ich kann die Suchbasis nicht verwenden, da sie mehrere finden sollte:

ou=Included1,dc=example,dc=com *
  cn=Testuser1,ou=Included1,dc=example,dc=com +
ou=Included2,dc=example,dc=com
  cn=Testuser1,ou=Included2,dc=example,dc=com +
ou=Excluded,dc=example,dc=com
  cn=Testuser1,ou=Excluded,dc=example,dc=com - 

In meinen beiden Beispielfiltern oben möchte ich zwei Testuser1-Einträge (mit + markiert) finden, nicht drei (mit - markiert).

Aber es stimmt eigentlich mit keinem überein. Die tatsächlichen Benutzereinträge weisen keine weiteren Unterschiede in den Attributen auf, nach denen ich filtern kann.

Es fühlt sich so an, als ob die " ou:dn:="-Syntax nur Objekte findet, bei denen die Vornamenskomponente die gewünschte ist, nicht irgendwelche...?

Antwort1

Der negative OU=-Komponentenfilter scheint mit Microsoft LDAP nicht zu funktionieren, da es sich um ein konstruiertes Attribut handelt (danke an @semicolon für den Link).

Es funktioniert jedoch, den vollständigen Attributwert zu verwenden, wie:

(&(CN=%u)(!(distinguishedName=CN=%u,OU=Excluded,dc=example,dc=com)))

verwandte Informationen