具有Cognito授权的AWS API Gateway

问题描述 投票:0回答:1

目前我正在开发无服务器架构,其中AWS API网关中有一组资源和方法。我计划将Cognito身份验证(用户池)和授权作为安全层添加到AWS API网关。

AWS API Gateway中有3个授权者,它们是IAM,Cognito用户池和自定义lambda。

对于我的使用案例,登录和注册(身份验证)通过API网关使用cognito用户池。这是完美的作品。我的用户将提供应用客户端ID和客户端密钥以启用这两个进程。登录后,我的意图是让用户能够使用访问令牌(由用户池返回)通过api网关访问资源。

但是,我的用户可以具有不同的角色,例如管理员,所有者或访客。用户只能访问授权的api。我的方法是将用户放入用户池中的不同组,将IAM策略分配给组并启用标识池。这迫使我将api网关中的授权类型更改为IAM。和IAM要求签名V4签署每个请求。

这意味着每个请求都必须通过会话令牌,访问密钥,秘密(在使用联合池的交换ID令牌之后返回)而不是使用基于访问令牌的方法进行注册。所以在我的用例中,在我的用户通过api网关登录后,我的客户端应用程序(web / mobile / postman工具)必须生成签名并放入Authorization标头。是否有其他方法来控制用户池组中的授权,但在api网关中使用访问令牌?我的理解是访问令牌(在Authorization标头中)比复杂的签名签名过程更容易使用。

如我错了请纠正我。谢谢。

aws-api-gateway amazon-cognito federated-identity aws-userpools
1个回答
0
投票

这会有帮助吗?

在用户池中创建组并将IAM角色分配给该组。

然后将用户添加到该组。

更多文档:https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html

© www.soinside.com 2019 - 2024. All rights reserved.