Amazon web services 多租户Webapp中的Cognito用户

Amazon web services 多租户Webapp中的Cognito用户,amazon-web-services,amazon-dynamodb,amazon-cognito,Amazon Web Services,Amazon Dynamodb,Amazon Cognito,我们希望实现一个多租户应用程序,其中我们希望利用: AWS Cognito作为我们的用户池 AWS DynamoDB提供了我们的大部分数据 当我们遵循a时,DynamoDB数据将以tenantID作为主键。此外,所有用户都集中在一个cognito用户池中 我们的应用程序还需要在应用程序中显示我们的用户,因此我需要查询用户 我想直接查询AWS Cognito池并显示租户的所有用户。因此,我将向cognitouserscustom:tenantID添加一个属性 但有一个问题:自定义属性是,因此我

我们希望实现一个多租户应用程序,其中我们希望利用:

  • AWS Cognito作为我们的用户池
  • AWS DynamoDB提供了我们的大部分数据
当我们遵循a时,DynamoDB数据将以
tenantID
作为主键。此外,所有用户都集中在一个cognito用户池中

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

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

但有一个问题:自定义属性是,因此我无法基于租户进行查询,而我将对所有其他数据表进行查询

我曾想过“滥用”一个可搜索的数据字段,比如租户的姓氏,但这似乎是个坏主意


我希望避免仅仅为了将用户链接到租户而创建dynamoDB表。解决这一问题的方法是什么?

在多租户应用程序中使用AWS Cognito时,仅将Cognito用于身份验证

您可以创建一个用户表,其中包含存储在DynamoDB表中的每个租户的访问控制列表(授权),还可以使用该表搜索用户等


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

您能推荐一个属性作为用户的ID吗?电子邮件地址?Cognito ID?您知道您建议的解决方案的任何真实示例吗?如果您计划使用Cognito Identity Pool,则使用CognitoID(此处为Cognito Identity。对于Cognito Userpools,您可以使用电子邮件地址(如果对于本地和联邦用户标识,电子邮件是必需的)。找不到直接解决此问题的白皮书,但总体而言,对于多租户应用程序,请参阅以下两份白皮书。