基于用户池的多租户 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

基于用户池的多租户

利用此设计,您可以为应用程序中的每个租户创建一个用户池。此方法为每个租户提供最大程度的隔离。您可以为每个租户实施不同的配置。按用户池隔离租户为您在用户到租户映射中提供了灵活性。您可以为同一用户创建多个配置文件。但是,每个用户必须为他们可以访问的每个租户单独注册。使用此方法,可以单独为每个租户设置托管 UI,并将用户重新导向到您应用程序的租户特定实例。您还可以使用此方法与 API Gateway 等后端服务集成。

您可以在以下场景下使用基于用户池的多租户:

  • 您的应用程序对于每个租户具有不同的配置。例如,每个租户的数据驻留要求、密码策略和 MFA 配置可能有所不同。

  • 您的应用程序具有复杂的用户到租户角色映射。例如,某个用户可以在租户 A 中是“学生”,也可以在租户 B 中是“教师”。

  • 您的应用程序使用默认 Amazon Cognito 托管 UI 作为本机用户进行身份验证的主要方法。本机用户是已在用户池中使用用户名和密码创建的用户。

  • 您的应用程序具有孤立的多租户应用程序,其中每个租户都可以获取应用程序基础设施的完整实例以供其使用。

工作量级别

使用此方法的开发和操作工作量很大。您必须在使用 Amazon Cognito API 操作和自动化工具的应用程序中构建租户登录和管理组件。这些组件是为每个租户创建所需资源所必需的组件。您还需要实施与租户匹配的用户界面。此外,您必须向应用程序添加逻辑,以便用户注册和登录其相应租户的用户池。