Глядя на документацию для django_auth_ldap
, выясняется, что модуль фактически не проходит через пользователей LDAP и не загружает их в базу данных. Вместо этого он аутентифицирует пользователя по LDAP, а затем добавляет или обновляет его в auth_users
с информацией, которую он получает от LDAP , когда пользователь входит в систему .
Если вы хотите предварительно заполнить базу данных всеми пользователями в Active Directory, похоже, вам нужно написать сценарий, который напрямую запрашивает AD и вставляет пользователей.
Что-то вроде этого должно начать вас:
import ldap
l = ldap.initialize('ldap://your_ldap_server') # or ldaps://
l.simple_bind_s("cn=a_user,dc=example,dc=fr")
users = l.search_ext_s("memberOf=YourUserGroup",\
ldap.SCOPE_SUBTREE, \
"(sAMAccountName=a_user)", \
attrlist=["sAMAccountName", "displayName","mail"])
# users is now an array of members who match your search criteria.
# *Each* user will look something like this:
# [["Firstname"],["LastName"],["some@email.address"]]
# Note that each field is in an array, even if there is only one value.
# If you only want the first value from each, you can transform the results:
# users = [[field[0] for field in user] for user in users]
# That will transform each row into something like this:
# ["Firstname", "Lastname", "some@email.address"]
# TODO -- add to the database.
Я оставил вам обновление базы данных, поскольку у меня нет никакой информации о вашей настройке.
Если вам нужна дополнительная информация о запросах LDAP, ознакомьтесь с вопросами по LDAP здесь, в Stackoverflow - и я также нашел эту статью полезной .