Назад | Перейти на главную страницу

Права, необходимые для изменения пароля AD LDAP

Какие минимальные права вам нужны, чтобы изменить пароль LDAP для других лиц? Я работаю над инструментом, который позволяет пользователю изменять свой пароль. поскольку инструмент должен быть написан на PHP, единственная проблема заключается в том, что вы не можете использовать учетную запись пользователя для изменения пароля. Чтобы обойти это, мы хотим использовать учетную запись менеджера / администратора, которая может изменять пароли только всех других пользователей.

теперь проблема. мы не смогли найти нужные права, чтобы установить, чтобы учетной записи было разрешено изменять пароли. Единственный способ, которым это сработало для нас, - это сделать его администратором домена, а это то, чего мы не хотим. Итак, каковы минимальные права, которые нужны кому-то для изменения пароля другого человека с помощью PHP?

РЕДАКТИРОВАТЬ: Изменен заголовок, чтобы он лучше соответствовал вопросу.

В Apache есть модуль suexec, который позволяет создавать потоки как отдельные пользователи, но я не думаю, что это самое простое решение.

Вместо этого, почему бы просто не войти на сервер ldap как пользователь, используя пароль пользователя и новый пароль одновременно. Для этого вы должны просто использовать ldappasswd (или эквивалент PHP).

В страница руководства для ldappasswd и поиск в Google по запросу "php ldappasswd" должен найти все, что вы ищете.

РЕДАКТИРОВАТЬ: серверы LDAP имеют только одного административного пользователя AFAIK, root_dn, который может изменять все, включая пароли других пользователей. Я полагаю, что у вас нет данных для входа в root_dn, если вы сами не управляете сервером ldap.

Есть хорошая информация об ограничениях на unicodePwd атрибут Вот. Есть два метода, с помощью которых вы можете изменить атрибут; операция изменения (которая требует delete старого пароля, затем add нового пароля в той же операции изменения) и операции сброса (которая использует replace операции и требует, чтобы пользователь, к которому вы привязаны, имел необходимые разрешения).

Немного ужасно, что модуль PHP LDAP не может выполнять несколько операций за одну транзакцию. Итак, вы застряли в выполнении операции сброса; имейте в виду, что раскрытие интерфейса изменения пароля, реализованного с помощью этого метода, приведет к позволяют пользователям обходить требования что они действительно меняют свой пароль (они могут сбросить его на тот же самый), а также требования, чтобы они не использовали ранее использованный пароль (соблюдение истории не проверяется).


Разрешение, необходимое вашей учетной записи администратора для выполнения операции сброса учетной записи пользователя, - это разрешение «Сбросить пароль»:

Чтобы изменить атрибут, содержащий пароль, соединение, которое намеревается выдать запрос на изменение, должно иметь удостоверение авторизации с достаточными правами доступа для изменения пароля или с помощью прокси-механизм аутентификации, и в этом случае прав доступа должно быть достаточно.