Как получить child_object в python-ldap - PullRequest
0 голосов
/ 26 сентября 2019

Я совершенно новичок в использовании LDAP с python, пытаюсь выполнить запрос к дереву LDAP, которое показано на рисунке.

LDAP Tree

Использование пакета python-ldap.как видите, дерево выглядит так:

ou = Организация >> ou = Company >> ou = Brasil >> Затем, после того, как в стране появилось много городов, мне удалось добраться до этого города .. ноесть некоторые другие города, в которых есть какие-то (под-города), как вы видите в ou = Sao Paulo, после него есть 3 подгорода.

Что мне нужно сделать, это:

1- Добраться до детских городов после главных городов.2 - получить возможность перебрать все CN = Gateway - **** в каждом городе.3- Наконец, необходимо получить доступ к внутренним атрибутам для каждого CN и получить его значение.

Код, который я использовал в views.py :


def index(request):
    cities_list = []
    gateways_list = []
    con = ldap.initialize('ldap://The_URI_For_IDAP/(|(OU=Brasil)(OU=Company)(OU=Organization))')
    some_dn = 'dc=*****,dc=com'
    query = "ou=*"
    result = con.search_s(some_dn, ldap.SCOPE_SUBTREE, query)
    for item in result:
        cities_list.append(city_name)
        print(item)
    context = {
        'cities_list': cities_list,
    }
    return render(request, 'index.html', context)

в cities_list я получаю список каждого Родительского города после ou=Brasil, но я не могу добраться до внутреннего Ou и также не могу добраться до CN части.

1 Ответ

1 голос
/ 26 сентября 2019

Если вы хотите захватить каждую запись в ou=Organization >> ou=Company >> ou=Brasil, вам необходимо установить базовое значение dn и использовать objectclass=* в качестве фильтра:

con = ldap.initialize('ldap://domain.com')
base_dn = 'ou=Brasil,ou=Company,ou=Organization,dc=domain,dc=com'
filter = "(objectClass=*)"
result = con.search_s(base_dn, ldap.SCOPE_SUBTREE, filter)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...