## 注意
`LDAP`在匹配`DN`方面相當靈活。 `LDAPBackend`通過在創建Django用戶時強制用戶名變為小寫,并在認證時修剪空白來努力解決這個問題。
一些`LDAP`服務器被配置為允許用戶在沒有密碼的情況下進行綁定。為防止誤報,`LDAPBackend`將立即拒絕任何帶有空密碼的身份驗證嘗試。您可以通過將`AUTH_LDAP_PERMIT_EMPTY_PASSWORD`設置為`True`來禁用此行為。
默認情況下,所有`LDAP`操作都使用`AUTH_LDAP_BIND_DN`和`AUTH_LDAP_BIND_PASSWORD`憑證執行,而不是用戶的。否則,LDAP連接將在登錄請求期間作為身份驗證用戶綁定,并在其他請求期間作為默認憑據綁定,因此您可能會看到不一致的`LDAP`屬性,具體取決于Django視圖的性質。如果您愿意接受不一致性,以便在綁定為身份驗證用戶時檢索屬性,請參閱`AUTH_LDAP_BIND_AS_AUTHENTICATING_USER`。
默認情況下,`LDAP`連接是未加密的,不會嘗試保護敏感信息,如密碼。當與本地主機上或本地網絡上的`LDAP`服務器進行通信時,這可能沒有問題。如果您需要到LDAP服務器的安全連接,則可以使用`ldaps:// URL`或啟用StartTLS擴展。后者通常是首選機制。要啟用`StartTLS`,請將`AUTH_LDAP_START_TLS`設置為`True`:
`AUTH_LDAP_START_TLS = True`
如果`LDAPBackend`從`python_ldap`收到`LDAPError`,它通常會吞下它并記錄警告。 如果您想對這些異常執行任何特殊處理,則可以將信號處理程序添加到`django_auth_ldap.backend.ldap_error`。 信號處理程序可以任何你喜歡的方式處理異常,包括重新提升異常或其他異常。