将Identity Foundation与WCF Web Api一起使用

我有一堆网站的设置完全相同以使用WIF身份提供商。 我最近将业务逻辑从Web应用程序中移出并放入Web Api服务应用程序中。 它运行在与其他站点不同的虚拟目录中。 这个想法是浏览器会把数据放入页面AJAXy。

我遇到的问题是保护Web API。 WIF单点登录似乎与传统网站无关。 用户可以访问一个网站,重定向到身份提供商,登录并重定向到他们想要的网站。 当他们访问另一个站点时,他们也会被重定向回身份提供者,但不需要登录,因为FEDAUTH cookie存在,所以他们会自动进行身份验证并重定向到第二个站点。

这对Web Api场景不起作用,因为当浏览器可能对它进行GET时,Api会在它应该期待JSON时返回到调用javascript的重定向。

用WIF甚至可以保护Web Api?


不知道我是否正确,但它似乎是主要问题是,JavaScript / AJAX不支持HTTP重定向。 一个可能的解决方案可能是在ajax中用一系列单独的调用来模拟重定向:

  • 检查您是否在您的web api站点进行身份验证(通过虚拟ajax调用)。
  • 如果情况并非如此:

  • 通过ajax调用sts并从“wresult”表单字段中获取安全标记。
  • 在您的web api站点上调用登录站点,并将安全标记作为“wresult”数据传递。
  • Dominick Bayer撰写了一些关于确保休息服务的博客文章。 欲了解更多信息,请浏览http://www.leastprivilege.com/。 (尤其是http://leastprivilege.com/2009/09/11/adding-a-rest-endpoint-to-a-wif-token-service/和http://leastprivilege.com/2010/05/05/thinktecture -identitymodel-WIF支持换WCF休息服务和-的OData /)。

    以下来自TechDays的演示文稿可能也很有趣:http://www.microsoft.com/showcase/sv/se/details/ffc61019-9756-4175-adf4-7bdbc6dee400(大约从约30分钟开始)。

    链接地址: http://www.djcxy.com/p/71803.html

    上一篇: Using Identity Foundation with a WCF Web Api

    下一篇: Unauthorized result in ajax requests