这里提供了一个非常好的示例,指导您如何创建自定义LDAPBackend
。
您需要在settings.py
中配置您的LDAP设置(如链接所示),并将您的LDAPBackend
添加到AUTHENTICATION_BACKENDS
。 您可以使用提供的默认LDAPBackend
或创建自定义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新手,我建议您查看此答案(以及另一个与此主题相关的问题)。
更新 django-auth-ldap 的新版本说明
感谢 @wolf2600 指出,现在你需要重写 authenticate_ldap_user
而不是 authenticate
。