我为真实用户使用django_ldap_auth的LDAPBackend,为功能用户使用Django的ModelBackend . 但是,LDAPBackend为每个能够登录的人创建一个Django用户,我可以在Django数据库中为该用户设置密码 .
问题是,如果用户的LDAP身份验证失败,但成功对抗Django数据库,他可以登录 . 这不是一个理想的行为(我认为) .
但是,如果LDAP服务器由于任何原因不可用,这可能会派上用场,但前提是登录成功后,使用LDAP密码更新Django密码 .
我的问题是双重的:
-
是否可以(使用我自己的后端或其他东西或使用django_ldap_auth本身)将正确的密码保存到Django数据库?
-
如果没有,如果LDAP服务器可访问,用户存在于LDAP数据库中,但密码不匹配,即使该密码与Django数据库匹配,是否可能验证失败?
1 回答
来自the docs:
因此,如果LDAP后端返回None,则Django将尝试使用Model后端进行身份验证 . 但是,如果它引发
PermissionDenied
,则登录将失败 .