## 限制访问
最简单的使用组是限制允许登录的用户。如果设置了`AUTH_LDAP_REQUIRE_GROUP`,那么只有属于该组成员的用户才能成功进行身份验证。` AUTH_LDAP_DENY_GROUP`是相反的:如果有,该组的成员将被拒绝。
~~~
AUTH_LDAP_REQUIRE_GROUP = "cn=enabled,ou=groups,dc=example,dc=com"
AUTH_LDAP_DENY_GROUP = "cn=disabled,ou=groups,dc=example,dc=com"
~~~
但是,这两个设置本身可能不足以满足您的需求。 在这种情况下,您可以使用`LDAPGroupQuery`对象对用户组执行更复杂的匹配。 例如:
~~~
from django_auth_ldap.config import LDAPGroupQuery
AUTH_LDAP_REQUIRE_GROUP = (
(
LDAPGroupQuery("cn=enabled,ou=groups,dc=example,dc=com") |
LDAPGroupQuery("cn=also_enabled,ou=groups,dc=example,dc=com")
) &
~LDAPGroupQuery("cn=disabled,ou=groups,dc=example,dc=com")
)
~~~
上面这个例子的几个特征很重要。 首先,在一个设置中处理`AUTH_LDAP_REQUIRE_GROUP`和`AUTH_LDAP_DENY_GROUP`的情况。 其次,您可以在这些查询中使用三个运算符:`&, |, 和 ~: and, or, 和 not`
配置组时,可以始终从`user.ldap_user.group_dns`或`user.ldap_user.group_names`获取用户组的列表。 接下来的两节将介绍更多高级组的使用。