集成Windows身份验证

时间:2009-01-29 12:38:31

标签: asp.net iis authentication active-directory dns

使用IIS进行集成Windows身份验证时,我们遇到了一些非常奇怪的问题,我不确定是否可以看到模式。

我们有一个名为Fred的DNS-Cname记录。我们有一个IIS网站,Fred设置为主机头。当我连接到此站点时,我会收到凭据质询提示。我希望我的证书能够通过。如果我输入我的凭证,我将被授予访问权限。

然后我创建一个名为Betty的本地主机条目,并将主机文件指向与Fred相同的IP地址,并将主机头更改为Betty。任何地方都没有关联的CName记录。当我访问Betty时,我会自动进行身份验证,一切都很好。

如果我试图绕过CName记录并在名为Fred的本地主机文件中创建一个条目,并将主机头更改回Fred。我仍然收到身份验证质询。

我认为它有两个问题。这个CName记录如何影响这里的分辨率,还是一个红色的鲱鱼。其次,这一挑战正在发生什么?我们在其他地方也有类似的症状,我们担心的是我们的身份验证令牌会在某处受到抨击。有人可以通过身份验证进行订单,即将数据包发送到哪些计算机。有没有办法可以追踪这个? (我在想WireShark或类似的东西)。如何证明我的身份验证令牌已通过且有效?

2 个答案:

答案 0 :(得分:6)

身份验证框的原因很简单:仅当Internet Explorer认为主机位于“本地Intranet”区域(假定为默认配置)时,Internet Explorer才会发送您的凭据。如果IE认为“本地”之外的主机要求提供NTLM凭证,则会出现一个认证框,您必须手动进行身份验证。

如果您希望自动发送您的凭据,请确保IE在“本地Intranet”中认为它。检查状态栏最右侧的区域信息,以查看当前活动的区域。

IE会考虑多种因素来决定是否将主机视为“本地Intranet”:

  1. 是本地子网中的IP地址 - > YES
  2. 是一个简单的主机名(即“无点”) - > YES
  3. IE选项中的
  4. :它位于“本地内联网”的“站点...”列表中 - > YES
  5. IE选项中的
  6. :是否在代理排除列表中 - > YES
  7. 是UNC路径 - > YES
  8. 否则:否
  9. 有时,该主机名的个人密码列表中存在旧密码(可通过“控制面板” - >“用户帐户”访问)。如果是错的,可能会出现类似的问题。
  10. 我怀疑你的主人“fred”不满足条件#2到#4,但你的测试用例“Betty”不知何故。

    解析名称的方式(CName记录,A记录,hosts文件,其他)没有区别,因为名称解析方法对调用应用程序是不透明的。 IE只询问名称“XYZ”并获取IP地址。

    但是,最近的配置更改可能需要您清除本地DNS缓存。偶尔ipconfig /flushdns会对此有所帮助,或者您可以停止DNS客户端服务一段时间。

    所描述的内部逻辑应用于主机名,安全设置会根据结果发生变化。

答案 1 :(得分:0)

CName将是一个红鲱鱼。对Windows Auth没有影响。 追踪它的最简单方法是使用提琴手。您应该看到您的请求后跟401响应(它包含服务器支持的身份验证),然后再次发送您的请求并附带身份验证详细信息(或者提示您,然后发送)