无法使用 LDP 身份验证提供程序对 Askbot 进行身份验证

Not able to authenticate Askbot with LDP authentication provider

无法在 Ubuntu 18.04 上验证 Askbot django 应用程序

能够 ping LDAP 服务器,但它仍然显示 - "Can't contact LDAP server"

错误日志显示:-

Traceback (most recent call last): File "/srv/askbot/venv/local/lib/python2.7/site-packages/askbot/deps/django_authopenid/ldap_auth.py", line 127, in ldap_authenticate_default get_attrs File "/srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py", line 854, in search_s return self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout=self.timeout) File "/srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py", line 847, in search_ext_s msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,clientctrls,timeout,sizelimit) File "/srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py", line 843, in search_ext timeout,sizelimit, File "/srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py", line 331, in _ldap_call reraise(exc_type, exc_value, exc_traceback) File "/srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py", line 315, in _ldap_call result = func(*args,**kwargs) SERVER_DOWN: {u'info': 'Transport endpoint is not connected', 'errno': 107, 'desc': u"Can't contact LDAP server"}

Ping 使用 ICMP 协议。 LDAP 使用到(通常)端口 389(或 LDAPS 的 636)的 TCP 连接。这是两个不同的东西。

所以你能ping通服务器只说明服务器在线。这并不意味着 LDAP 服务是 运行 或者防火墙没有阻止到正确端口的 TCP 流量。

您可以通过以下两种方式之一测试打开到 Ubuntu 上正确端口的 TCP 连接:

telnet yourserver 389

或者,

nmap yourserver 389

更多信息here

您可能需要安装 telnet 或 nmap 才能使它们正常工作。如果您使用的是 LDAPS(LDAP over SSL),那么您应该测试端口 636。