ASP.NET Windows身份验证是否适用于同一网络上的第三方应用程序?

时间:2014-05-27 18:12:48

标签: asp.net windows asp.net-web-api windows-authentication

我有一个提供REST API的Intranet ASP.NET WebAPI应用程序,我们希望使用Windows身份验证通过在web.config中设置允许的组来保护URL,如:

<authentication mode="Windows"/>
    <authorization>
       <allow roles = "someGroup1"/>
       <allow roles = "Somegroup2"/>
       <deny users="*" />
    </authorization>
</authentication>

this页面看起来这符合我们的需求,但有一个问题我不确定:如果我们有一个现有的第三方应用程序(不是.NET),它位于同一个网络上使用我们的REST服务,将该应用程序作为允许组成员的用户帐户运行,允许应用程序成功连接到REST API?来自asp.net网站:

  

对于.NET客户端应用程序,HttpClient类支持Windows身份验证:

HttpClientHandler handler = new HttpClientHandler()
{
    UseDefaultCredentials = true
};

HttpClient client = new HttpClient(handler);

看起来您必须在客户端应用程序中执行一些特殊步骤才能使用Windows凭据进行身份验证。

是否有人知道此解决方案是否有效或是否允许第三方应用程序使用Windows凭据进行身份验证?

1 个答案:

答案 0 :(得分:1)

如果应用程序在单独的服务器上运行,除非您在kerberos环境中运行,否则这将无法正常工作。您所描述的是默认Windows身份验证环境中不支持的双跃点方案。基本上,默认情况下,应用程序无法从一台服务器获取安全凭证,并使用它转到另一台服务器。谷歌两跳安全性,你会发现很多关于它为什么不起作用的信息。

相关问题