django-python3-ldap认证

时间:2016-06-16 14:28:34

标签: django python-3.x ldap django-authentication

我在Django中使用django-python3-ldap进行LDAP身份验证。这完全正常,但每当LDAP用户(成功)进行身份验证时,用户详细信息都存储在本地Django数据库(auth_user表)中。

我现在的问题是什么时候一样 (LDAP)用户尝试下次验证,用户将通过LDAP或默认的Django身份验证进行身份验证(因为用户详细信息现在存储在本地Django数据库中)?

如果用户使用本地Django数据库进行身份验证,那么即使用户从LDAP服务器中删除,用户仍然可以访问?这对我来说真的很重要吗?

如果是这种情况,那么每次用户登录时都会从数据库(auth_user表)中删除LDAP用户详细信息,并在每次用户登录时创建?我们非常感谢任何正确方向的帮助。感谢您的宝贵意见。

1 个答案:

答案 0 :(得分:0)

来自文档:

  

当用户尝试进行身份验证时,将建立与LDAP的连接   服务器,应用程序尝试使用提供的绑定   用户名和密码。如果绑定尝试成功,则为用户   详细信息从LDAP服务器加载并保存在本地Django中   用户模型。本地模型只创建一次,详细信息将   每次登录时都要使用LDAP记录详细信息进行更新。

每次都通过绑定进行身份验证,并且每次都会更新LDAP中的信息(正如您配置的那样)。如果从LDAP中删除,Django用户将不会从Django的用户表中删除;如果您使用Django默认身份验证设置多个身份验证后端,则用户应该能够登录(可能在密码重置后),如果从LDAP中删除。如果您查看auth_user表,您会注意到使用Django auth的用户使用pbkdf2_sha256进行了密码散列,而LDAP用户密码则没有。