使用API​​密钥或授权者授权AWS API Gateway

时间:2020-06-03 00:27:49

标签: amazon-web-services api aws-api-gateway api-key api-gateway

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

问题:是否可以将资源配置为在上述两种情况下均可访问?当前,如果我们同时启用“需要API密钥”和“授权”,则请求同时需要API密钥和授权。我们希望它仅能通过两者之一。

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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

让授权者generate/map the API key for you

您有Lambda授权者将API密钥作为 授权响应。有关授权的更多信息 响应,请参阅Amazon API Gateway Lambda授权者的输出。

优点:

  • 单个端点

  • 使用密钥的API密钥比授权密钥更多。保持这种方式。

缺点:

  • 授权器将在每个请求上运行。哪花钱