我正在使用django_auth_ldap针对没有以有用的方式组织的大型企业 ActiveDirectory 系统对 Django 项目的用户进行身份验证(而且我没有能力更改它)。因此,我必须单独添加用户,这样我就不会得到任何可以针对 LDAP 进行身份验证的用户都能够登录系统。可以使用在命令行上添加 LDAP 用户
from django_auth_ldap.backend import LDAPBackend
user = LDAPBackend().populate_user('alice')
但我不能使用管理页面做同样的事情(添加用户强制我输入密码,而不是让帐户继承已经存在的 LDAP 凭据。)
似乎没有一种简单/聪明的方法可以在不必编写 django 管理页面的情况下完成此操作(尽管如果我在这方面错了,请纠正我)。如何添加一个简单的管理页面,只创建一个用户而不设置密码或其他任何东西?
我了解基本机制基本上涉及执行以下操作:
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
UserAdmin.add_form_template = ('addLDAPuser.html')
admin.site.unregister(User)
admin.site.register(User,UserAdmin)
但是我在制作模板和处理逻辑方面仍然很模糊,这样我最终不会得到一堆用户帐户,这些用户帐户将成功地django.contrib.auth.backends.ModelBackend
使用空密码进行身份验证。(显然,我可以django.contrib.auth.backends.ModelBackend
从insettings.py 中删除AUTHENTICATION_BACKENDS
,但这也使我无法将本地管理员帐户与 LDAP 分开。)