我正在开发一个WCF服务,移动应用程序可以使用该服务来针对企业外联网ActiveDirectory对用户进行身份验证。我使用的是Microsoft的this implementation的自定义版本。我需要实现帐户锁定逻辑,以便在重试后,ActiveDirectory中的帐户应该被锁定。
我尝试使用状态完整的WCF服务来跟踪失败的登录。但是客户可以在下一个会话开始并继续攻击。
我知道可以将ActiveDirectory策略设置为强制执行此操作,但只是查询AD,就像Microsoft解决方案对用户进行身份验证一样 - 不会锁定用户。
所以,我期待着一个解决方案,这个解决方案就像使用不正确的密码登录到Windows的n次帐户将根据AD中设置的策略锁定一样。
答案 0 :(得分:1)
我还没有看到你的代码。所以我猜你有这个例子中实现的类似解决方案,看看this link
在上面的例子中,请看行
DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);
当您在活动目录上进行搜索调用时,此条目对象将用于身份验证。
如果您使用要进行身份验证的用户/密码,则无需担心代码将其锁定。活动目录策略就足够了。
但在阅读您的评论后,我猜您有一个特定用户可用于搜索移动应用程序用户,以检查它们是否存在于您的活动目录中。如果情况确实如此,那么您永远不会对移动用户进行身份验证,因此这些用户永远不会被自动阻止。
我很想知道你的答案。
答案 1 :(得分:0)
基本上有两种方法可以做到这一点:
修改强>
在看到marc_s的评论后,我不确定目录搜索是否会锁定。如果你可以尝试无数次,那实际上是一个严重的安全漏洞。但是,您需要一个允许在使用之前查询AD的帐户。
您链接的代码有此行
object obj = entry.NativeObject
强制进行身份验证。你有这条线吗?