使用 API 密钥或授权方授权 AWS API Gateway

AHA*_*AHA 7 api api-key amazon-web-services aws-api-gateway api-gateway

在 AWS API Gateway 中,
- 我们可以设置一个资源来请求 API Key 进行访问。
- 我们还可以设置另一个需要授权的资源(例如 JWT 令牌,通过 lambda 函数或 AWS Cognito 处理)。

问题:我们可以将资源配置为在上述两种情况中的任何一种情况下都可以访问吗?目前,如果我们同时启用“API Key Required”和“Authorization”,则请求同时需要 API Key 和 Authorization。我们希望它通过两者中的一个。

破解/解决方法:创建相同资源的两个副本,并分别授权每个副本,一个使用 API 密钥,另一个使用授权方。

AHA*_*AHA 7

身份验证识别授权是相互交织的概念。随着我对 Auth 的了解越来越多,我的回答是:

  • API密钥用于项目/应用程序识别和授权
  • JWT用于用户身份验证和授权。
  • API Key 位于项目/应用程序范围内,JWT 位于用户范围内。也就是说,API Key仅标识应用程序,而不标识应用程序的用户。

因此,不使用 JWT 和 API 密钥授权同一端点是有意义的,因为这会降低用户和应用程序的治理粒度。但是,如果您有需要此类授权的用例,则建议的解决方法可能会起作用。


qkh*_*pro 2

让授权者为您生成/映射 API 密钥

您让 Lambda 授权者返回 API 密钥作为授权响应的一部分。有关授权响应的更多信息,请参阅 Amazon API Gateway Lambda 授权方的输出。

优点:

  • 单一终点

  • API密钥更多的是用于使用计划而不是授权。保持这种方式。

缺点:

  • 授权者将根据每个请求运行。哪个要花钱