Active Directory LDAP密码更改:访问权限不足

时间:2018-04-11 11:44:34

标签: java active-directory ldap unboundid-ldap-sdk

我需要编写一个程序,让经过身份验证的用户在Windows Server 2003功能级别的Active Directory上更改其密码。

根据我们的安全管理员的要求,我的程序必须使用LDAP,但它不能与管理员帐户或委派帐户绑定。

我需要使用用户提供的凭据绑定到LDAP,并使用该连接修改密码。

我正在使用带有UnboundID的java。代码如下:

LDAPConnection connection = new LDAPConnection(new SSLUtil(new TrustAllTrustManager()).createSSLSocketFactory("SSLv3"), "dc.mydomain.loc", 636);    
Modification modification = new Modification(ModificationType.REPLACE, "unicodePwd", ('"' + newPassword + '"').getBytes("UTF-16LE"));
connection.bind(userDN, oldPassword);
connection.modify(userDN, modification);

我确定userDN和oldPassword是正确的,因为绑定操作已成功终止。但是当我运行修改时,我收到以下错误:

LDAPException(resultCode=50 (insufficient access rights), diagnosticMessage='00000005: SecErr: DSID-031A0F44, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0', ldapSDKVersion=4.0.4, revision=27051)
at com.unboundid.ldap.sdk.LDAPConnection.modify(LDAPConnection.java:2881)

0 个答案:

没有答案
相关问题