【问题标题】:node.js - REST API security. SSL or OAuth2?node.js - REST API 安全性。 SSL 还是 OAuth2?
【发布时间】:2014-06-15 06:27:48
【问题描述】:

我正在构建一个 nodejs express REST API。我有以下设置。

API server(nodejs) 从 mongodb 返回数据。

Webserver(nodejs) 托管 Angular Web 应用程序。

一点点 google-ing 告诉我应该使用 OAuth2 来保护我的 REST API。

一些链接还建议我使用 SSL。

我不清楚 SSL 是否是 OAuth2 的替代解决方案,或者我应该将它与 OAuth2 一起使用以提高安全性?

如果我使用 SSL 在我的 Web 服务器和 API 服务器之间进行通信!我还需要使用 OAuth2 吗?

我是“第一次 API 构建者”。如果这个问题听起来含糊不清,我很抱歉。

【问题讨论】:

    标签: node.js rest ssl oauth


    【解决方案1】:

    为您的客户端应用程序构建 API 并不少见。有时,将负责 API 的应用程序与负责托管客户端应用程序的应用程序分开是有意义的(在这种情况下,它似乎是一个 Angular 应用程序)。但是,要知道它们可以是同一个,并且可能会被推荐,直到它们变得足够大以分离出来。如果它们是分开的,您将很快遇到same-origin policy 问题,并且可能需要将来自客户端应用程序的请求代理到单独托管的 API 应用程序——或者您可以在同一个域和代理下运行它们,使用类似的东西nginx或apache。综上所述,您可以考虑将这两个作为一个应用程序开始。

    转向安全性,SSL 是一种保护客户端与服务器连接的方法(将其视为 HTTPS 可能是最简单的)。这是一个很好的策略,一旦他们在客户端和服务器之间传输了不应被其他人查看的数据,就会建议他们实施。要知道 SSL 并不特定于 Node.js 或 REST,而只是一种保护 Web 请求/响应通信的方式。

    在请求得到保护的情况下,您仍然需要知道发出了请求,以及他们是否有权执行他们所要求的操作。证明你是谁是authentication,你可以做的是authorization。有很多方法可以进行身份​​验证,一旦您这样做了,通常由应用程序负责决定该用户的授权。 OAuth 是帮助完成此过程的一种方法,并且通过 Facebook、Google、Twitter 等登录网站变得流行。有许多工具可帮助您将 OAuth 与您的应用程序集成,Passport 是 Node 更受欢迎的选择之一。

    所以您的问题有点含糊,但希望这可以帮助您了解 SSL 和 OAuth 之间的区别。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 2016-03-29
      • 1970-01-01
      • 2015-09-08
      • 2015-03-11
      • 2014-04-23
      • 2012-06-16
      相关资源
      最近更新 更多