401错误 - IIS7.5站点不会从Kerberos回退到NTLM

时间:2014-02-27 15:22:43

标签: iis iis-7.5 windows-authentication kerberos ntlm

我在Win2008 R2上的IIS7.5中托管了一个站点。

假设服务器名为'prod1',并且该站点绑定到主机名MySite,也绑定到prod1:8080。站点的应用程序池在域帐户中运行:domain \ IISuser。

已创建SPN:

  • HTTP / MySite域\ IISUser
  • HTTP / MySite.mycompany.com域\ IISUser

IISUser已配置为无约束委派。

该网站的web.config包含以下内容:

<windowsAuthentication 
    enabled="true" 
    authPersistNonNTLM="true" 
    useKernelMode="true" 
    useAppPoolCredentials="true">
    <providers>
        <clear />
    <add value="Negotiate" />
        <add value="NTLM" />
    </providers>
</windowsAuthentication>

浏览(使用我的公司用户帐户)到http://MySite,并且NetMon显示Kerberos身份验证成功。

问题是我希望也可以浏览到http://prod1:8080,如果需要,身份验证会回退到NTLM,但我会收到401错误并重复登录提示(在IE11中)。

在后一种情况下,NetMon显示服务器的第一个响应是(如预期的那样)401,并包含WWWAuthenticate: NegotiateWWWAuthenticate: NTLM标题。

浏览器使用Authorization: Negotiate标头和SPN HTTP/prod1.mycompany.com发出新请求。没有这样的SPN,服务器响应是401 - KRB_ERROR - KRB_AP_ERR_MODIFIED,以及WWWAuthenticate: Negotiate标题(这次没有NTLM)。

此时我希望浏览器会发出一个NTLM请求,但它会发出另一个与前一个请求相同的协商请求,结果相同。

我试图支持的场景是否可行 - 如果是这样我在哪里配置错误?

0 个答案:

没有答案