Как получить каждый объектный класс, доступный с помощью python -ldap? - PullRequest
0 голосов
/ 07 августа 2020

Учитывая допустимый python-ldap контекст, как я могу запросить все objectClass , доступные на сервере LDAP? Полагаю, результатом будет список ldap.schema.models.ObjectClass.

1 Ответ

0 голосов
/ 08 августа 2020

Мне наконец удалось это сделать с помощью:

import ldap

l = ldap.initialize(ldap_uri)
l.simple_bind_s(ldap_bind_dn, ldap_bind_pw)
res = l.search_s("cn=subschema", ldap.SCOPE_BASE, "(objectclass=*)", ["*", "+"])
subschema_entry = res[0]
subschema_subentry = ldap.cidict.cidict(subschema_entry[1])
subschema = ldap.schema.SubSchema(subschema_subentry)
object_class_oids = subschema.listall(ldap.schema.models.ObjectClass)
object_classes = [
    subschema.get_obj(ldap.schema.models.ObjectClass, oid) for oid in object_class_oids
]
...