Platform:
Using IIS7, this is what I did on the BOTH servers. The first server and the second we want Kerberos authentication to "move" to.
Step 1:
For an IIS site that has the services you invoke (on each server), go to IIS Manager, click the site on the left in the Connections section, and open the Authentication section in the IIS section. Set ASP.NET Impersonation to Enabled and Windows Authentication to Enabled. All other parameters in the Authentication section (Ananymous, Forms, etc.) must be set to Disabled.
In the "Windows Authentication" section, right-click and select "Providers." Install the only provider that will be Negotiate: Kerberos (this forces Kerberos. If you want, after you get Kerberos to work, you can use the Negotiate and NTLM providers and remove Negotiate: Kerberos so that clients couldn't do Kerberos can connect. Note: I currently have my set for "Negotiate" and "NTLM" and it seems to work)
In the Windows Authentication section, right-click and select Advanced Settings. Uncheck the "Enable Kernal mode." (The "My Advanced Protection" option is disabled, I havenβt tried anything)
Step 2:
For each server you must set the SPN. The SPNs would be the following (or A OR B):
A:
If your application pool is running under IDENTITIY, which is DOMAIN ACCOUNT, add the following SPNs to this domain to the domain controller account
http/COMPUTER_NETBIOS_NAME http/COMPUTER_NETBIOS_NAME.FULLY_QUALIFIED_DOMAIN_NAME http://COMPUTER_NETBIOS_NAME.FULLY_QUALIFIED_DOMAIN_NAME
(if you do not use the default port, add 3 more entries with the port name attached: http / COMPUTER_NETBIOS_NAME: PORT, etc.)
IN:
If your application pool is running under IDENTITY "NetworkService", add the same SPNs as above instead of replacing "http" with "HOST" and ADD THEN TO COMPUTER_NETBIOS_NAME on your domain controller.
I am still working on implementing this in production, but this is what works for me in my test environment. I will keep this update when I find out more.
Note:
This works if you use COMPUTER_NETBIOS_NAME directly in the url when connecting. If you use an alias (www.mysite.mydomain.com) or an IP address directly, this will not work. I believe that although I have not fully tested it, you will need to follow the steps described above, but replace the COMPUTER_NETBIOS_NAME alias or IP address when adding the SPN. (or add it with both netbios and the / ip alias, not quite sure)
Also, if you get an error message that will not be valid for integrated ... after you enable "ASP.NET impersonation", you may need to add
<validation validateIntegratedModeConfiguration="false" />
to your web.config in the system.webServer section