背景:我有一个网页(内部工具),使用API,这是与cognito安全。当前在池中创建用户的方式如下所示:
- 用户进入网页
- 使用Google 登录
- Cognito创建用户池与外部提供者-谷歌
- IT将用户分配到适当的组=用户可以使用网页,取决于他被分配到哪些组。
现在,问题是前两步。为了让用户出现在池中,他必须首先进入网页(在此用户被自动踢出后,因为他没有被分配到任何组)&得等别人给他分配小组。我想自动化这些步骤,以便用户可以输入工具&让它马上可用。
是否有一种方法来创建(使用API)池中的用户(与外部身份提供程序),这样我就可以在Cognito中自动创建条目+将他分配给组?
因为公司有GSuite,我有可能从cognito &谷歌来创造它。有人知道怎么做吗?我想我已经通读了boto3文档& &;Cognito文档&找不到任何答案
我正试图解决同样的问题。用户是通过Cognito外部提供程序创建的,但在有人手动将生成的用户添加到分配了必要角色的用户组之前,用户不会有访问权限。
我正在考虑的一个可能的选择是将所有用户组一起删除。在Cognito Identity Pool中,有一个基于Cognito令牌中包含的声明来分配角色的选项。因此,不用IT将用户映射到具有所需角色的组,而是可以在用户首次登录之前以编程方式更新身份池上的规则。向身份池添加一个规则,该规则检查userId声明并映射适当的角色,可以解决这个用例。见# using-rules-to-assign-roles-to-users (https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html)。编辑:我意识到这将不起作用,因为身份池上有25条规则的限制,所以为每个用户添加规则是不可行的。
另一个选项可能是在Cognito用户池上使用lambda触发器,因为这允许更多自定义逻辑。lambda可以在登录时使用预定的映射检查数据库,并以编程方式将用户分配给用户组。对于我假设的一个非常常见的用例来说,这将是相当多的工作/组件。希望有另一种我不知道的方法。
这两个选项似乎都没有我期望的那么干净/简单,所以我很好奇你是否找到了一个更好的解决方案。