【问题标题】:Check multiple organizational units (ou) with django_auth_ldap使用 django_auth_ldap 检查多个组织单位 (ou)
【发布时间】:2011-08-12 17:42:59
【问题描述】:

我们的 ldap 设置为有多个不同的组织单位 (ou)。我目前有一个 django 项目,使用 django_auth_ldap 连接到我们的 ldap 服务器,这样人们就可以使用他们的 ldap 凭据登录。但是,当我需要它与多个 ou 一起工作时,我只能让它为一个 ou 工作。我目前是这样设置的

import ldap
from django_auth_ldap.config import LDAPSearch

AUTH_LDAP_SERVER_URI = "ldap://ldap.example.net"
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=people_1,dc=example,dc=net",
   ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
AUTH_LDAP_USER_ATTR_MAP = {"first_name": "givenName",
                           "last_name": "sn",
                           "email": "email",
                           }

这可以从 people_1 组中获取人员。如何设置它以便它也可以从另一个容器(例如 people_2)中进行选择?我试过只添加“ou=people_1,ou=people_2”,这似乎不起作用。我对理解 ldap 还是很陌生,所以如果这实际上可能是微不足道的问题并且只是没有正确搜索以找到答案,我深表歉意。我花了一段时间才让 django_auth_ldap 为我工作(当我这样做时非常高兴!)。

【问题讨论】:

    标签: django ldap django-authentication


    【解决方案1】:

    将基础对象更改为dc=example,dc=net:那么您指定的subtree的搜索范围将搜索dc=example,dc=net下的所有子树。有关 LDAP 搜索请求和响应操作的更多信息,请参阅我的博客条目 "Using ldapsearch"。即使示例使用命令行工具,这些概念也会对您有所帮助。

    此外,作为一种良好的编程习惯,您应该提供size limittime limit。这些参数的默认值因您的 API 而异,可能不适合您的需求。

    【讨论】:

    • 啊哈!以为是这么简单的事情。出于某种原因,我在想,在搜索之前需要指定一个 ou。现在这是有道理的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    • 1970-01-01
    相关资源
    最近更新 更多