【问题标题】:How to change the user password using ldap passwd_s function如何使用 ldap passwd_s 函数更改用户密码
【发布时间】:2020-01-29 02:12:26
【问题描述】:

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

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'}

有办法解决吗?

【问题讨论】:

    标签: python active-directory ldap


    【解决方案1】:

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

    来自 python-ldap 文档:

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

    因此它很有可能无法处理 AD 的细节

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 1970-01-01
      • 2016-07-29
      • 2012-06-26
      • 1970-01-01
      相关资源
      最近更新 更多