AWS:授权用户访问特定客户

时间:2021-01-16 01:52:03

标签: javascript reactjs amazon-web-services vue.js amazon-cognito

所以我在 AWS Cognito 上进行了以下设置:

AWS Cognito 用户池:UserPool_1

在这个用户池下我定义了 3 个用户:Mike、Sarah、John

我在这个用户池下有 3 个应用客户端:

WebClient_1

WebClient_2

WebClient_3

我希望 Mike 能够访问:WebClient_1WebClient_2WebClient_3

我希望Sarah只能访问:WebClient_3

并且John只能访问WebClient_2

目前所有用户都可以访问此用户池下定义的所有 3 个网络应用程序,这不是我想要的。

如何限制用户池中的用户访问特定应用客户端?

假设 Sarah 尝试访问 WebClient_1,我希望她收到一条消息:“用户未授权

我如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

我解决这个问题的方法是使用 Cognito Pre Authentication Lambda。当用户请求身份验证时,Cognito 触发器运行自定义 Lambda 脚本。在您的 Lambda 脚本中,您将收到一个带有 common parameters 的事件。您可以取参数 callerContext.clientIduserName 并进行一些处理。对于少数用户,您可以只在脚本中保留用户-客户端映射,但更有可能的是,您希望在 DynamoDB 等数据库中查找映射。

编辑:要接受您执行的身份验证 callback(null, event); 并拒绝它您执行 callback("you are not coming in", null);