使用DNS进行IIS Windows身份验证

时间:2018-01-10 08:21:27

标签: iis dns windows-authentication iis-10

我在Windows Server 2016上使用IIS 10.

我已成功配置IIS以在进入网站时使用Windows身份验证。这在使用服务器的IP地址或主机名时效果很好。

但是我要在同一台服务器上托管多个站点,所以我尝试配置一些DNS记录以指向服务器的IP(A records),并通过在该站点的IIS绑定中定义主机名我在浏览器中使用该名称时,已设法正确连接到正确的站点。

Site binding configuration

但由于某种原因,这打破了Windows身份验证。将用户名和密码放入浏览器登录框时,只需无法进行身份验证

Browser authentication box fails to log in

我读了这个答案,但它没有提供解决方案(IIS Windows Authentication weirdness

我尝试用不同的方式编写用户名:

username
domain\username
domain.local\username

但它没有任何区别。

我看了this page,但似乎并不适用。

有谁知道如何使这项工作?

3 个答案:

答案 0 :(得分:1)

Windows身份验证在此处中断,因为您现在使用自定义主机名访问应用程序,并且没有为其设置SPN。您之前能够成功访问该应用程序,因为您直接使用servername访问它。此外,请注意当您通过IP地址访问应用程序时,您通过NTLM而不是kerberos建立连接。

要解决您的问题,您只需配置SPN即可。输入以下命令。

setspn -a http / hostname servername

请参阅此文章以获取更多信息

https://blogs.msdn.microsoft.com/jaws/spn-configurations-for-kerberos-authentication-a-quick-reference/

答案 1 :(得分:0)

尝试在IIS配置数据库中关闭反向DNS检查。封面下的Windows身份验证默认为Kerberos,可能正在对主机名进行反向DNS检查。使用主机标头,检查将失败。要做到这一点:

  1. 打开命令提示符。
  2. 将文件夹更改为C:\ Inetpub \ Adminscripts。
  3. 键入adsutil set w3svc / EnableReverseDNS FALSE,然后按ENTER键。
  4. 重新启动IIS。
  5. 参考:如何:启用IIS的反向DNS查找

答案 2 :(得分:0)

您需要更改应用程序池的运行方式。转到给你带来麻烦的高级设置。查找标记为identity的部分,然后尝试在该框中添加域管理员帐户。一旦发生这种情况,请回收您的应用池并重启您的网站如果它允许您进行身份验证,则需要修复该网站的SPN。如果这是修复它的路线,我会引导您完成这个