簡體   English   中英

無法從python-ldap連接到Windows Server 2016上的ldap

[英]Unable to connect to ldaps on windows server 2016 from python-ldap

我過去已成功使用python-ldap通過ldaps連接到Windows 2012 R2服務器。 我為此使用的過程如下:

python代碼:

import ldap
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
ldap.set_option(ldap.OPT_DEBUG_LEVEL, 255)
ip = '<redacted>'
url = "%s://%s:%d" % ('ldaps', ip, 636)
ld = ldap.initialize(url)
ld.protocol_version = 3
ld.set_option(ldap.OPT_REFERRALS, ldap.OPT_OFF)
user = '<redacted>'
passwd = '<redacted>'
ld.simple_bind_s('<redacted>\%s' % user, passwd)

在Windows服務器上,我使用“服務器管理器”添加了“ AD CS”角色,並創建了根證書。 我不在乎僅使用一些加密來驗證證書。 創建根證書后,在服務器上啟用了LDAPS,並且此代碼運行無錯誤。

現在,我在Windows Server 2016上執行了完全相同的步驟,結果不是很好。 我設法從同一腳本中得到一些錯誤。 通常是“收到了意外長度的TLS數據包”。 或“推送功能出錯”。 我搜索了幾個小時,但找不到解決方案。 是否有人知道在Windows服務器上進行配置是否需要額外的步驟,或者有關我的腳本的某些信息不正確?

我正在測試的客戶端正在使用python 2.7和ubuntu 14.04。 pip2.7已將python-ldap庫更新為最新版本。 Lere是失敗的腳本運行的示例:

ldap_create
ldap_url_parse_ext(ldaps://<redacted>:636)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP <redacted>:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying <redacted>:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: can't connect: Error in the push function..
ldap_err2string
Traceback (most recent call last):
  File "test_ldap.py", line 13, in <module>
    ld.simple_bind_s('<redacted>\%s' % user, passwd)
  File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 228, in simple_bind_s
    msgid = self.simple_bind(who,cred,serverctrls,clientctrls)
  File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 222, in simple_bind
    return self._ldap_call(self._l.simple_bind,who,cred,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls))
  File "/usr/local/lib/python2.7/dist-packages/ldap/ldapobject.py", line 108, in _ldap_call
    result = func(*args,**kwargs)
ldap.SERVER_DOWN: {'info': 'Error in the push function.', 'errno': 104, 'desc': "Can't contact LDAP server"}

因此,這似乎是我不了解的Windows之一。 在第二天開始工作后,上面的相同代碼剛剛開始工作。 似乎Windows服務器可能需要許多小時才能允許LDAPS可以連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM