使用OAuth和单页应用程序实现Web API

时间:2013-02-20 13:02:49

标签: asp.net-web-api oauth-2.0 single-page-application

我们正在开发一个API和一个单页面应用程序(它是未来可能的消费者之一)。

我们已经开始使用Web API了,并且基本上实现了一个非常类似于John Papa在复数视频课程中制作的系统,名为“使用HTML5构建单页应用程序(SPA),ASP.NET Web API,Knockout和jQuery的”。

我们现在需要在此应用程序中实现身份验证和用户管理,并且需要在尽可能短的时间内找到实现此目的的简单方法,因为我们匆忙。

我们意识到ASP.NET更新中包含的SPA模板具有与我们需求非常相似的功能,但我们想知道在现有代码中实现类似功能的最佳方法是什么。

我们是新手开发者,正如您可能想到的那样。

是否可以使用软件包管理器安装一些软件包,瞧,简单的成员资格和OAuth auth选项随时可用?

我们的用例是我们需要根据角色保护API上的一些资源,并且应该能够使用用户名和密码登录,还可以使用facebook,google或twitter帐户登录。

3 个答案:

答案 0 :(得分:3)

在这里找到一个关于这个主题的有趣话题:https://vimeo.com/43603474名为Dominick Baier - 保护ASP.NET Web API。

概要:Microsoft编写RESTful Web服务和Web API的新框架恰当地称为ASP.NET Web API。顾名思义,该技术是ASP.NET的一部分,并且还继承了其着名的安全架构。但此外,它还支持IIS之外的许多新扩展点和灵活的托管基础​​架构。有许多方法可以在Web API中进行身份验证和授权 - 从Windows到用户名和密码,再到基于令牌的身份验证以及介于两者之间的所有内容。本讲座探讨了各种选项,并特别关注声明,SAML,OAuth2,简单Web令牌和委托等技术。

答案 1 :(得分:3)

我们最终使用SPA模板,对API进行身份验证(单独的MVC部分)。 然后,API将生成一个唯一的令牌,并使用url参数中的令牌将用户重定向到前端。

然后前端需要在每个后续请求中发送此令牌。

答案 2 :(得分:0)

查看here - 安全专家完成的Identity Server。这就是你需要的一个包。

就OAuth而言,您需要使用客户端Web应用程序流,访问令牌会立即发布到客户端并可以使用。