我在Windows Server 2016上使用IIS 10.
我已成功配置IIS以在进入网站时使用Windows身份验证。这在使用服务器的IP地址或主机名时效果很好。
但是我要在同一台服务器上托管多个站点,所以我尝试配置一些DNS记录以指向服务器的IP(A records
),并通过在该站点的IIS绑定中定义主机名我在浏览器中使用该名称时,已设法正确连接到正确的站点。
但由于某种原因,这打破了Windows身份验证。将用户名和密码放入浏览器登录框时,只需无法进行身份验证。
我读了这个答案,但它没有提供解决方案(IIS Windows Authentication weirdness)
我尝试用不同的方式编写用户名:
username
domain\username
domain.local\username
但它没有任何区别。
我看了this page,但似乎并不适用。
有谁知道如何使这项工作?
答案 0 :(得分:1)
Windows身份验证在此处中断,因为您现在使用自定义主机名访问应用程序,并且没有为其设置SPN。您之前能够成功访问该应用程序,因为您直接使用servername访问它。此外,请注意当您通过IP地址访问应用程序时,您通过NTLM而不是kerberos建立连接。
要解决您的问题,您只需配置SPN即可。输入以下命令。
setspn -a http / hostname servername
请参阅此文章以获取更多信息
答案 1 :(得分:0)
尝试在IIS配置数据库中关闭反向DNS检查。封面下的Windows身份验证默认为Kerberos,可能正在对主机名进行反向DNS检查。使用主机标头,检查将失败。要做到这一点:
参考:如何:启用IIS的反向DNS查找
答案 2 :(得分:0)
您需要更改应用程序池的运行方式。转到给你带来麻烦的高级设置。查找标记为identity的部分,然后尝试在该框中添加域管理员帐户。一旦发生这种情况,请回收您的应用池并重启您的网站如果它允许您进行身份验证,则需要修复该网站的SPN。如果这是修复它的路线,我会引导您完成这个