Невозможно авторизовать пользователя ldap с помощью django-auth-ldap - PullRequest
0 голосов
/ 14 марта 2019

У меня проблемы с аутентификацией пользователей ldap с помощью django-auth-ldap 1.2.8. Я могу войти в систему с помощью Apache Directory Studio следующим образом:

hostname: private.pai.org
port: 389
Auth: Bind DN – cn=testuser1@test.com,ou=users,dc=ldap,dc=pai,dc=org`
Bind Password: thePassword

enter image description here

Но при попытке с Django со следующими настройками:

import ldap
from django_auth_ldap.config import LDAPSearch,GroupOfUniqueNamesType

# logging
import logging
logger = logging.getLogger('django_auth_ldap')
logger.addHandler(logging.StreamHandler())
logger.setLevel(logging.DEBUG)

# where to search
AUTH_LDAP_SERVER_URI = "ldap://private.pai.org:389"
AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=users,dc=ldap,dc=pai,dc=org",
ldap.SCOPE_SUBTREE, "(cn=%(user)s)"
)

# group settings
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("dc=ldap,dc=pai,dc=org",
ldap.SCOPE_SUBTREE, "(objectClass=GroupOfUniqueNames)"
)

AUTH_LDAP_GROUP_TYPE = GroupOfUniqueNamesType()

# disable caching
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 0
AUTH_LDAP_CACHE_GROUPS = 0

# bind user to django groups
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
 "is_active": ("ou=users,dc=ldap,dc=pai,dc=org" ),
 "is_staff": ("ou=users,dc=ldap,dc=pai,dc=org")
}

AUTH_LDAP_USER_ATTR_MAP = {
"email": "cn"
}

Я получаю следующую ошибку

search_s('ou=users,dc=ldap,dc=pai,dc=org', 2, '(cn=testuser1@test.com)') raised NO_SUCH_OBJECT({'desc': u'No such object'},)

Похоже, что cn нельзя найти в ou? Может кто-нибудь сказать, как преодолеть эту ошибку?

...