使用完全限定 URL 在本地服务器上对 IIS 进行 Windows 身份验证

使用完全限定 URL 在本地服务器上对 IIS 进行 Windows 身份验证

我在 IIS 7 中设置了一个 Web 应用程序,并配置了 Windows 身份验证。我可以通过任何其他计算机的完全限定 URL 对该计算机进行身份验证,并且它使用正确的域。但是,当我尝试通过完全限定域(在另一个服务中,或者只是通过 IE 中的 URL)从计算机本身连接到计算机时,Windows 登录提示会尝试强制使用计算机作为域,而不是正确的登录域。尝试使用domain\username或指定域[email protected]失败。

localhost我应该注意,通过机器查看 Web 应用程序是可行的,但site.company.com/webservice在本地机器上使用完整样式 URL 不起作用,因为登录域错误。我该怎么做才能让它使用正确的登录域?

答案1

我也尝试做同样的事情。使用 FQDN 访问本地 IIS 上的网站,但 IIS 不断告知要访问的位置。

无论如何,根据我的挖掘,您必须禁用本地 IIS 网站的环回检查。

请参阅以下内容Microsoft 支持页面

如果页面丢失,我会执行以下操作(这是他在上面的博客文章中建议的)

  1. 在运行下输入 regedit 打开注册表编辑器。
  2. 导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
  3. 右键单击 MSV1_0,然后单击新建并选择使其成为多字符串值。
  4. 输入 BackConnectionHostNames 作为条目的名称,然后双击它进行修改。
  5. 输入您需要使用的主机名(例如code-journey.com)。
  6. 重新启动 IISAdmin 服务(“开始” -> “管理工具” -> “服务”)

希望这可以帮助。

雙重..

答案2

这是由于称为 LoopbackCheck 的安全功能所致。

安装 Windows Server 2003 Service Pack 1 后,尝试使用服务器的 FQDN 或 CNAME 别名本地访问服务器时出现错误消息:“访问被拒绝”或“没有网络提供商接受给定的网络路径”
http://support.microsoft.com/kb/926642

有两种解决方法:

方法 1(推荐):创建可在 NTLM 身份验证请求中引用的本地安全机构主机名。为此,请对客户端计算机上的所有节点执行以下步骤:

  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
  3. 右键单击“MSV1_0”,指向“新建”,然后单击“多字符串值”。
  4. 在“名称”列中,键入 BackConnectionHostNames,然后按 ENTER。
  5. 右键单击“BackConnectionHostNames”,然后单击“修改”。
  6. 在“数值数据”框中,键入用于计算机上的本地共享的 CNAME 或 DNS 别名,然后单击“确定”。

    注意:在单独的行中键入每个主机名。

    注意:如果 BackConnectionHostNames 注册表项以 REG_DWORD 类型存在,则必须删除 BackConnectionHostNames 注册表项。

  7. 退出注册表编辑器,然后重新启动计算机。

方法 2:通过将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa 注册表子项中的 DisableLoopbackCheck 注册表项设置为 1,禁用身份验证环回检查。要将 DisableLoopbackCheck 注册表项设置为 1,请在客户端计算机上执行以下步骤:

  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 找到并单击以下注册表子项: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. 右键单击“Lsa”,指向“新建”,然后单击“DWORD 值”。
  4. 键入 DisableLoopbackCheck,然后按 ENTER。
  5. 右键单击“DisableLoopbackCheck”,然后单击“修改”。
  6. 在数值数据框中,键入 1,然后单击确定。
  7. 退出注册表编辑器。
  8. 重新启动计算机。

答案3

根据设置 SSO 的一些经验,我可以告诉您,只有当站点和客户端位于 Intranet 上,或者站点位于受信任区域时,IE 才会自动传递 Kerberos 票证进行登录。如果 IE 看​​到http://site.company.com/webservice它将假定该网站位于互联网上并且不会传递登录凭据。

此链接中有一些有关 IIS、IE 和 Kerberos 的有用信息。 http://blogs.msdn.com/b/friis/archive/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iis-ie.aspx

我们发现,允许在内联网上使用 FQDN 的两种方法是向 Web 服务器提供证书并使用 SSL,或者将其添加到受信任区域。

希望这对您的设置有所帮助。

相关内容