试图使用django-python3-LDAP连接到LDAP,但目标计算机正在主动拒绝
我正在开发一个django应用程序,并试图使用django_python3_ldap连接到我公司的ldap和AD。我在我的settings.py中遵循了文档的基本设置,但当我尝试使用python manage.py ldap_sync_用户时,我遇到了这个错误试图使用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
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)