IIS Windows身份验证拒绝某些用户

时间:2012-03-20 11:11:33

标签: active-directory iis-7.5 ntlm

我们有一个使用Windows身份验证的非常基本的SOAP Web服务设置,对所有用户开放:

<authentication mode="Windows" />
<authorization>
  <allow users="*" />
</authorization>

问题

但是,某些Windows帐户出现401 Forbidden错误。

什么有用

  • 选择的帐户列表始终有效(无论NTLM / Kerberos,本地/外部服务器)
  • 在网络服务器上本地访问时,所有帐户似乎都有效
  • 使用IE(似乎使用Kerberos)时,所有帐户似乎都有效。

什么不起作用

  • 来自外部服务器(似乎使用NTLM)的大多数(但不是全部)帐户

其他事实

  • 没有明显的模式可以使哪些帐户有效,哪些帐户无效(似乎是随意的)。
  • 与现有工作帐户相同的新帐户不起作用。
  • 哪些帐户的工作似乎是一致的(即它将始终有效或永不起作用)
  • 在不同环境中工作的帐户看起来是一致的(即所有IIS服务器都接受并拒绝同一组帐户)。
  • 除了不同的NTLM令牌和401而不是200/202响应之外,服务器之间捕获的流量没有差异。

技术上发生了什么

具体而言,当出现问题时,就好像密码凭据无法验证(我可以保证它们是正确的),根据安全日志中的4625 Audit Failure错误:

Account For Which Logon Failed:
Security ID:        NULL SID
Account Name:       FAILING_ACCOUNT_NAME_ALLCAPS
Account Domain:     MYDOMAIN

Failure Information:
Failure Reason:     Unknown user name or bad password.
Status:         0xc000006d
Sub Status:     0xc000006a

这似乎导致帐户被AD锁定(这有意义,因为0x000006a代码通常反映了无效的密码尝试),尽管这种行为似乎不一致。

如果请求跟踪失败,IIS会显示未知的用户名/密码错误,以及错误代码为401.2的{​​{1}}错误。

我还可以为工作帐户强制执行“真正的”3221225581错误(通过在401标记中拒绝它们)并且行为不同(即它不将这些标记为authorization但是给出了不同的访问拒绝错误。)

下一步

你告诉我 - 有没有人有经验,我应该在哪里帮助诊断这个问题?

1 个答案:

答案 0 :(得分:1)

似乎是一个非常罕见的问题困扰着你多年(基础架构团队,开发人员和微软一直无法隔离这个问题)。根据评论,似乎特定的密码可以产生影响,所以尝试在那里。