## 組鏡像
將`LDAP`組成員身份轉換為權限的第二種方法是鏡像組自身。這種方法有一些重要的缺點,如果可能的話應該避免。首先,會員只有在用戶驗證時才會更新,這對于長時間會話超時的站點尤其不適合。
如果`AUTH_LDAP_MIRROR_GROUPS`為`True`,則每次用戶登錄時,`LDAPBackend`都將使用用戶的`LDAP`組更新數據庫。任何不存在的組都將被創建,并且用戶的`Django`組成員身份將被更新為完全匹配他們的`LDAP`組成員資格。如果`LDAP`服務器具有嵌套組,則`Django`數據庫將以扁平表示結束。對于組鏡像有任何作用,您當然需要將`ModelBackend`安裝為身份驗證后端。
默認情況下,我們假定`LDAP`是組成員的唯一權限;如果您從`LDAP`中的組中刪除用戶,那么他們將在下次登錄時從相應的`Django`組中刪除。也有可能讓`django-auth-ldap`忽略某些`Django`組,這可能是因為它們是手動管理的或通過其他機制。如果`AUTH_LDAP_MIRROR_GROUPS`是一個組名列表,我們將管理這些組,而不是其他人。如果`AUTH_LDAP_MIRROR_GROUPS_EXCEPT`是一個組名列表,我們將管理除了那些名字以外的所有組;在這種情況下,`AUTH_LDAP_MIRROR_GROUPS`被忽略。