IIS和集成Windows身份validation – login不适用于domain.com,适用于IP地址localhost 127.0.0.1

我已经安装了Windows Server 2003 R2和IISangular色(没有Active Directoryangular色)。 我已经设置了一个名为'test'的虚拟目录,在'test'虚拟目录的Security选项卡下,我已经禁用了匿名login并启用了集成Windows身份validation。 服务器在本地networking上。 我所做的是使用浏览器访问服务器上的test /目录。 这里是日志:

**IE on Server** localhost - works 127.0.0.1 - works, asks for password, 8 second delay domain.com - fails, asks for password, after 3 seconds asks for a password again, the username field changes to: domain.com\username 172.28.28.100 - works, asks for password, 8 second delay 

 **Firefox on Server** same as above domain.com - the 'Remember the password' tooltip displays for a fraction of a second and then the browser asks for the password again 

 **IE on other LAN host** 172.28.28.100 - works, asks for password, 8 sec delay domain.com - works, asks for password, 8 sec delay **Firefox on other LAN host** - same as above, no delay 

我显然做错了,但我不知道是什么。 我读过SPN,但是当我使用setspn -L localhost时,没有显示SPN(我想这是因为服务器不是DC)。 为什么我无法使用domain.com上的Windows集成身份validation在服务器上login?

完全错误的问题,所以这里试试2。

假设:

  • 该服务器是AD 2000+域成员
  • 客户是一个域成员

当你键入“domain.com”时,IE将build立一个http / domain.com的服务主体名称,并要求DC给它一张票。

如果domain.com是真实的,即您的AD域名,这是不会飞的。 至less,我不假设。

试试这个在SPN上的指导。 接受第一条build议,并使用2008版的SetSPN来完成SPN的工作。

简而言之,您将App Pool帐户(如果是IIS 6,默认情况下是Network Service,那么计算机帐户'webserver $')并注册一个SPN:

SETSPN -S http / example.com DOMAIN \ WebServer $

从理论上讲,这一切都是有效的。

我假设FireFox不会对服务器执行“遏制authentication”,而IE需要更长时间才能失败,因为它正在尝试执行。

有几个问题要解决这个问题:

  • 您无法使用domain.com\username或进行身份validation
    domain\username如果没有一个活动目录或NT域
    称为domain.com进行身份validation。

  • 您可能必须特别强制使用本地帐户,通过使用*IIS Computer Name*\username作为您的login标识,才能成功通过IIS服务器上的本地帐户进行身份validation。

  • 您可能希望将您的站点NTAuthenticationProviders设置为禁用协商身份validation过程并强制IIS使用NTLM
    cscript adsutil.vbs set w3svc/__YourWebSite__/root/NTAuthenticationProviders "NTLM"

  • 最简单,最快的方法是使用“基本身份validation”,但如果您不保护使用SSL的loginstream量,则存在安全问题。