在n次尝试WCF后实施Active Directory帐户锁定

时间:2012-06-16 14:55:26

标签: wcf authentication active-directory user-accounts

我正在开发一个WCF服务,移动应用程序可以使用该服务来针对企业外联网ActiveDirectory对用户进行身份验证。我使用的是Microsoft的this implementation的自定义版本。我需要实现帐户锁定逻辑,以便在重试后,ActiveDirectory中的帐户应该被锁定。

我尝试使用状态完整的WCF服务来跟踪失败的登录。但是客户可以在下一个会话开始并继续攻击。

我知道可以将ActiveDirectory策略设置为强制执行此操作,但只是查询AD,就像Microsoft解决方案对用户进行身份验证一样 - 不会锁定用户。

所以,我期待着一个解决方案,这个解决方案就像使用不正确的密码登录到Windows的n次帐户将根据AD中设置的策略锁定一样。

2 个答案:

答案 0 :(得分:1)

我还没有看到你的代码。所以我猜你有这个例子中实现的类似解决方案,看看this link

在上面的例子中,请看行

DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);

当您在活动目录上进行搜索调用时,此条目对象将用于身份验证。

如果您使用要进行身份验证的用户/密码,则无需担心代码将其锁定。活动目录策略就足够了。

但在阅读您的评论后,我猜您有一个特定用户可用于搜索移动应用程序用户,以检查它们是否存在于您的活动目录中。如果情况确实如此,那么您永远不会对移动用户进行身份验证,因此这些用户永远不会被自动阻止。

我很想知道你的答案。

答案 1 :(得分:0)

基本上有两种方法可以做到这一点:

修改

在看到marc_s的评论后,我不确定目录搜索是否会锁定。如果你可以尝试无数次,那实际上是一个严重的安全漏洞。但是,您需要一个允许在使用之前查询AD的帐户。

您链接的代码有此行

object obj = entry.NativeObject

强制进行身份验证。你有这条线吗?