У меня проблемы с аутентификацией пользователей 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
Но при попытке с 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?
Может кто-нибудь сказать, как преодолеть эту ошибку?