现象
通过AD的某个账号绑定LDAP,使用ldap_mod_replace修改密码时报错:Warning: ldap_mod_replace(): Modify: Insufficient access
DEBUG模式的详细错误:res_error: <00000005: SecErr: DSID-031A11EF, problem 4003 (INSUFF_ACCESS_RIGHTS)
原因
绑定LDAP的用户不具有【重置密码(Reset password)】的权限,导致报错。
解决方法
创建用户组收容绑定LDAP的用户,并且通过委派控制(Delegate Control)来添加【重置密码(Reset password)】的权限即可成功修改。
修改密码实例的核心代码如下
1 | # 建立连接 |
一个相关错误的解释
###”LdapErr: DSID-0C09050E, comment: AcceptSecurityContext error
表示 LDAP 认证失败,可能的原因
- 用户密码已过期
- 用户需要在首次登录时更改密码,但当前客户端不支持密码更改
- 账户被锁定
顺便安利一个好用免费的域信息查询/排错工具
NetTools
NetTools 拥有超过 90 种功能,旨在帮助您排除故障、查询、报告和更新 Active Directory 和其他基于 LDAP 的目录,
是您进行 AD 故障排除的一站式助手。此外,借助其功能强大且功能丰富的 LDAP 客户端(拥有超过280 个预定义查询),您可以轻松简化 AD 管理。
最好的一点是什么?它完全免费!