Users are Repeatedly Prompted to enter their Username and Password
Problem
Integrated Security within IIS does not work and users are repeatedly asked to enter their username and password by the browser. SetSPN must be used to create a SPN for the service account for older versions of Windows Server
Solution
The Activate Intranet site uses a domain service account to run as. Internet Explorer by default attempt to content using Kerberos to the Activate application. This will fail unless the domain service account is registered in Active Directory.
Option 1: Creating Service Principal Names (SPNs) for Domain Accounts
Register a SPN for the domain account and server.
To create an SPN for a domain account
- Install the Windows Server 2003 tools from the Windows Server 2003 CD.
- From a command prompt, run the Setspn tool as follows:
Note: You cannot have multiple Web applications with the same host name if you want them to have multiple identities. This is an HTTP limitation, not a Kerberos limitation. The workaround is to have multiple DNS names for the same host, and start the URLs for each Web application with a different DNS name. For example, you would use http://app1 and http://app2 rather than http://site/app1 and http://site/app2.
Option 2: Disable Kerberos
Integrated security can be used with NTLM authentication by disabling Kerberos. Kerberos can be disabled on the client or on the server.
To disable Kerberos on the client
1. Open browser and select 'Tools -> Internet options' 2. Click on 'Advanced tab'. 3. Turn off 'Security->Enable Integrated Windows Authentication (required restart) 4. Click on and restart the browser To Disable Kerberos on the Server (recommended option)
IIS 6.0
1. | Click Start, click Run, type cmd, and then press ENTER. |
|---|---|
2. | Locate the directory that contains the Adsutil.vbs file. By default, this directory is C:\Inetpub\Adminscripts. |
3. | Use the following command to retrieve the current values for the NTAuthenticationProvidersmetabase property:cscript adsutil.vbs get w3svc/WebSite/root/NTAuthenticationProvidersIn this command, WebSite is a placeholder for the Web site ID number. The Web site ID number of the default Web site is 1. Warning Do not perform a copy-and-paste operation to paste the command from this article. This operation may cause issues with the property setting. To avoid these issues, type the whole command at a command prompt. Note This command fails if the NTAuthenticationProviders metabase property is not defined. For more information, see the note earlier in this section. If Kerberos is enabled, this command returns the following information:NTAuthenticationProviders : (STRING) "Negotiate,NTLM" |
4. | If the command in step 3 does not return the string "NTLM," use the following command to disable Kerberos :cscript adsutil.vbs set w3svc/WebSite/root/NTAuthenticationProviders "NTLM" |
5. | Repeat step 3 to verify that the result is "NTLM". |
IIS 5.1 or IIS 5.0
1. | Click Start, click Run, type cmd, and then press ENTER. |
|---|---|
2. | Locate the directory that contains the Adsutil.vbs file. By default, this directory is C:\Inetpub\Adminscripts. |
3. | Use the following command to retrieve the current values for the NTAuthenticationProvidersmetabase property:cscript adsutil.vbs get w3svc/NTAuthenticationProvidersWarning Do not perform a copy-and-paste operation to paste the command from this article. This operation may cause issues with the property setting. To avoid these issues, type the whole command at a command prompt. Note This command fails if the NTAuthenticationProviders metabase property is not defined. For more information, see the note earlier in this section. If Kerberos is enabled, this command returns the following information:NTAuthenticationProviders : (STRING) "Negotiate,NTLM"Note By default, the NTAuthenticationProviders metabase property is set to Negotiate,NTLM when you install IIS 5.1 or IIS 5.0. |
4. | If the command in step 3 does not return the string "NTLM," use the following command to enable the Negotiate process:cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM" |
5. | Repeat step 3 to verify that kerberos has been disabled. |
Troubleshooting
Microsoft troubleshooting Kerberos failures guide can be found here:
https://docs.microsoft.com/en-us/troubleshoot/iis/troubleshoot-kerberos-failures-ie