我正在尝试获取某个用户所属的所有组。

我在ldap中具有以下结构:

o=myOrganization
     ou=unit1
         cn=admin
         cn=guess


ou=users
    cn=ann
    cn=bob
    cn=carla
  • myOrganization是组织
  • 的实例
  • unit1是OrganizationUnit
  • 的实例
  • adminguess都是GroupOfNames,每个人都作为成员
  • annbobcarla是Person
  • 的实例

    当前,我在python上使用ldap模块,这就是我所拥有的:
    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)
    

    而且我能够获得用户ann;但是,我该如何获取Ann所属的组?

    我从this页面尝试了以下内容:
    search_filter='(|(&(objectClass=*)(member=cn=ann)))'
    results = l.search_s([BASE_DN], ldap.SCOPE_SUBTREE, search_filter, ['cn',])
    

    但是我有一个空名单。我还尝试了各种查询组合,但它们都返回空。

    PS:我在Linux机器上使用OpenLDAP

    最佳答案

    member=cn=ann是不够的。您必须使用Ann的完整DN,可能是这样的:

    member=cn=ann,ou=users,dc=company,dc=com
    

    关于python - 如何找到用户所属的所有组? (LDAP),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40225230/

    10-13 00:03