使用 python Django 的 Ldap 连接测试

Ldap connection test using python Django

我正在使用下面的代码来测试 ldap 连接,但是它失败了 'info':'Invalid DN syntax','desc':'Invalid DN syntax'}。

import ldap
AD_LDAP_URL = 'ldap://test.example.com'
username = 'User'
password = 'PassWord'
try:
  ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
  l = ldap.initialize(AD_LDAP_URL)
  l.simple_bind_s(username, password)
except ldap.NO_SUCH_OBJECT, e:
  print "Auth error: No user "
except ldap.INVALID_CREDENTIALS, e:
  print 'error'
except ldap.LDAPError, e:
  print e

发生这种情况是因为您应该将用户的 DN 发送到绑定方法(或 simple_bind_s),而不仅仅是用户名。 有效 DN 的示例 - cn=user,dc=example,dc=com

P.S。您可以使用一些工具来更轻松地在 LDAP 中导航(例如 jXplorer 允许复制对象的 DN)。