【问题标题】:change password with python-ldap使用 python-ldap 更改密码
【发布时间】:2016-06-27 16:31:17
【问题描述】:

我想更改 ldap 用户的密码。脚本是:

def changePassword(url,binddn,pw, newpw):
l = ldap.initialize(url)
ldap.
try:
    l.protocol_version=ldap.VERSION3
    l.simple_bind_s(binddn,pw)
except:
    print "Error Bind in changePassword"
    sys.exit(0)

old = {'userPassword':pw}
new = {'userPassword':newpw}
ldif = modlist.modifyModlist(old,new)
try:
    l.modify_s(binddn,ldif)
    l.unbind_s()
except:
    print "error"

但是当我调用这个函数时,我收到“错误”。 当我更改密码时,我的 LDAP 有 PPolicy 要求当前密码。

如何通过此 PPolicy 更改密码??

谁能帮帮我??

提前致谢 达里奥

【问题讨论】:

  • 如果删除try/except 怎么办?它是如何失败的?谢谢。
  • 如果先删除 try/except 并在 l.modify_s 之后删除我收到错误 ldap.UNWILLING_TO_PERFORM: {'info': '密码策略要求用户密码更改包括当前密码request', 'desc': '服务器不愿意执行'}

标签: python passwords ldap python-ldap


【解决方案1】:

对于 LDAPv3 服务器,您通常不应直接修改/替换用户密码,而应使用 LDAPv3 密码修改操作。使用 python-ldap,这是通过 passwd/passwd_s 完成的。例如:

import ldap
server = 'localhost'
l = ldap.initialize('ldap://%s' % server)
l.simple_bind_s("cn=Marice McCaugherty,ou=Product Testing,dc=example,dc=com", "ytrehguaCc")
l.passwd_s("cn=Marice McCaugherty,ou=Product Testing,dc=example,dc=com", "ytrehguaCc", "secret")

将绑定为列出的用户 DN,并将其密码从“ytrehguaCc”更改为“secret”。

【讨论】:

  • 您可能想添加一个示例来说明如何做到这一点。这对面临类似问题的人会有所帮助。
  • import ldap client = ldap.initialize("ldap://test.com:389") client.simple_bind_s("cn=nihao2,ou=test,dc=test,dc=com", 'nihao123!') client.passwd_s('cn=nihao2,ou=test,dc=test,dc=com', 'nihao123!', 'hello456@') 然后,我得到一个这样的错误:PROTOCOL_ERROR Traceback (most recent call last) ----> 1 client.passwd_s(cn=nihao2,ou=test,dc=test,dc=com', 'nihao123!', 'hello456@') ... PROTOCOL_ERROR: {'info': u'0000203D: LdapErr: DSID-0C0911AA, comment: Unknown extended request OID, data 0, v3839', 'desc': u'Protocol error'}
  • 您使用的是什么 LDAP 服务器?
  • 我用的是windows AD,当我用SSL改变我的协议时,它就可以了,只是因为我在没有SSL证书的情况下使用它。当我使用带有SSL的AD时,使用unicodePwd来设置修改密码就OK了。
  • AD 不是 LDAP,它类似于 LDAP。它有各种违反协议的行为。
【解决方案2】:

也许你必须直接在 modify_s 中使用以下 modlist [(ldap.MOD_REPLACE, 'userPassword', [newpasswd] )]

【讨论】:

    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多