Итак, позвольте мне предвосхитить этот вопрос, сказав, что я не эксперт по администрированию домена. Я программист, который пишет пользовательские приложения для Интернета.
Моя компания хочет добавить функцию сброса пароля на нашей странице входа в интранет. Наш сервер является ColdFusion 9, который имеет функциональность на языке, который позволяет мне программный доступ к LDAP. При исследовании написания кода для обеспечения работы этой функции смены пароля мне пришло в голову, что было бы гораздо проще написать код, который бы выполнял следующее:
net user <username> <password> /domain
Это, конечно, делается после обычной проверки старого пароля и тому подобного. Команда выполняется как пользователь с соответствующими правами для этого, и на самом деле она прекрасно работает.
Тем не менее, я заметил проблему, заключающуюся в том, что после большого устранения неполадок с одним из наших администраторов серверов мы смогли воспроизвести независимо от любого кода, который я написал.
Проблема заключается в том, что после выполнения команды net user и старый пароль, и новый пароль являются (на неопределенный интервал времени) хорошими паролями для изменяемой учетной записи пользователя.
Вот так. Если у нас есть пользователь testuser с паролем приветствия, и мы запустим следующее:
net user testuser welcome2 /domain
Затем в течение неопределенного периода времени мы можем успешно войти в домен, используя либо "welcome", либо "welcome2" в качестве пароля. Теперь по истечении этого неопределенного интервала времени первый пароль перестает работать, а новый пароль остается единственным оставшимся рабочим паролем.
Этого не происходит, если мы запускаем команду непосредственно на одном из двух наших контроллеров домена, но мне не очень удобно, чтобы мое веб-приложение выполняло эту команду непосредственно на PDC.
Единственное, о чем я могу думать, это то, что есть время распространения и что смена пароля НЕ является немедленной, как это было бы, если бы она запускалась на самом PDC.
Итак, мне интересно ... это ожидаемое поведение? Если я пойду по более сложному программному пути прямого доступа к серверу LDAP и изменения пароля пользователя, могу ли я столкнуться с подобной проблемой распространения?
Спасибо за прочтение.