So finden alle Gruppen der Benutzer Mitglied ist? (LDAP)
Ich versuche, alle Gruppen, denen ein bestimmter Benutzer Mitglied ist.
Habe ich Folgendes Strukturen in ldap:
o=myOrganization
ou=unit1
cn=admin
cn=guess
und
ou=users
cn=ann
cn=bob
cn=carla
myOrganization
ist eine Instanz der Organisationunit1
ist eine Instanz von OrganizationUnitadmin
undguess
sind beide GroupOfNames und haben jeden als Mitgliedann
,bob
, undcarla
sind Instanzen von Person
Derzeit bin ich mit der ldap-module auf python und das ist, was ich habe:
import ldap
l = ldap.initialize("ldap://my_host")
l.simple_bind_s("[my_dn]", "[my_pass]")
ldap_result = l.search("[BASE_DN]", ldap.SCOPE_SUBTREE, "(&(objectClass=Person)(cn=ann))", None)
res_type, data = l.result(ldap_result, 0)
print(data)
Und ich bin in der Lage, um die Benutzer ann
; aber, wie bekomme ich die Gruppen Ann
gehört?
Habe ich versucht, die folgenden von diese Seite:
search_filter='(|(&(objectClass=*)(member=cn=ann)))'
results = l.search_s([BASE_DN], ldap.SCOPE_SUBTREE, search_filter, ['cn',])
Aber ich habe eine leere Liste. Ich habe auch versucht, verschiedene Kombinationen von Abfragen", aber alle leer zurück.
PS: ich bin mit OpenLDAP auf einem linux-Rechner
- Ich habe versucht, die folgenden von dieser Seite... Aber hatte keinen Erfolg. Wie genau war der aufgeführten Abfrage nicht erfolgreich? Leere Ergebnisse? Fehlermeldung?
- Auch sind Sie nur auf der Suche nach Gruppen, in denen ann ist ein direktes Mitglied? (Was ist, wenn ann ist ein Mitglied einer Gruppe ist, die selbst Mitglied einer anderen Gruppe?)
- Sind Sie mit Windows / Active Directory? Wenn Sie sind, ich würde vorschlagen, mit der
pyad
Paket. Ich weiß, dass es nicht besonders hilfreich, um Ihre genaue Frage, aber ich habe festgestelltpyad
eine viel schönere Oberfläche als die python-ldap. Wäre dies so einfach, wieuser.get_membersOf()
die es erlaubt, auch einen Bereich angeben, und ob oder nicht rekursiv Untergruppen. - Ich bekomme eine leere Liste, wenn ich die Abfrage ausführen, die von der website, und ich bin nur auf der Suche nach direkten Mitglieder. Ich werde zu aktualisieren, meine Frage deutlicher machen
- Ich bin mit openldap auf einem linux-Rechner
- Ich weiß, Sie geben OpenLDAP, aber im Falle, es könnte helfen, jemand anderes als ich im Kampf sehr lange, weil es... Mit Active Directory müssen Sie die "distinguishedName" alle zusammen, um die Benutzer mit einer bestimmten Mitgliedschaft mit solchen search_filter... ich letztendlich finden diese Q&A, die besagt das gleiche : stackoverflow.com/questions/6195812/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
member=cn=ann
ist nicht genug. Verwenden Sie ann ' s full DN, wahrscheinlich so etwas wie dieses:(objectClass=Person)
zu(objectClass=groupOfNames)