2011-08-22 68 views
0

我想爲我的應用程序使用LDAP身份驗證。我的應用程序正在接受來自用戶的輸入並在數據庫中存儲名字,姓氏等詳細信息。當我在settings.py文件中寫入以下代碼時,我沒有收到任何錯誤,並且應用程序正常運行。那麼我怎麼知道LDAP在應用程序中使用或需要對應用程序進行一些修改。請幫幫我。我使用Django文檔的基本設置。如何在django中使用ldap進行應用認證?

import ldap 
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType 
# Baseline configuration. 
AUTH_LDAP_SERVER_URI = "ldap://ldap.example.com" 
AUTH_LDAP_BIND_DN = "cn=django-agent,dc=example,dc=com" 
AUTH_LDAP_BIND_PASSWORD = "marksheet" 
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com", 
    ldap.SCOPE_SUBTREE, "(uid=%(user)s)") 
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=django,ou=groups,dc=example,dc=com", 
    ldap.SCOPE_SUBTREE, "(objectClass=groupOfNames)" 
) 
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn") 
AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=django,ou=groups,dc=example,dc=com" 
AUTH_LDAP_USER_ATTR_MAP = { 
    "first_name": "firstname", 
    "last_name": "lastname", 
} 

謝謝...

+1

請重新格式化您的問題。在代碼塊之前放置一個額外的換行符,並且可以在它之前和之後刪除反引號'''。反引號通常用於內聯代碼塊。同樣在你的settings.py中,你是否已經將URI更改爲LDAP服務器所在的實際URI(而不是代碼中顯示的example.com)?我的猜測是什麼都不會發生,除非AUTH_LDAP_SERVER_URI等指向具有正確配置的域的真實LDAP服務器。 – arunkumar

+0

Thanks.i明白我必須使用ldap_server_uri實際的ldap服務器。如何爲ldap創建用戶以及如何知道實際的ldap服務器?配置ldapserver並與django連接的主要問題? –

+0

你應該真正重新格式化和重新表述你的問題。你的第一個問題是如何設置LDAP。接下來的問題是如何配置Django來使用它進行身份驗證。無論如何,這裏是一個指針 - http://www.openldap.org/doc/admin22/ – arunkumar

回答

2

似乎你試圖做到這一點使用django-auth-ldap包。對於此設置,您的設置缺少最重要的部分,即將django_auth_ldap.backend.LDAPBackend添加到您的AUTHENTICATION_BACKENDS

有關更詳細的設置說明,請參閱django-auth-ldap documentation