0

我正在尝试决定为我的应用程序选择哪个 aws apigateway 版本(HTTP 与 REST API 网关)。

我正在试验 AWS HTTP API 网关,看看它是否适合我的用例。

这些是我的要求:

  1. 唯一的客户端是移动应用程序
  2. 其余 API 只能从登录用户访问
  3. 我想将 cognito 与 cognito 授权器一起使用
  4. 我的后端是通过内部应用程序负载均衡器公开的 lambda 服务和 HTTP 休息服务的组合

似乎一切都支持,唯一担心的是我会使用 api 密钥,但 HTTP API 网关目前不支持此功能。

如果我在没有任何 api 密钥的情况下使用 HTTP,是否存在任何安全问题?将访问限制为仅来自我的移动应用程序的请求的正确方法是什么?

4

1 回答 1

0

一切似乎都支持,唯一担心的是我会使用 api 密钥,但目前 HTTP API 网关不支持此功能。

HTTP API 支持 OpenID Connect 和 OAuth 2.0 授权 https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api.html

如果您有任何自定义 api-key,您仍然可以使用授权lambda 来对客户端进行身份验证和授权。

如果我在没有任何 api 密钥的情况下使用 HTTP,是否存在任何安全问题?

api-key是什么意思?API-key 通常是静态共享密钥,主要用于后端应用程序。声称用户需要经过身份验证并使用移动应用程序,拥有硬编码的 api 密钥并不是最好的主意(阅读 - 这是一个糟糕的主意)

根据这些要求,默认选项是使用 OAuth2/OIDC 进行用户授权,并将用户的访问令牌与 API 请求一起传递。

将访问限制为仅来自我的移动应用程序的请求的正确方法是什么?

I want to use cognito with cognito authorizer

最简单的内置方法是使用来自 Cognito 的访问令牌和内置的 JWT API 授权器。然而,您可以配置任何其他选项。

于 2021-10-21T08:22:35.717 回答