LDAP привязать как пользователя без пароля? - PullRequest
0 голосов
/ 09 марта 2012

У нас есть система забытых паролей, которая позволяет пользователю создавать новый пароль.Это идет против Active Directory через LDAPS.Прямо сейчас, когда пользователь отправляется на создание нового пароля, мы должны привязаться как администратор, изменить пароль на случайную строку, затем связать учетную запись пользователя с этой случайной строкой, а затем изменить пароль на тот, который он предоставил.Мы делаем это, потому что у нас есть политика истории паролей последних 5 использованных паролей.

Теперь это работает нормально, но история паролей имеет случайные строки как один из предыдущих паролей.Есть ли способ связываться с пользователем, но без пароля?Перед этим пользователь будет аутентифицирован по секретному вопросу.

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Я делаю это по-другому.Я создаю динамический объект под записью пользователя, срок действия которого истекает через несколько дней, с сгенерированным атрибутом uid;отправьте им ссылку, содержащую этот uid;это приводит к странице смены пароля, но вошел в систему через другой LoginModule, который видит параметр UID, проверяет его, и, если присутствует и исправляет, регистрирует их. Другими словами, это своего рода «входной билет».

Код, который выполнял поиск, связывал / переподключался как само приложение, но на самом деле это не имело значения, поскольку соединение для входа в систему немедленно закрывалось, как и все остальные соединения LDAP в приложении.Когда что-то делается с собственной записью пользователя, например, смена пароля, обновление профиля, выполняется повторное подключение в качестве этого пользователя с использованием пароля, который я сохранил в сеансе.Когда пользователь делает что-то еще с LDAP, это действительно приложение, которое выполняет связывание / переподключение приложения, как описано выше.IOW само приложение - это пользователь (или даже несколько разных пользователей с разными уровнями разрешений).

Поскольку UID намного длиннее, чем пароль, и потому что срок действия записи, содержащей его, истекает через день или два, всеэто гораздо более безопасно, чем генерация временного пароля и его доставка.На странице смены пароля также может быть секретный вопрос, если он будет достигнут через вход в систему.

0 голосов
/ 10 марта 2012

В AD есть две операции смены пароля - сброс и смена. Сброс - это административная операция (что вы здесь делаете). Когда вы делаете сброс, вам не нужно указывать текущий пароль. Смена пароля - это операция конечного пользователя, при которой пользователь должен предоставить свой текущий пароль в дополнение к новому паролю.

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

...