2013-03-13 157 views
1

我正在研究一個基於Django的Intranet應用程序,該應用程序需要用戶對Active Directory進行身份驗證。我發現django-auth-ldap,但我仍然完全不知道該怎麼做才能建立一個我可以開發的本地LDAP服務器。爲Django身份驗證設置LDAP

我安裝了AD LDS,但它需要一個域控制器,並且有些我讀過的答案告訴我,我無法在Windows 7上設置它。所以我決定嘗試OpenLDAP,而它看起來像是在工作,但我讀到的教程並不是特別清楚我到底如何向它添加數據?

是否有人請向我解釋爲了向本地運行的LDAP服務(無論是OpenLDAP還是Active Directory)添加併成功驗證Django用戶配置文件,需要執行哪些步驟(我需要知道成功設置後者,如果這是可能的話)?

回答

1

您可能已經通過,但現在以防萬一解決了這個:

您需要設置LDAP存儲庫(完成)。 您需要創建一些可以綁定的用戶對象。這是通過使用LDIF文件或類似的方法來完成的。一個非常有用的可視化LDAP數據庫的工具是'Apache Directory Studio'。例如,一個ldif可能會出現:

dn:cn=myuser,cn=localhost 
changetype: modify 
add: cn=myuser 
userPassword: password01 

它會根據您的模式而有所不同。我強烈建議你閱讀的具體實施Django文檔到你:https://pythonhosted.org/django-auth-ldap/

這是一個很好的例子(從文檔):

import ldap 
from django_auth_ldap.config import LDAPSearch 

AUTH_LDAP_BIND_DN = "" 
AUTH_LDAP_BIND_PASSWORD = "" 
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com", 
ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 

但假設你已經通過LDIF將用戶添加到「CN = localhost「,那就是你在搜索字段中使用的dn。正如文檔所述,如果您願意,可以搜索整個目錄。

如果它不清楚發生了什麼事:

  1. 導入LDAP模塊
  2. 進口ldapsearch的功能?從django的模塊
  3. 設置一個空白綁定DN(這是像一個完全合格的用戶名。例如UID = myuser的,DC = COM)
  4. 設置一個空白綁定密碼
  5. 執行搜索。格式像這樣:( 「基地」,範圍,searchfilter)

您可以測試使用標準的LDAP模塊在Python:

import ldap 
ld = ldap.initialize("ldaps://acme.com:636") 
ld.bind_s("userDN","Password") 
ld.search_s("cn=acme.com",ldap.SCOPE_SUBTREE,"uid=myuser") 

並不重要,但 「ldap.SCOPE_SUBTREE」,「LDAP .SCOPE_BASE「等只是整數。所以你可以傳入0,1,2。

祝你好運,即使你很久以前就已經解決了。