我使用django_auth_ldap对Django项目的用户进行身份验证,该系统是针对一个大型的公司ActiveDirectory系统进行的,该系统没有有效的组织方式(而且我没有能力更改它)。因此,我必须单独添加用户,这样我就不会遇到任何能够验证LDAP是否能够登录系统的用户。可以使用在命令行上添加LDAP用户
from django_auth_ldap.backend import LDAPBackend
user = LDAPBackend().populate_user('alice')
但是我不能使用admin页面来做同样的事情(添加用户会迫使我输入密码,而不是让帐户继承已经存在的LDAP凭据)
似乎不需要编写一个django管理页面就可以实现这一点(尽管如果我错了,请纠正我)。如何添加一个简单的管理页面,只创建一个用户,而不设置密码或其他任何东西?在
我了解基本的机制基本上包括做以下事情:
^{pr2}$但是我仍然不清楚如何创建模板和处理逻辑,这样我就不会只得到一堆用户帐户,这些帐户将使用空密码成功地针对django.contrib.auth.backends.ModelBackend
进行身份验证。(显然,我可以将django.contrib.auth.backends.ModelBackend
从AUTHENTICATION_BACKENDS
中删除设置.py,但这也使我无法将本地管理员帐户与LDAP分开。)
不幸的是,我不认为没有一个干净的方法可以不写你的自定义管理页面。在
不过,我不会那么害怕的。只需为授权用户使用不需要密码的自定义表单建模。在
您可以尝试扩展标准用户模型并重写其save()方法。Make sure you read up on the consequences of overriding the save method here。这样的模型可以是这样的:
如果不向用户提供密码,则用户无法使用密码字段登录。希望这意味着您的LDAP后端将是LDAP用户进行身份验证的唯一方法。。在
相关问题 更多 >
编程相关推荐