Django身份验证Ldap完整示例

时间:2019-02-06 09:04:33

标签: django ldap django-auth-ldap

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

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

1 个答案:

答案 0 :(得分:0)

Here,您会看到一个很好的完整示例,其中显示了如何创建自定义LDAPBackend

您需要在settings.py中配置LDAP设置(如发布的链接所示),并将LDAPBackend添加到AUTHENTICATION_BACKENDS。您可以使用提供的默认LDAPBackend或创建一个自定义的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新手,我建议您在有关该主题的另一个问题中浏览this answer(以及另一个)。