PCIDSS 評価を完了しています。
要件では、パスワードは少なくとも 90 日ごとに変更する必要があり、以前の 4 つのパスワードのいずれとも異なるものにする必要があります。
これがサーバーへのアクセスのためなのか、サーバー上のユーザーに提供するアプリケーションへのアクセスなのかはわかりません。
後者の場合 - ASP.Net 3.5/4 Web アプリケーションと MVC4 Web アプリケーションでこれを強制する方法はありますか?
ありがとう、マーク
PCIDSS 評価を完了しています。
要件では、パスワードは少なくとも 90 日ごとに変更する必要があり、以前の 4 つのパスワードのいずれとも異なるものにする必要があります。
これがサーバーへのアクセスのためなのか、サーバー上のユーザーに提供するアプリケーションへのアクセスなのかはわかりません。
後者の場合 - ASP.Net 3.5/4 Web アプリケーションと MVC4 Web アプリケーションでこれを強制する方法はありますか?
ありがとう、マーク
最初の要件として、Asp.Net メンバーシップには、次のようにログインにフックできるプロパティMembershipUser.LastPasswordChangedDateがあります。
if (Membership.ValidateUser(userName, password))
{
MembershipUser theUser = Membership.GetUser(userName);
if (theUser.LastPasswordChangedDate.Date.AddDays(90) < DateTime.Now.Date)
{
// Inform user password expired + redirect user to change password screen
}
FormsAuthentication.SetAuthCookie(userName, rememberMe);
}
2 番目の要件 (つまり、最後の 4 つのパスワードと同じにすることはできません) は、自分で実装する必要があります。UserPasswordHistory
提案では、ユーザーが自分のパスワードを変更するたびに挿入されるパスワード ハッシュを含む aspnet_User.UserId に戻る外部キーを持つ新しいテーブルを作成します。次に、新しいパスワードのハッシュを以前の 4 つのハッシュと比較し、それに応じて拒否できます。
これは社内アプリケーション用ですか?その場合は、LDAP/Active Directory との統合を検討してください (ネットワーク パスワードに使用されていると仮定します)。これにより、パスワード ルールを処理できます (つまり、以前に使用されたものを追跡し、パスワードが十分に複雑で以前のものとは異なることを確認し、変更頻度を強制します)。また、ユーザーが複数のパスワードを覚えたり同期したりする必要がないことも意味します。
http://msdn.microsoft.com/en-us/library/ms180890(v=vs.80).aspx
作成日とともに、パスワードを別のテーブルに保存できます。それはかなり簡単です
これがサーバーへのアクセスのためなのか、サーバー上のユーザーに提供するアプリケーションへのアクセスなのかはわかりません。
通常、PCIDSS はサーバーに重点を置いているため、これはサーバーへのアクセス用です。