## 组镜像
将`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`被忽略。