首页 > 解决方案 > Django Authentication Ldap 完整示例

问题描述

我部分理解了 Django Ldap 身份验证。谁能给出开发使用Django Authentication Ldap的非常基本的应用程序的完整示例。

我浏览了这个资源并试图理解很多东西,但我仍然无法理解如何在实现中使用它。如何创建将与 LdapBackend 类一起使用的用户模型,以及如何在 authenticate() 方法等中编写许多东西。

标签: djangoldapdjango-auth-ldap

解决方案


在这里,您可以看到一个完整的示例,非常有指导性地展示了如何创建自定义LDAPBackend.

您需要在settings.py(如您发布的链接中所示)中配置您的 LDAP 设置并将您的添加LDAPBackendAUTHENTICATION_BACKENDS. 您可以使用提供的默认 LDAPBackend 或创建自定义的并使用它。

LDAPBackend使用提供的默认值django-auth-ldap

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您需要覆盖authenticate_ldap_user


推荐阅读