繁体   English   中英

如何使用 ldap passwd_s 函数更改用户密码

[英]How to change the user password using ldap passwd_s function

我想通过提供旧密码和新密码来更改用户的密码。

import ldap
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
ldap.set_option(ldap.OPT_REFERRALS, 0)

con = ldap.initialize("ldaps://ldaps-direct.prod.mydomain.com")

tdn = "CN=test_user,OU=ServiceAccounts,OU=UserBase,DC=corp,DC=mydomain,DC=com"
new_password = "new_password"
old_password = "old_password"

client.passwd_s(tdn, '"%s"' % old_password, '"%s"' % new_password )

不幸的是我收到错误:

ldap.PROTOCOL_ERROR: {'desc': 'Protocol error', 'info': '0000203D: LdapErr: DSID-0C090F8B, comment: Unknown extended request OID, data 0, v2580'}

有办法解决吗?

Microsoft AD 不完全符合 LDAPv3 标准。 我不确定它是否支持 ldappasswd 操作。

从 python-ldap 文档:

对于 LDAP 操作,该模块包装了 OpenLDAP 的客户端库 libldap。

所以很有可能它不会处理 AD 的细节

有一个 python 模块,它具有更改微软密码的特定操作: https : //ldap3.readthedocs.io/ldap3.extend.microsoft.modifyPassword.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM