現在、私たちのウェブアプリケーションのユーザーは、パスワードのハッシュ/塩とともにデータベースに保存されています。ハッシュは、ユーザーの作成時に計算され、パスワードが設定され、データベースのユーザーテーブルに格納されます。Active Directoryで使用されるパスワードハッシュを計算できますか?
ユーザーアカウントを作成してからしばらくして、ドメインにWindowsアカウントを作成し、ユーザーがログに記録するパスワードと同じになるようにドメインユーザーのパスワードを設定したい場合がありますウェブアプリにプレーンテキストのパスワードは保存しないので、作成時にADに送る方法はありません。
私はこの問題を回避することを考えていましたが、ユーザーが最初にパスワードを設定した後、ADを作成したときにADでレコードを設定したときにADが使用するすべてのパスワードハッシュを計算することです。
- .Netを使用して、どのようにハッシュを作成しますか(MD4、MD5、およびDESと思う)?
- UserPrincpal.SetPasswordでパスワードの作成をバイパスし、ADによって保存されたハッシュを直接設定するために他の呼び出しを行うことはできますか?
MSにはADからAzureユーザーにパスワードを同期させるツールがあるので、これを行う方法があるようです。 DBのパスワードと同期ADのパスワードを維持しようと
興味深い質問ですが、これはWindowsと同じ塩を使用している場合にのみ機能します。セキュリティの観点からは、両方のシステムで同じパスワードを使用することをお勧めしますか?私はあなたが探しているものが解決策のシングルサインだと言うでしょう – Marged
問題は、私が知る限り、サインオンの「シングル」ポイントでない限り、シングルサインオンでWindowsがうまく動かないということです。どういうわけかMSにはパスワードを同期させるツールがあるので、可能でなければならないと思います。 – bpeikes
Webアプリケーションの実行場所に応じて、さまざまな手法(SAML、Kerberos、証明書)でSSOを使用できます。しかし、同期アプローチを実装しようとし続け、セキュリティの影響を忘れないようにしてください。 – Marged