Windows身份验证使用本地URL在本地服务器上进行IIS


9

我在使用Windows身份验证配置的IIS 7中设置了一个Web应用程序。我可以通过来自任何其他计算机的完全合格的URL对计算机进行身份验证,并且它使用正确的域。但是,当我尝试通过完全限定的域(在另一个服务中,或仅通过IE中的url)从自身连接到计算机时,Windows登录提示符将尝试强制将计算机用作域,而不是正确的登录域。尝试用domain\usernameusername@domain.com失败指定域。

我应该注意,localhost在机器上通过查看Web应用程序是可以的,但是site.company.com/webservice在本地机器上不能使用完整样式的url,因为登录域是错误的。如何使它使用正确的登录域?

Answers:


11

我试图做同样的事情。使用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服务(“开始”->“管理工具”->“服务”)

希望这可以帮助。

cmb ..


4

这是由于称为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. 重新启动计算机。

对我来说,诀窍是第二个选择- DisableLoopbackCheckingHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
伊卡洛斯

1

根据建立SSO的经验,我可以告诉您,只有当站点和客户端位于Intranet上或站点位于受信任区域中时,IE才会自动通过kerberos票证进行登录。如果IE看到http://site.company.com/webservice,它将假定该站点位于Internet上,并且不会通过登录凭据。

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

我们发现允许Intranet上的FQDN起作用的两件事是向Web服务器提供证书并使用SSL,或者将其添加到Trusted Zone。

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


这不能解决问题。我已经尝试将FQDN添加到受信任的区域,但无济于事。我认为,这解决了一个不同的问题。将其添加到受信任的区域可以进行自动身份验证,我不需要-可以指定凭据,但是问题是它不接受我指定的域作为登录凭据-它卡在了计算机名称上。
roviuser 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.