2011-08-12 49 views
0

我們的ldap已設置,以便我們擁有多個不同的組織單位(ou)。我目前有一個django項目,使用django_auth_ldap連接到我們的ldap服務器,這樣人們可以用他們的ldap憑證登錄。但是,只有當我需要它與多個工作時,我才能使它工作。我目前已將其設置爲使用django_auth_ldap檢查多個組織單位(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爲我工作(我非常高興!)。

回答

2

更改基礎對象爲dc=example,dc=net:那麼您指定的搜索範圍subtree將搜索dc=example,dc=net下的所有子樹。有關LDAP搜索請求和響應操作的更多信息,請參閱我的博客條目"Using ldapsearch"。儘管這些示例使用了命令行工具,但這些概念將對您有所幫助。

此外,作爲一個良好的編程習慣,您應該提供一個size limittime limit。這些參數的默認值根據您的API而不同,可能不適合您的需求。

+0

啊哈!認爲這是簡單的事情。出於某種原因,我在考慮在搜索之前需要指定哪些內容。這是有道理的。謝謝! –

相關問題