【问题标题】:How to use Cognito to Control API Access如何使用 Cognito 控制 API 访问
【发布时间】:2018-10-29 02:43:04
【问题描述】:

我们正在使用 API Gateway+lambda+DynamoDB 构建许多微服务。我们需要使用我们用于用户管理的 Cognito 来保护这些 API。我们将有一个用户池和两个组,每个组附加一个不同的 IAM 角色。需要是一个组中的用户不应该能够访问所有服务,因此其他组中的用户。 有什么建议,我们如何实施? 问题是 Cognito 生成的 ID 令牌未经 API 网关验证以检查用户的访问级别。它只检查 Cognito ID 令牌是否有效。

【问题讨论】:

  • 我认为您必须在 Lambda 中进行一些额外的验证。或者,您可以编写一个自定义验证器来执行此操作?

标签: aws-lambda microservices aws-api-gateway amazon-cognito


【解决方案1】:

您可以使用 API Gateway 自定义授权方来验证附加到每个组的策略。

来自 AWS Documentation

您可以使用用户池中的组来控制 Amazon API Gateway 的权限。当用户登录时,用户所属的组包含在用户池提供的 ID 令牌中。您可以将这些 ID 令牌与请求一起提交到 Amazon API Gateway,使用自定义授权方 Lambda 函数来验证令牌,然后检查用户属于哪些组。

其他实现参考:

https://aws.amazon.com/blogs/compute/introducing-custom-authorizers-in-amazon-api-gateway/ https://aws.amazon.com/blogs/mobile/integrating-amazon-cognito-user-pools-with-api-gateway/

【讨论】:

    猜你喜欢
    • 2020-08-05
    • 2021-05-29
    • 1970-01-01
    • 2016-12-08
    • 2020-10-01
    • 2021-07-25
    • 2020-07-29
    • 2018-06-24
    • 1970-01-01
    相关资源
    最近更新 更多