Django 身份验证 LDAP 完整示例

4 django ldap django-auth-ldap

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

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

gde*_*ef_ 5

在这里你可以看到一个完整的例子,很好地指导展示了如何创建自定义LDAPBackend.

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

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

AUTHENTICATION_BACKENDS = (
    'django_auth_ldap.backend.LDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
)
Run Code Online (Sandbox Code Playgroud)

LDAPBackend如果您需要向身份验证添加额外的逻辑,请使用自定义:

AUTHENTICATION_BACKENDS = (
    'accounts.backends.MyLDAPBackend',
    'django.contrib.auth.backends.ModelBackend',
)
Run Code Online (Sandbox Code Playgroud)

然后在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
Run Code Online (Sandbox Code Playgroud)

查看上面链接的示例以获取更多详细信息。

如果您不熟悉LDAP,我建议您在有关此主题的另一个问题中查看此答案(以及另一个)。