Как включить пользователя в AD через LDAP? - PullRequest
2 голосов
/ 16 сентября 2011

Я пытаюсь создать пользователя в AD с помощью программы Java / LDAP, и создаваемый пользователь всегда отключен.Когда я пытался установить 'userAccountControl' t0 '512', он выдает мне следующую ошибку:

javax.naming.OperationNotSupportedException: [LDAP: код ошибки 53 - 0000052D: SvcErr: DSID-031A0FBC, проблема5003 (WILL_NOT_PERFORM), данные 0

1) Я не думаю, что это проблема с SSL, поскольку я могу успешно подключиться через порт SSL и выполнять другие операции, такие как изменение пароля и т. Д.

2) Я также делаю кодировку UTF-16, и поэтому могу успешно изменить пароль

Надеюсь получить ответ в ближайшее время.

Спасибо, Антоний

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Полученная ошибка (0000052D) соответствует следующему сообщению об ошибке из winerror.h:

//
// MessageId: ERROR_PASSWORD_RESTRICTION
//
// MessageText:
//
//  Unable to update the password. The value provided for the new
//  password does not meet the length, complexity, or history
//  requirement of the domain.
//
#define ERROR_PASSWORD_RESTRICTION       1325L

Из этого мы можем сделать вывод, что в вашей AD установлена ​​политика паролей, которая не позволяет создавать пользователя. У вас есть варианты здесь - сначала попытаться установить пароль через LDAP (для этого требуется 128-битное соединение SSL или TLS), а затем установить флаг PASSWD_NOTREQD (32) в userAccountControl.

0 голосов
/ 25 октября 2012

Когда я увидел эту проблему, оказалось, что моя кодировка была не совсем правильной. Вы должны заключить строку пароля в кавычки перед кодировкой:

final byte[] adEncodedPassword = ("\"" + password + "\"").getBytes("UTF-16LE");

ссылка: http://encounteringidm.com/will_not_perform-error-from-ad-on-password-change-using-java/

...