我们希望实现一个我们想要利用的多租户应用程序:
当我们关注pooled approach时,我们的DynamoDB数据将tenantID
作为主键。此外,所有用户都集中在一个cognito用户池中。
我们的应用程序还需要在应用程序中显示我们的用户,因此我需要查询用户。
我想直接查询AWS Cognito池并显示租户的所有用户。因此,我会向认知用户custom:tenantID
添加一个属性。
但是有一个问题:自定义属性是not searchable / filterable,所以我不能根据tenantID进行查询,我将对所有其他数据表做什么。
我想过"误用"其中一个可搜索的数据字段,如租户的姓氏,但这似乎是一个坏主意。
我想避免创建一个dynamoDB表,仅用于将用户链接到租户。解决这个问题的方法是什么?
答案 0 :(得分:2)
将AWS Cognito用于多租户应用程序时,请仅使用Cognito进行身份验证。
您可以为存储在DynamoDB表中的每个租户创建一个带有访问控制列表(授权)的用户表,您也可以使用该表来搜索用户&等。
如果您在Cognito中使用名为tenant的自定义属性或商店租户标识符,除了搜索限制之外,您还会将用户限制为单个租户。