多个域(站点)之间的 Windows 身份验证失败

多个域(站点)之间的 Windows 身份验证失败

我刚刚在全公司范围内推出了一个新的内部网 - 公司在英国有 6 个站点,每个站点都有一个本地域名(例如)london.local、derby.local、thatlotupnorth.local 等等),并且每个站点都有自己的 AD 服务器。(这些站点通过 Virgin 的 MPLS 连接,但这对问题应该是透明的)

内联网服务器(Server 2008 R2、IIS 7.5)基于 london.local,并使用 Windows 身份验证来验证和访问内联网服务器上的站点。

除了一个站点外,其他所有站点都可以正常使用。

进一步调查显示,该网站(比如 derby.local)的成员用户无法从另一个域内登录其帐户,例如,我在 derby.local 域上设置了一个帐户,并尝试从 london.local 登录,我收到错误消息“当前没有可用于服务登录的登录服务器”,这表明 AD 服务器不可访问,但是我可以 ping 通它。

我确信内联网Windows身份验证的原因是服务器无法访问其他站点的AD服务器。

nslookup 报告一个域“不存在”,所有其他 AD 服务器都回复其详细信息。但是我可以 ping derby.local。

非常感谢关于从哪里开始解决问题的任何指示!

答案1

如果站点位于受信任的站点区域,并且该区域配置为“使用当前用户名和密码自动登录”,并且 IIS 配置了可以模拟用户的应用程序池帐户,则 Internet Explorer 应该可以将身份验证令牌作为 http 请求标头的一部分显示,并且 IIS 可以使用该令牌进行身份验证和授权。

如果 URL 是单标签/短名称,则也可以使用 Intranet 区域。

这种“集成身份验证”与提示输入凭证(可能是纯文本)相反,通常是首选的身份验证机制。

确定配置是否正确的一种方法是下载 DelegConfig 实用程序,并将其添加为网站下的虚拟目录。当您打开该虚拟目录的链接时,它将运行一些测试并显示可能配置不正确的内容(如果有)。

通常,这要求 IIS 计算机在计算机帐户的委派选项卡上“受信任以进行委派”,或者如果应用程序池正在使用域帐户,则该帐户需要以相同的方式被信任,尽管委派选项卡默认不显示用户帐户,因此您需要使用 setspn.exe。

有时,由于组成员众多,HTTP 请求标头会非常大。这需要调整 IIS 注册表中的 MaxRequestBytes 设置。

IIS 的 Http.sys 注册表设置
http://support.microsoft.com/kb/820129

DelegConfig 下载:
http://blogs.iis.net/brian-murphy-booth/archive/2009/04/22/delegconfig-v2-beta.aspx

相关内容