Привязка к Active Directory с использованием django-auth-ldap - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь создать аутентификацию при входе пользователя в приложение django через Active Directory, используя django-auth-ldap . Проблема в том, что я не могу привязаться к AD, используя username (что эквивалентно sAMAccountName LDAP). Часть моего settings.py ниже:

import ldap
from django_auth_ldap.config import LDAPSearch

AUTHENTICATION_BACKENDS = [
    'django_auth_ldap.backend.LDAPBackend',
]

AUTH_LDAP_START_TLS = False
AUTH_LDAP_ALWAYS_UPDATE_USER = False
AUTH_LDAP_SERVER_URI = 'ldap://ip_address:389'
AUTH_LDAP_BIND_DN = ''
AUTH_LDAP_BIND_PASSWORD = ''
AUTH_LDAP_USER_SEARCH = LDAPSearch('DC=example,DC=com', ldap.SCOPE_SUBTREE, '(sAMAccountName=%(user)s)')
AUTH_LDAP_CONNECTION_OPTIONS = {
    ldap.OPT_REFERRALS: 0,
}

Журнал консоли:

ERROR search_s('DC=example,DC=com', 2, '(sAMAccountName=user)') raised OPERATIONS_ERROR({'desc': 'Operations error', 'info': '00000000: LdapErr: DSID-0C090627, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, vece'})
DEBUG search_s('DC=example,DC=com', 2, '(sAMAccountName=%(user)s)') returned 0 objects:
DEBUG Authentication failed for user: failed to map the username to a DN.

Есть идеи, почему это не работает?

1 Ответ

0 голосов
/ 07 ноября 2018

Анонимный доступ на чтение не включен по умолчанию. Чтобы выполнить операцию поиска, заполните AUTH_LDAP_BIND_DN и AUTH_LDAP_BIND_PASSWORD действительным аккаунтом. Обычно я создаю выделенные «системные» учетные записи (т. Е. Не учетную запись реального человека, потому что ваша аутентификация начинает терпеть неудачу каждый раз, когда пользователь меняет свой пароль).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...