gpt4 book ai didi

asp.net - ASP.NET中的端到端kerberos委派身份验证

转载 作者:行者123 更新时间:2023-12-02 04:15:41 26 4
gpt4 key购买 nike

我正在尝试建立一个内部网站,该网站将使用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”(协商),但它似乎并没有做很多事情。

最佳答案

在您的应用程序中,您只需要使用DefaultCredentials:

request.UseDefaultCredentials = true;

但是,在Active Directory上有一些工作要做:
  • 在您的应用程序池帐户中为前端应用程序
  • 设置SPN
  • 在应用程序池帐户上为后端应用程序
  • 设置SPN
  • 设置从第一个应用程序池到第二个SPN的委派
  • 关于asp.net - ASP.NET中的端到端kerberos委派身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2963812/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com