Я пытаюсь аутентифицировать своих django пользователей через интерфейс ldap контроллера домена. Мой тестовый код успешно работал для связи с активным каталогом. Но настройка django для принятия этого не работала до сих пор. Мой тест для входа через браузер с именем хоста / администратором не сработал: пожалуйста, введите правильное имя пользователя и пароль для учетной записи персонала. Учтите что оба поля могут быть чувствительны к регистру. Верны ли мои настройки в settings.py и нужно ли их активировать для django (или apache)? Какое имя пользователя я должен использовать для входа в систему при django имени пользователя? Как в windows логин? python проверка manage.py не приводит к сбоям.
Вот моя выдержка settings.py:
import ldap
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
AUTH_LDAP_SERVER_URI = "ldap://<IP Adress>"
AUTH_LDAP_BIND_DN = "cn=<existing_bind_user>,ou=<xxx>,dc=<domain>,dc=com"
AUTH_LDAP_BIND_PASSWORD = "<password>"
AUTH_LDAP_USER_DN_TEMPLATE = 'sAMAccountName=%(user)s,ou=<xxx>,dc=<domain>,dc=com'
#Inside the ou "Django" are the 3 different groups G_Django_Admin,G_Django_User,...
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=Django,ou=<xxx>,dc=<domain>,dc=com",ldap.SCOPE_SUBTREE,"(objectClass=groupOfNames)",)
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType(name_attr="cn")
AUTH_LDAP_USER_ATTR_MAP = {
"username": "sAMAccountName",
"first_name": "givenName",
"last_name": "sn",
"email": "mail"}
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=G_Django_User,ou=Django,ou=<xxx>,dc=<domain>,dc=com",
"is_staff": "cn=G_Django_Staff,ou=Django,ou=<xxx>,dc=<domain>,dc=com",
"is_superuser": "cn=G_Django_Admin,ou=Django,ou=<xxx>,dc=<domain>,dc=com",
}
AUTH_LDAP_ALWAYS_UPDATE_USER = True
AUTH_LDAP_FIND_GROUP_PERMS = True
AUTH_LDAP_CACHE_TIMEOUT = 3600
AUTHENTICATION_BACKENDS = (
"django_auth_ldap.backend.LDAPBackend",
"django.contrib.auth.backends.ModelBackend",
)
С уважением, Берни