これは機能します - 以下の解決策を参照してください - 当店はこれが問題ない解決策であるかどうかについて意見が分かれているため、これが役立つと思われる場合はお知らせください。
以下は、変更後に古いパスワードが機能することを Active Directory に許可するソリューションです。ログイン認証中に ChangePassword を使用するため、このソリューションの受け入れに関するフィードバックをお待ちしています。これは奇妙なことですが、うまくいきます。現在、当店ではこのソリューションを使用していないので、使用しているかどうか教えていただけると助かります。
ありがとうございます
Active Directory と古いパスワードが有効を返す (15 分から +- 時間)。これは、SetPassword または ChangePassword が呼び出されたときに発生します。
歴史:
これは AD の「機能」と呼ばれ、設計上 AD に組み込まれているため、ユーザーがパスワードを変更すると、それらのパスワードを使用するすべてのリソースが新しいパスワードに移行できる一種の猶予期間が設けられます。
AD が最新のパスワードを知っているという概念をサポートする AD の一例は、PC でログイン パスワードを変更することです。この場合、コンピュータは古いパスワードでのログインを許可しません。私はこれに対する答えを持っていませんが (Microsoft がこれを機能させる必要があったことを除いて)、これは PC が関与していてパスワードも設定されているため、見た目ほど単純ではないと私は考えています。
AD でのパスワード変更が一定期間続く方法を示す一例は次のとおりです。
Windows 7 PC から Windows Server 2008 R2 ボックスへのリモート デスクトップの使用。Windows セキュリティ ボックスからログインし、[OK] をクリックします。ボックスが表示されます。[OK] をクリックすると、ログインが完了します。リモートに使用したユーザーのパスワードをボックスに変更し (Kirkman ユーザーとは異なります ??)、ログアウトしてログインします。再び古いパスワードを使用します (時間枠内で 15 分から 1 時間 +-)。古いパスワードを使用すると、Windows セキュリティ ボックスを通過して OK ボックスに移動できます。[OK] をクリックすると、失敗します。リモート デスクトップからやり直して間違ったパスワードを試すと、Windows セキュリティ ボックスで「ログオンに失敗しました」というメッセージが表示されて停止します。期限が切れると、古いパスワードでは Windows セキュリティ ボックスを通過できなくなります。(PCが何らかの形で関与していることも示す期待どおりに動作するユーザーを切り替えるのではなく、毎回リモートデスクトップから開始してください)。少なくともユーザーのログインは行いませんが、これは (AD のように見えるもの) あるレベルで古いパスワードをあるレベルで認証できることを示しています。
調査: この問題に関する多くの参考文献を見つけましたが、現時点で実装できるかどうかを判断できなかった 1 つの潜在的な解決策しか見つかりませんでした (これは、NTLM ではなく Kerberos を介して厳密に呼び出すことへの言及であり、それほど単純ではありません)。ドキュメントと私の調査によると表示される場合があります)。.NET で AD を操作する方法へのリンクは多数見つかりましたが、実際の AD マニュアルは見つかりませんでした。
ソリューション ソリューション ソリューション - ソリューション ソリューションが必要な場合は、この部分をお読みください!!! 現在: (テスト中に偶然に) AD への ChangePassword 呼び出しでは、渡された OldPassword がパスワードを新しいパスワードに変更できないことがわかりました。私の意見では、このテストが使用されていることへの言及が見つからないため、実際には知られていません。私は実際にこの問題の解決策を見つけていません。ある朝の午前 3 時に、この ChangePassword の使用法を利用して、この問題の解決策を提供できることに気付きました。少なくとも、より良いアプローチを決定できるまで、すぐに使用できる回避策です。
まず、すべてが有効であることを確認すると、AD はパスワードが有効であることを返します。次に、ユーザーによって提供されたパスワードとして oldpassword と newpassword を使用した ChangePassword (ユーザー名、oldpassword、newpassword) の呼び出し (どちらも同じ) が実行されます。2 つの結果のうちの 1 つ (おそらく 3 つですが、パスワード ポリシー違反により成功が妨げられます) が発生することはわかっています。OldPassword が適切で、パスワード ポリシーが満たされていないために失敗するか (履歴、新しいパスワードは最後の N 個のパスワードのいずれかではない)、または古いパスワードが正しくないために失敗します (両方とも、メッセージ内のテキストと共に例外エラーとして返されます)。この最後の条件を確認し、oldpassword が有効でない場合、ユーザーはログインできません。
将来: 2 番目の眼が役立つかもしれません。
解決策は、偽装または Kerberos にあると思います。私は解決策としてこれらのいずれかについて十分に見つけることに成功していません. ChangePassword がそれを行うため、AD が古いパスワードを区別できることは明らかです。私たちが行っていることはセキュリティの中心であるため、すべてが公開されているわけではありません (AD でパスワード履歴を表示する機能など、アクセスする方法が見つかりませんでした)。