我正在尝试设置一个内部网站,代表用户使用HttpWebRequest联系网络中的另一个后端服务。 我必须在ASP.NET应用程序上使用集成Windows身份验证,因为后端系统仅支持此类身份验证。
我能够在ASP.NET应用程序上设置IWA,并且正如我所期望的那样使用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”,它现在说“Negotiate”,但它似乎没有做太多。
答案 0 :(得分:1)
在您的应用程序中,您只需要使用DefaultCredentials:
request.UseDefaultCredentials = true;
但是,在Active Directory上还有一些工作要做: