无法使用django-python3-ldap连接到ldap
我正在开发django网站,我想在我的应用程序中使用ldap身份验证。我使用Django 1.11通过Django-python3-ldap进行身份验证。 我使用ldapsearch测试了与ldap的连接,测试成功,结果如下:无法使用django-python3-ldap连接到ldap,python,django,python-3.x,openldap,ldap3,Python,Django,Python 3.x,Openldap,Ldap3,我正在开发django网站,我想在我的应用程序中使用ldap身份验证。我使用Django 1.11通过Django-python3-ldap进行身份验证。 我使用ldapsearch测试了与ldap的连接,测试成功,结果如下: ally@websrv:/web/demo_project_ally$ ldapsearch -x -W -D 'cn=admin,dc=myldap,dc=com' -b "dc=myldap,dc=com" "cn=ally ally" -H ldap://mylda
ally@websrv:/web/demo_project_ally$ ldapsearch -x -W -D 'cn=admin,dc=myldap,dc=com' -b "dc=myldap,dc=com" "cn=ally ally" -H ldap://myldap.com
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <dc=myldap,dc=com> with scope subtree
# filter: cn=ally ally
# requesting: ALL
#
# ally ally, my_ou, myldap.com
dn: cn=ally ally,ou=my_ou,dc=myldap,dc=com
cn: ally ally
givenName: ally
gidNumber: 500
homeDirectory: /home/users/aally
sn: ally
loginShell: /bin/sh
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
userPassword:: e01ENX1kNVJuSkw0bTV3RzR3PT0=
uidNumber: 1000
uid: aally
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
错误:
LDAP connect failed: LDAPInvalidCredentialsResult - 49 - invalidCredentials - None - None - bindResponse - None
这是我的
setting.py文件中ldap连接的django配置:
LDAP_AUTH_URL = "ldap://myldap.com:389"
LDAP_AUTH_USE_TLS = False
LDAP_AUTH_SEARCH_BASE = "dc=myldap,dc=com"
LDAP_AUTH_OBJECT_CLASS = "inetOrgPerson"
LDAP_AUTH_USER_FIELDS = {
"username": "uid",
"first_name": "givenName",
"last_name": "sn",
"email": "mail",
}
LDAP_AUTH_USER_LOOKUP_FIELDS = ("username",)
LDAP_AUTH_CLEAN_USER_DATA = "django_python3_ldap.utils.clean_user_data"
LDAP_AUTH_SYNC_USER_RELATIONS = "django_python3_ldap.utils.sync_user_relations"
LDAP_AUTH_FORMAT_SEARCH_FILTERS = "django_python3_ldap.utils.format_search_filters"
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_openldap"
LDAP_AUTH_ACTIVE_DIRECTORY_DOMAIN = None
LDAP_AUTH_CONNECTION_USERNAME = "admin"
LDAP_AUTH_CONNECTION_PASSWORD = "password"
#Print information about failed logins to your console by adding the following to your settings.py file.
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"handlers": {
"console": {
"class": "logging.StreamHandler",
},
},
"loggers": {
"django_python3_ldap": {
"handlers": ["console"],
"level": "INFO",
},
},
}
我在Ubuntu 16.04下工作,使用python3.5
我将此参考用于我的设置:
我能够使用以下方式执行LDAP用户的初始同步:
./manage.py ldap\u sync\u用户
请建议如何解决此问题。我也遇到了同样的问题,请尝试更改以下内容: 由此
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_openldap"
为此:
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_active_directory"
我也遇到了同样的问题。下面的更改解决我的问题
LDAP_AUTH_CONNECTION_USERNAME = "cn=admin,dc=myldap,dc=com"
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_active_directory"
这可能会有所帮助:@Dashdrum您引用的是不同的ldap后端连接模型,我尝试过使用它,但没有运气。非常感谢。
LDAP_AUTH_CONNECTION_USERNAME = "cn=admin,dc=myldap,dc=com"
LDAP_AUTH_FORMAT_USERNAME = "django_python3_ldap.utils.format_username_active_directory"