使用pythonldap进行修改时出现TLS错误

2024-06-10 06:27:18 发布

您现在位置:Python中文网/ 问答频道 /正文

Im当前与ldaps的连接出现问题。在389上连接到非TLS/SSL可以正常工作。但是我不能在这个频道上做任何修改。我得到一个错误UNWILLING_TO_PERFORM: {'info': '0000001F: SvcErr: DSID-031A0FC0, problem 5003 (WILL_NOT_PERFORM), data 0\n', 'desc': 'Server is unwilling to perform'}。一些google建议修改需要通过TLS/SSL进行。在

所以我试着通过636连接。事实证明这很麻烦。我试图使用忽略certerrors`ldap.set_选项(ldap.OPT_X_TLS_需要证书, ldap.OPT_X_TLS_从不)“然而,这一点也没有帮助。在

我经常得到{} 下面是连接片段。(我已经确认636是开放的,并且尝试了多个DC。我都尝试过连接字符串ldap:\\server:portldaps:\\serverldaps:\\server:port等)的各种组合

我包含与任务相关联的代码,该任务因UNWILLING_TO_PERFORM错误而失败。即使在使用高度特权的帐户时也会发生这种情况。在

在没有TLS的情况下使用

def changePassword(user_dn):
    for user in user_dn:
        new_password = pw_gen()
        unicode_pass = unicode('\"' + str(new_password) + '\"', 'iso-8859-1')
        password_value = unicode_pass.encode('utf-16-le')
        add_pass = [(ldap.MOD_REPLACE, 'unicodePwd', [password_value])]
        print user
        print new_password
        try:
            l.modify_s(user,add_pass) # `UNWILLING_TO_PERFORM:...'
        except Exception:
            traceback.print_exc()

TLS连接尝试

^{pr2}$

Tags: tosslnewserver错误tlsunicodepass