I have an intranet site hosted IIS 7 with windows authentication, configured to accept Negotiate. I also set the configuration setting to use per-connection Kerberos (non-NTLM) authentication:
<system.webServer>
<security>
<authentication>
<windowsAuthentication authPersistNonNTLM="true" />
</authentication>
</security>
</system.webServer>
Now Chrome correctly authenticates once with a Kerberos ticket, and then does not send any authorization headers on subsequent requests.
Internet Explorer however DOES send a large Kerberos ticket with EVERY REQUEST. The server is sending back the correct Persist-Auth: true
header. So IE should know not to bother pre-authenticating. This behavior can be observed in at least IE9 and IE10 on Windows 7 64bit.
Is there some other reason for this behavior? A way to fix it?
Also please note that I am using Kernel mode on IIS7 and no virtual directory security.
If I have IE9/IE10 connect with NTLM it does NOT pre-authenticate (which is correct behavior).
I'm hoping there is some magical header I can manually add to my server responses so IE will behave correctly ...