Search code examples
ldappython-ldap

How do I search for an object in LDAP based on its dn, in python-ldap?


I am trying to use e.g. the search_s function to search for an object based on its full distinguished name, but am not finding this to be convenient. For example,

search_s('DC=example, DC=com', ldap.SCOPE_SUBTREE,
    '(CN=Somebody, OU=Department, DC=example, DC=com)')

How do I just retrieve one object based on its full LDAP distinguished name?


Solution

  • Use SCOPE_BASE and a wildcard filter to return only the dn given by the first argument (the filter still has to match that object!) For example,

    import ldap
    ...
    ldap_connection.search_s('CN=Somebody, OU=Department, DC=example, DC=com',
        ldap.SCOPE_BASE,
        '(objectClass=*)')