试图使用django-python3-LDAP连接到LDAP,但目标计算机正在主动拒绝

试图使用django-python3-LDAP连接到LDAP,但目标计算机正在主动拒绝,python,django,active-directory,ldap,Python,Django,Active Directory,Ldap,我正在开发一个django应用程序,并试图使用django_python3_ldap连接到我公司的ldap和AD。我在我的settings.py中遵循了文档的基本设置,但当我尝试使用python manage.py ldap_sync_用户时,我遇到了这个错误 LDAP connect failed: ('unable to open socket', [(datetime.datetime(2018, 5, 25, 12, 25, 36, 77877), <class 'ldap3.co

我正在开发一个django应用程序,并试图使用django_python3_ldap连接到我公司的ldap和AD。我在我的settings.py中遵循了文档的基本设置,但当我尝试使用python manage.py ldap_sync_用户时,我遇到了这个错误

LDAP connect failed: ('unable to open socket', [(datetime.datetime(2018, 5, 25, 12, 25, 36, 77877), <class 'ldap3.core.exceptions.LDAPSocketOpenError'>, LDAPSocketOpenError('socket connection error while opening: [WinError 10061] No connection could be made bec
ause the target machine actively refused it',), ('::1', 389, 0, 0)), (datetime.datetime(2018, 5, 25, 12, 25, 37, 78809), <class 'ldap3.core.exceptions.LDAPSocketOpenError'>, LDAPSocketOpenError('socket connection error while opening: [WinError 10061] No connect
ion could be made because the target machine actively refused it',), ('127.0.0.1', 389))])
CommandError: Could not connect to LDAP server

但我不认为这是一个配置问题,因为从我看到的所有谷歌帖子和其他帖子来看,这似乎是阻止我访问的公司防火墙?或者我正在使用的LDAP_AUTH_CONNECTION_用户名没有权限?有没有其他方法可以做到这一点 在Windows上,您可以在PowerShell中使用您的域名代替domain.com来测试网络连接

(New-Object Net.Sockets.TcpClient).Connect("domain.com", 389)
没有输出意味着它成功了。如果失败,它会告诉你一条红色的错误消息

如果这不起作用,请尝试其他方法之一。AD LDAP可以在4个端口中的任意一个上工作:

389:LDAP-读取/写入单个域-如果不指定端口,这是默认值 636:SSL上的LDAP-与389相同,但已加密 3268:全局目录-如果您有多个域,则对您的广告林是只读的,否则它与389没有区别,只读除外 3269:通过SSL的全局编录 如果其他端口中有一个正常工作,您可以在代码中指定它,通常如下所示:LDAP://domain.com:3268


我知道广告,但我对python不太了解,所以我无法在细节上帮助您。

谢谢!我也是这么想的,但我不太明白为什么我可以通过单一登录身份验证建立连接,所以如果我使用conn=ldap.initialize登录ldap://192.168.122.64'Windows服务器的IP地址>>>conn.protocol\u version=3>>>conn.set\u optiondap.OPT\u引用,0>>>连接简单绑定Administrator@mooctest.local“,”yourpassword“测试97、[]、2、[]的帐户它可以工作,但当我将它放在我的应用程序上时会出现此错误?你知道为什么吗?我现在才注意到这一点,但例外情况是:'127.0.0.1',389。它似乎没有使用你刚才给出的192个IP地址。比如说,192个IP地址不是我的实际IP地址,但这是否意味着无论我提供什么IP,它都没有使用那个IP地址?所以我提供了错误的IP地址?我不能说你是否给了它错误的IP地址,但它似乎试图连接到本地机器。唯一可行的方法是在域控制器上运行。您是否尝试过使用域名LDAP://domain.com而不是IP?
(New-Object Net.Sockets.TcpClient).Connect("domain.com", 389)