【问题标题】:python LDAP modify passwordpython LDAP修改密码
【发布时间】:2016-06-03 16:10:08
【问题描述】:

我有一个 Windows 2012 R2 服务器和一个 LDAP 服务器。我写了一个python脚本来修改用户的密码(用户,不是管理员,想要修改的是自己的密码。我有另一个功能,当你是管理员时修改密码,但我不想设置密码,但修改它)。这是我的代码示例:

#!/usr/bin/env python
#coding:utf-8

import ldap
import ldap.modlist as modlist

ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
ld = ldap.initialize('ldaps://xxx.xxx.xxx.xxx:636')
ld.simple_bind_s('XXXXXX@ad2012.local', 'XXXXXXX')

new = {'unicodePwd':[str('"XXXXXXXX"').decode('utf8').encode('utf-16-le')]}
old = {'unicodePwd':[str('"YYYYYYYY"').decode('utf8').encode('utf-16-le')]}

ldif = modlist.modifyModlist(old, new)
ld.modify_s('A DN',ldif)

但是当我运行它时,我有一个错误:

ldap.CONSTRAINT_VIOLATION: {'info': '0000052D: AtrErr: DSID-03191083, #1:\n\t0: 0000052D: DSID-03191083, 问题 1005 (CONSTRAINT_ATT_TYPE), 数据 0, Att 9005a (unicodePwd)\ n', 'desc': '违反约束'}

我尝试过解码/编码或不使用。 passwd_s() 也不起作用。 我在谷歌上搜索了很多,我为其他人找到了很多解决方案,但对我不起作用。

如果有人可以帮助我,在此先感谢。

【问题讨论】:

    标签: python passwords ldap


    【解决方案1】:

    您要关注的错误消息部分是'info': '0000052D。十六进制值 0000052D 转换为十进制 1325 的系统错误代码。该错误代码记录在 here

    ERROR_PASSWORD_RESTRICTION

    1325 (0x52D)

    无法更新密码。为新密码提供的值不符合长度、复杂性或历史要求 域。

    因此,您尝试设置的新密码似乎违反了分配给用户的密码策略。

    【讨论】:

    • 显然,即使我提供了一个很长的密码,包括数字、大写字母和符号,我总是遇到同样的问题......我的用户不在任何组中。如果我是管理员,我只能更改他的密码...
    • 谢谢,这是 GPO 的问题。我改变它们。现在,我有一个 0x56 错误,但是,我进步了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 2018-11-15
    • 2020-02-29
    • 2017-05-06
    • 1970-01-01
    相关资源
    最近更新 更多