如何在 python-ldap 中获取 child_object

How to get child_object in python-ldap

我完全不熟悉将 LDAP 与 python 一起使用,我正在尝试对图像中显示的 LDAP 树执行查询。

使用包 python-ldap。如您所见,树是这样的:

ou=组织 >> ou=公司 >> ou=巴西 >> 然后在这个国家之后,有很多城市,我设法到达了这个城市..但是还有一些其他城市在它下面有某种(子城市),正如你在 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部分。

如果您想抓取 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)