多租户Webapp中的Cognito用户

时间:2017-10-07 15:40:12

标签: amazon-web-services amazon-dynamodb amazon-cognito

我们希望实现一个我们想要利用的多租户应用程序:

  • AWS Cognito作为我们的用户池
  • 我们大部分数据的AWS DynamoDB

当我们关注pooled approach时,我们的DynamoDB数据将tenantID作为主键。此外,所有用户都集中在一个cognito用户池中。

我们的应用程序还需要在应用程序中显示我们的用户,因此我需要查询用户。

我想直接查询AWS Cognito池并显示租户的所有用户。因此,我会向认知用户custom:tenantID添加一个属性。

但是有一个问题:自定义属性是not searchable / filterable,所以我不能根据tenantID进行查询,我将对所有其他数据表做什么。

我想过"误用"其中一个可搜索的数据字段,如租户的姓氏,但这似乎是一个坏主意。

我想避免创建一个dynamoDB表,仅用于将用户链接到租户。解决这个问题的方法是什么?

1 个答案:

答案 0 :(得分:2)

将AWS Cognito用于多租户应用程序时,请仅使用Cognito进行身份验证。

您可以为存储在DynamoDB表中的每个租户创建一个带有访问控制列表(授权)的用户表,您也可以使用该表来搜索用户&等。

如果您在Cognito中使用名为tenant的自定义属性或商店租户标识符,除了搜索限制之外,您还会将用户限制为单个租户。