## 搜索/绑定
现在您可以与LDAP服务器通话,下一步是验证用户名和密码。 有两种方法可以做到这一点,称为搜索/绑定和直接绑定。 第一个涉及以匿名方式或使用固定帐户连接到LDAP服务器,并搜索认证用户的专有名称。 然后我们可以尝试再次使用用户的密码进行绑定。 第二种方法是从他的用户名中派生用户的DN,并尝试直接绑定为用户。
因为LDAP搜索出现在配置的其他地方,所以提供LDAPSearch类来封装搜索信息。 在这种情况下,过滤器参数应该包含占位符%(user)。 搜索/绑定方法的一个简单的配置看起来像这样(一些默认值包括为了完整性):
~~~
import ldap
from django_auth_ldap.config import LDAPSearch
AUTH_LDAP_BIND_DN = ""
AUTH_LDAP_BIND_PASSWORD = ""
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=example,dc=com",
ldap.SCOPE_SUBTREE, "(uid=%(user)s)")
~~~
这将执行一个匿名绑定,在“`ou = users,dc = example,dc = com`”下搜索一个uid与用户名匹配的对象,并尝试使用该DN和用户密码进行绑定。 搜索必须返回一个结果,否则认证将失败。 如果您不能匿名搜索,则可以将`AUTH_LDAP_BIND_DN`设置为授权用户的专有名称,将`AUTH_LDAP_BIND_PASSWORD`设置为该密码。