如果通过主机名或 IP 而不是通过服务器名访问,为什么 IIS 托管站点会提示输入 AD 帐户凭据?

Hyd*_*ast 5 domain-name-system iis windows-nano-server

我在 Windows 2016 Nano 服务器中托管的 IIS 中运行了一个 web 服务。如果我通过,我可以很好地访问该服务http://servername/service/health

但是,如果我通过http://[IP Address here]/service/health或访问它http://service.company.com/service/health,它会提示输入 AD 登录凭据。

我查看了 DNS 记录和 IIS ApplicationHost.config,我真的不知道它有什么问题。我可能错过了一两个设置。任何人都可以弄清楚在哪里看或做什么?

Mas*_*imo 6

这看起来像是 Kerberos 问题;如果我是正确的,那么服务器的 AD 计算机帐户 (*) 具有注册的 SPN HTTP/SERVERNAME(这可以使用SETSPN命令行工具进行验证),因此在使用计算机名称调用 Web 服务时会发生自动 Kerberos 身份验证;但是,当使用任何其他名称调用 Web 服务时,这将不起作用。

如果您希望能够使用不同的名称调用 Web 服务,则需要使用诸如SETSPN -S HTTP/service.company.com SERVERNAME.

更多信息在这里

(*) 或者运行 IIS 应用程序池的用户帐户,如果您手动配置了一个。