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

joeforker picture joeforker · Jan 18, 2011 · Viewed 8.6k times · Source

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?

Answer

joeforker picture joeforker · Jan 18, 2011

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=*)')