Это работает - см. РЕШЕНИЕ ниже - Пожалуйста, дайте мне знать, если вы найдете это полезным, поскольку наш магазин разделен о том, является ли это решением ОК.
Решение для Active Directory, разрешающего старый пароль работать после изменения. Мне очень хотелось бы получить обратную связь о принятии этого решения, поскольку оно использует ChangePassword во время аутентификации входа в систему Это необычная вещь, но она работает. В настоящее время наш магазин не использует это решение, поэтому, если кто-нибудь скажет мне, используют ли они это или нет, это будет оценено по достоинству.
Спасибо Ch
Active Directory и старые пароли возвращающиеся правомочно (15 минут + - час). Это происходит при вызове SetPassword или ChangePassword.
История:
Я считаю, что это называется «Feature» АД и дизайном, встроенной в AD, так что, когда пользователь изменяет пароли есть своего рода льготный период, который позволяет все ресурсы, используя эти пароли для перехода на новый.
Один из примеров AD, который поддерживает концепцию, согласно которой AD знает последний пароль, - это изменение пароля для входа на ПК - в этом случае компьютер не разрешит вход в старый пароль. Хотя у меня нет ответа на этот вопрос (за исключением Microsoft, чтобы заставить это работать), я считаю, что это не так просто, как может показаться, поскольку ПК задействован, и на нем есть пароли.
один пример, показывающий, как изменения пароля в AD сделать последний в течение определенного периода времени может быть:
Использование удаленного рабочего стола с Windows 7 ПК на R2 поле Windows Server 2008. Войдите в систему из окна «Безопасность Windows», затем нажмите «ОК», нажмите «ОК» и вы вошли в систему. Теперь измените свой пароль для пользователя, которого вы использовали для удаленного, в поле с (отличным от вашего пользователя Kirkman?), Выйдите из системы и войдите в систему снова со старым паролем (в течение 15 минут до часа + -). Старый пароль приведет вас к окну Windows Security и к окну OK. Когда вы нажмете OK, произойдет сбой. Если вы начнете работу с удаленного рабочего стола и попробуйте плохой пароль, вы будете остановлены в окне Windows Security Box с сообщением «Ошибка входа в систему». По истечении срока действия вы не пройдете окно безопасности Windows со старым паролем. (убедитесь, что вы запускаете с Remote Desktop каждый раз, когда НЕ переключают пользователей, которые будут действовать так, как ожидалось, что также показывает, что ПК в чем-то вовлечен). По крайней мере, это не вход пользователя в систему, но это показывает, что (то, что кажется AD) на некотором уровне позволяет старым паролям проходить аутентификацию до некоторого уровня.
Исследование: Я нашел много ссылок на эту проблему и только одно потенциальное решение, которое до этого момента я не смог определить, можем ли мы его реализовать (это ссылка на вызов строго через Kerberos, а не NTLM, который не так просто, как может показаться в документации и моих исследованиях). Я нашел много ссылок на взаимодействие с AD в .NET, но не фактическое руководство AD.
РЕШЕНИЕ РЕШЕНИЯ РЕШЕНИЯ - прочитайте эту часть, если вы хотите РЕШЕНИЕ СОХРАНЕНИЯ !!! Настоящее: Я обнаружил (случайно при тестировании), что вызов ChangePassword в AD не позволит переданному OldPassword успешно сменить пароль на новый пароль. По моему мнению, этот тест, который действительно работает, на самом деле не известен, поскольку я не нашел ссылки на его использование. На самом деле я не нашел решения этой проблемы. Однажды утром в 3 часа ночи я понял, что могу использовать это использование ChangePassword, чтобы обеспечить решение этой проблемы - по крайней мере, обход, который мы можем использовать немедленно, пока не будет найден лучший подход.
Сначала я проверяю, что все верно, и AD возвращает, что пароль действителен. Затем выполняется вызов ChangePassword (имя пользователя, oldpassword, newpassword) со старым паролем и newpassword в качестве пароля, предоставленного пользователем (оба одинакового). Я знаю один из двух (возможно, три, но нарушение политики паролей останавливает его после успеха). Либо OldPassword хорош, и мы терпим неудачу, потому что политика паролей не выполняется (история, новый пароль не может быть одним из последних N паролей), или мы терпим неудачу, потому что старый пароль неверен (оба возвращены как ошибка исключения с текстом в сообщении).Мы проверяем это последнее условие, и если старый пароль недействителен, мы не разрешаем пользователю войти в систему.
Будущее: Возможно, второй комплект глаз поможет.
Я думаю, что решение находится в олицетворении или Kerberos. У меня не было успеха в том, чтобы найти достаточно одного из них в качестве решений. Очевидно, что AD может различать старые пароли, потому что это делает ChangePassword. То, что мы делаем, лежит в основе безопасности, поэтому не все открыто (например, возможность видеть историю паролей в AD, я не нашел способ получить к ней доступ).
Очень хорошее объяснение найдено [здесь] (http://theruntime.com/blogs/devprime/archive/2009/04/16/old-passwords-still-working.aspx). Ссылка, указанная выше, нарушена. –