0

我在使用 django-auth-ldap 1.2.8 对 ldap 用户进行身份验证时遇到问题。我可以使用 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 中找不到?有人可以说如何克服这个错误吗?

4

0 回答 0