【问题标题】:Implement Web API with OAuth and a Single Page Application使用 OAuth 和单页应用程序实现 Web API
【发布时间】:2013-06-04 08:17:27
【问题描述】:

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

我们已经开始使用 Web API,并且基本上实现了一个非常类似于 John Papa 在他的复数视觉课程中创建的系统,名为“使用 HTML5、ASP.NET Web API、Knockout 和jQuery”。

我们现在需要在这个应用程序中实现身份验证和用户管理,并且需要尽快找到简单的方法来实现这一点,因为我们很着急。

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

如您所见,我们是新手开发人员。

是否可以使用包管理器安装一些包,瞧,一个简单的成员资格和 OAuth 身份验证选项很容易获得?

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

【问题讨论】:

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


    【解决方案1】:

    在此处找到有关该主题的有趣演讲: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 令牌和委托等技术。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        看看here - 由安全专家完成的身份服务器。这就是你在一个包中所需要的。

        在 OAuth 方面,您需要使用客户端 Web 应用程序流,访问令牌会立即发给客户端并且可以使用。

        【讨论】:

          猜你喜欢
          • 2012-09-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-07
          相关资源
          最近更新 更多