【问题标题】:IIS Windows Authentication with DNS使用 DNS 的 IIS Windows 身份验证
【发布时间】:2018-06-19 08:46:23
【问题描述】:

我在 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,但似乎不适用。

有人知道怎么做吗?

【问题讨论】:

    标签: iis dns windows-authentication iis-10


    【解决方案1】:

    尝试在 IIS 元数据库中关闭反向 DNS 检查。 Windows 身份验证默认使用 Kerberos,这可能会对主机名进行反向 DNS 检查。使用主机标头,检查将失败。为此:

    1. 打开命令提示符。
    2. 将文件夹更改为 C:\Inetpub\Adminscripts。
    3. 键入 adsutil set w3svc/EnableReverseDNS FALSE,然后按 Enter。
    4. 重新启动 IIS。

    参考:如何:为 IIS 启用反向 DNS 查找

    【讨论】:

    • 我首先将 IIS 6 管理兼容性作为角色添加到服务器并运行您编写的命令。该命令似乎正确执行,但我仍然有同样的问题。我重新启动了 IIS。我正在使用 IIS 10。
    【解决方案2】:

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

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

    setspn -a http/hostname 服务器名

    更多信息请参考这篇文章

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2011-06-23
        • 1970-01-01
        • 1970-01-01
        • 2011-07-22
        • 2011-06-13
        • 1970-01-01
        • 1970-01-01
        • 2017-05-24
        • 1970-01-01
        相关资源
        最近更新 更多