1
votes

I have written WebApplication using the latest ASP.Net Core. We are successfully hosting the application using the HttpPlatformHandler and IIS 8.5 using Anonymous Authentication. We are required to use Kerberos Authentication and required to use Kerberos Constrained Delegation.

Our Operations Administrator has setup all the required SPN's. We are using a service account, and all SPN's appear to be registered correctly. We have a number of other applications (SSRS SharePoint etc) with similar setup's

In IIS I have completed the following steps:

  • Created a New AppPool that is "No Managed Code" and "Integrated Pipeline"
  • We are using the service account under "Identity"
  • Created a New Web Application
  • Windows Authentication "Enabled" With Negotiate as the Primary provder
  • Anonymous Authentication "Disabled"
  • system.webServer/security/authentication/windowsAuthentication "useAppPoolCredentials = True" and "useKernelMode = False"

System.WebServer Security Authentication Windows Authentication Screen Capture

  • I have also ensured that under the HttpPlatform config forwardWindowsAuth token s set to True

HttpPlatform IIS Screen Capture

When I perform an HttpGet from the WebApi, My application throws an authentication error that the "service account" cannot login to the server. This seemed very strange, so I am now running a fiddler trace and found that before the authentication page is rendered I get 3 401 errors.

The next following results show that the WWW-Authenticate Header (Negotiate) appears to be a Kerberos reply.

1

1 Answers

0
votes

I was experiencing the exact same behavior - IIS settings & web.config changes were making no difference.

In my case, I just needed to restart the server, funny enough. Check to see if NTLM is working first, if so then this might be your issue (I'm guessing this is SPN related - I had not restarted the server after the SPNs were created).