Смена пароля active directory ldap: недостаточные права доступа

Мне нужно написать программу, которая позволяет аутентифицированному пользователю изменять свой пароль в Active Directory на функциональном уровне Windows Server 2003.

По требованиям нашего менеджера по безопасности моя программа должна использовать LDAP, но не может связываться ни с учетной записью администратора, ни с делегированной учетной записью.

Мне нужно выполнить привязку к LDAP с учетными данными, предоставленными пользователем, и с этим подключением изменить пароль.

Я использую Java с UnboundID. Код, как показано ниже:

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)

Точно сказать не могу. Возможно, вы захотите проверить, поскольку Microsoft требует минимального уровня шифрования LDAP 128-битного SSL. Проверить, что срок действия пароля не истек / отключен? Сменить пароль как пользователь в инструментах Microsoft Active Directory?

jwilleke 12.04.2018 12:16
1
1
798
0

Другие вопросы по теме