Я пытаюсь настроить внутренний веб-сайт, который будет связываться с другим внутренним сервисом в сети от имени пользователя, используя запрос HttpWebRequest.
Я должен использовать встроенную проверку подлинности Windows в приложении ASP.NET, поскольку внутренняя система поддерживает только этот тип проверки подлинности.
Я могу настроить IWA в приложении ASP.NET, и оно использует Kerberos, как я и ожидал. Однако, когда аутентификация делегируется бэкэнд-системе, она больше не работает. Это связано с тем, что внутренняя система поддерживает только Kerberos IWA, но по какой-то причине делегирование - даже если входящий запрос проходит проверку подлинности Kerberos - преобразует проверку подлинности в NTLM перед отправкой в внутреннюю систему.
Кто-нибудь знает, что мне нужно делать с приложением ASP.NET, чтобы оно могло пересылать идентификационные данные с помощью kerberos?
Я попробовал следующее, но, похоже, не работает
CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(request.RequestUri, "Negotiate", CredentialCache.DefaultCredentials.GetCredential(request.RequestUri, "Kerberos"));
request.Credentials = credentialCache;
Я также пытался установить «Kerberos» там, где сейчас написано «Переговоры», но, похоже, он мало что делает.