如果LDAP身份验证失败,Django身份验证不会继续ModelBackend

2024-04-25 12:52:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我将django_ldap_auth的LDAPBackend用于实际用户,Django的ModelBackend用于功能用户。但是,LDAPBackend为每个能够登录的人创建一个Django用户,我可以在Django数据库中为该用户设置密码。在

问题是,如果用户的LDAP身份验证失败,但对Django数据库成功验证,那么他可以登录。我认为这不是一种理想的行为。在

但是,如果LDAP服务器由于任何原因而不可用,但只有在成功登录时用LDAP密码更新Django密码时,这可能会派上用场。在

我的问题有两个:

  • 是否可以(使用我自己的后端或其他东西,或者使用django_ldap_auth本身)将正确的密码保存到django数据库?在
  • 如果没有,如果LDAP服务器是可访问的,用户在LDAP数据库中,但是密码不匹配,即使密码与Django数据库相匹配,是否有可能使身份验证失败?在

Tags: django用户功能服务器auth身份验证数据库密码
1条回答
网友
1楼 · 发布于 2024-04-25 12:52:32

来自the docs

If a backend raises a PermissionDenied exception, authentication will immediately fail. Django won't check the backends that follow.

因此,如果LDAP后端返回None,那么Django将尝试使用模型后端进行身份验证。但是,如果它引发PermissionDenied,则登录将失败。在

相关问题 更多 >