## 設置
`AUTH_LDAP_ALWAYS_UPDATE_USER`
默認值:`True`
如果為`True`,則每次用戶登錄時,`User`對象的字段都將使用`LDAP`目錄中的最新值進行更新,否則只有在自動創建`User`對象時才會填充`User`對象。
`AUTH_LDAP_AUTHORIZE_ALL_USERS`
默認:`False`
如果為`True`,則`LDAPBackend`將能夠為任何`Django`用戶提供權限,而不管后端是否對其進行身份驗證。
`AUTH_LDAP_BIND_AS_AUTHENTICATING_USER`
默認:`False`
如果為`True`,那么身份驗證會將綁定的`LDAP`連接保留為身份驗證用戶,而不是在身份驗證成功后強制使用默認憑據重新綁定。 如果您沒有能夠訪問用戶屬性的全局證書,這可能是可取的。 `django-auth-ldap`從不存儲用戶的密碼,所以這只適用于用戶身份驗證的請求。 因此,這個設置的缺點是,`LDAP`結果可能會根據用戶是否在`Django`視圖中進行過身份驗證而有所不同,這可能會使代碼不直接關注身份驗證。
`AUTH_LDAP_BIND_DN`
默認值:''(空字符串)
綁定到`LDAP`服務器時使用的可分辨名稱(使用`AUTH_LDAP_BIND_PASSWORD`)。 使用空字符串(默認)進行匿名綁定。 為了驗證用戶,我們將綁定該用戶的DN和密碼,但對于所有其他`LDAP`操作,我們將在此設置中綁定為`DN`。 例如,如果`AUTH_LDAP_USER_DN_TEMPLATE`未設置,我們將使用它來搜索用戶。 如果`AUTH_LDAP_FIND_GROUP_PERMS`為`True`,我們也將使用它來確定組成員資格。
`AUTH_LDAP_BIND_PASSWORD`
默認值:''(空字符串)
與`AUTH_LDAP_BIND_DN`一起使用的密碼。
`AUTH_LDAP_CACHE_GROUPS`
默認:`False`
如果為`True`,則`LDAP`組成員身份將使用`Django`的緩存框架進行緩存。 緩存超時可以使用`AUTH_LDAP_GROUP_CACHE_TIMEOUT`進行自定義。
`AUTH_LDAP_CONNECTION_OPTIONS`
默認:{}
通過`LDAPObject.set_option()`傳遞給每個到`LDAP`服務器的連接的選項字典。 鍵是`ldap.OPT_ *`常數。
`AUTH_LDAP_DENY_GROUP`
默認:無
一個小組的尊敬的名字; 對于屬于該組的任何用戶,認證將失敗。
`AUTH_LDAP_FIND_GROUP_PERMS`
默認:`False`
如果為`True`,則`LDAPBackend`將根據經過身份驗證的用戶所屬的`LDAP`組提供組權限。 `AUTH_LDAP_GROUP_SEARCH`和`AUTH_LDAP_GROUP_TYPE`也必須設置。
`AUTH_LDAP_GLOBAL_OPTIONS`
默認:{}
要傳遞給`ldap.set_option()`的選項字典。 鍵是`ldap.OPT_ *`常數。
**注意**
由于其全球性,該設置忽略了設置前綴。 無論安裝了多少個后端,在我們加載`ldap`模塊的時候,這個設置都被默認的名字引用一次。
`AUTH_LDAP_GROUP_CACHE_TIMEOUT`
默認:無
如果`AUTH_LDAP_CACHE_GROUPS`為`True`,則這是組成員身份的高速緩存超時。 如果沒有,全局緩存超時將被使用。
`AUTH_LDAP_GROUP_SEARCH`
默認:無
查找用戶可能屬于的所有`LDAP`組的`LDAPSearch`對象。 如果您的配置對`LDAP`組進行任何引用,則必須設置此和`AUTH_LDAP_GROUP_TYPE`。
`AUTH_LDAP_GROUP_TYPE`
默認:無
描述由`AUTH_LDAP_GROUP_SEARCH`返回的組類型的`LDAPGroupType`實例。
`AUTH_LDAP_MIRROR_GROUPS`
默認:無
如果為`True`,則`LDAPBackend`將在`Django`數據庫中鏡像用戶的`LDAP`組成員資格。每當用戶進行身份驗證時,我們都會將他們的所有`LDAP`組創建為`Django`組,并更新他們的`Django`組成員資格以完全匹配他們的`LDAP`組成員資格。如果`LDAP`服務器具有嵌套組,則`Django`數據庫將以扁平表示結束。
這也可以是一個列表或其他的集合名稱集合,在這種情況下,我們只會鏡像這些組,而不用單獨留下。如果設置了`AUTH_LDAP_MIRROR_GROUPS_EXCEPT`,則忽略此項。
`AUTH_LDAP_MIRROR_GROUPS_EXCEPT`
默認:無
如果這不是無,它必須是一個列表或其他集合的名稱。這將啟用組鏡像,除了我們永遠不會改變指定組的成員資格。在這種情況下,`AUTH_LDAP_MIRROR_GROUPS`被忽略。
`AUTH_LDAP_PERMIT_EMPTY_PASSWORD`
默認:`False`
如果為`False`(缺省值),則使用空密碼進行身份驗證將立即失敗,而不進行任何`LDAP`通信。這是一個安全的默認設置,因為一些`LDAP`服務器被配置為允許綁定成功,沒有密碼,可能是在一個較低的訪問級別。如果您需要使用此`LDAP`功能,則可以將此設置更改為`True`。
`AUTH_LDAP_REQUIRE_GROUP`
默認:無
一個小組的尊敬的名字; 對于不屬于這個組的用戶,認證將失敗。 這也可以是一個`LDAPGroupQuery`實例。
`AUTH_LDAP_SERVER_URI`
默認:'`ldap:// localhost`'
`LDAP`服務器的`URI`。 這可以是您的底層`LDAP`庫支持的任何`URI`。
`AUTH_LDAP_START_TLS`
默認:`False`
如果為`True`,則與`LDAP`服務器的每個連接都將調用`start_tls_s()`以通過標準`LDAP`端口啟用`TLS`加密。 有許多配置選項可以賦予影響`TLS`連接的`AUTH_LDAP_GLOBAL_OPTIONS`。 例如,`ldap.OPT_X_TLS_REQUIRE_CERT`可以設置為`ldap.OPT_X_TLS_NEVER`來禁用證書驗證,也許允許自簽名證書。
`AUTH_LDAP_USER_QUERY_FIELD`
默認:無
用戶模型中的字段用于查詢數據庫中的身份驗證用戶。 如果未設置,則使用模型類的`USERNAME_FIELD`的值。 設置時,用于查詢的值通過`AUTH_LDAP_USER_ATTR_MAP`獲取。
`AUTH_LDAP_USER_ATTRLIST`
默認:無
要為已認證的用戶加載的屬性名稱列表。 通常情況下,您可以忽略這一點,`LDAP`服務器將發回目錄條目的所有屬性。 你可能需要重寫這個的一個原因是獲取操作屬性,通常不包括:
~~~
AUTH_LDAP_USER_ATTRLIST = ['*','+']
AUTH_LDAP_USER_ATTR_MAP
~~~
默認:{}
從用戶字段名稱到LDAP屬性名稱的映射。 用戶的用戶對象將在登錄時從其LDAP屬性填充。
`AUTH_LDAP_USER_DN_TEMPLATE`
默認:無
一個字符串模板,根據用戶名描述任何用戶的可分辨名稱。 這必須包含占位符%(用戶)。
`AUTH_LDAP_USER_FLAGS_BY_GROUP`
默認:{}
從布爾用戶字段名稱到`LDAP`組的可分辨名稱的映射。 根據用戶是否是該組的成員,將相應的字段設置為`True`或`False`。
值可以是簡單組成員測試的字符串,也可以是更復雜情況下的`LDAPGroupQuery`實例。
`AUTH_LDAP_USER_SEARCH`
默認:無
將在目錄中找到用戶的`LDAPSearch`對象。 過濾器參數應包含用戶名的占位符`%(user)`。 它必須返回一個結果才能成功完成身份驗證。