Here 您可以看到一个完整的示例,非常有指导性地展示了如何创建自定义LDAPBackend。
您需要在settings.py 中配置您的LDAP 设置(如您发布的链接所示)并将您的LDAPBackend 添加到AUTHENTICATION_BACKENDS。您可以使用提供的默认 LDAPBackend 或创建自定义的并使用它。
使用django-auth-ldap提供的默认LDAPBackend:
AUTHENTICATION_BACKENDS = (
'django_auth_ldap.backend.LDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
如果您需要为身份验证添加额外的逻辑,请使用自定义 LDAPBackend:
AUTHENTICATION_BACKENDS = (
'accounts.backends.MyLDAPBackend',
'django.contrib.auth.backends.ModelBackend',
)
然后在accounts/backends.py:
from django_auth_ldap.backend import LDAPBackend
class MyLDAPBackend(LDAPBackend):
""" A custom LDAP authentication backend """
def authenticate(self, username, password):
""" Overrides LDAPBackend.authenticate to add custom logic """
user = LDAPBackend().authenticate(self, username, password)
""" Add custom logic here """
return user
查看上面链接的示例以获取更多详细信息。
如果您是 LDAP 新手,我建议您在有关此主题的另一个问题中查看 this answer(以及另一个)。
更新 django-auth-ldap 的新版本
感谢@wolf2600 指出,现在您需要覆盖authenticate_ldap_user 而不是authenticate。