【问题标题】:REST API Security with cross platform apps (AWS Cloud/Services)跨平台应用程序的 REST API 安全性(AWS 云/服务)
【发布时间】:2017-08-04 10:08:10
【问题描述】:

我为网络和移动设备开发了一个跨平台应用程序。

Web 部件由 node.js/express 应用程序提供,并具有基于 passport.js 的用户身份验证,使用本地注册、facebook 和 google 身份验证。它部分是使用 Jade 渲染的服务器端,但甚至使用 Angular 来处理从 API 请求的动态内容。

移动客户端使用Ionic2/(Angular2)开发,通过调用node.js服务器对用户进行身份验证,采用护照JWT策略。

Web 和移动客户端都使用 REST API 设置,AWS API Gateaway 和背后的多个 Lambda 微服务,使用 DynamoDB、Elaticsearch 等。

实际上,我正在努力解决 API 安全问题。需要用户身份验证/成员资格的端点可以通过 JWT 令牌使用现有的身份验证策略来处理。但是大约 90% 的 API 提供不需要身份验证的数据。

这些现在对世界开放,因为我没有找到保护它们的好策略。我的目标是确保只有移动和网络应用的用户才能访问这些端点。

我怎样才能存档呢?如果有人能给我关于最佳方法的提示,那就太好了。

谢谢!

【问题讨论】:

  • 您可以在 API Gateway 中使用自定义授权方来验证 jwt 令牌。有什么理由不使用它?
  • 是的,这就是我对需要身份验证的端点所做的实际操作,因为只有经过身份验证的用户才有令牌。问题在于为任何未经身份验证的用户提供一般数据的 API。

标签: node.js amazon-web-services ionic2 aws-lambda aws-api-gateway


【解决方案1】:

虽然您说这些服务不需要身份验证,但在我看来您确实需要身份验证。由于您要求提供请求者的身份证明,即使该身份是“只有移动和 Web 应用程序的用户可以访问”的要求,您也在谈论身份验证。因此,您可能也只想对这些端点使用 JWT。

您可能还想授权您的用户,以决定应该允许特定身份做什么。这样,您可以让所有经过身份验证的用户访问您的所有端点,但只有那些显示成员资格证明(在 JWT 中)的用户才能访问受保护的端点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2014-11-03
    相关资源
    最近更新 更多