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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用户池多租户最佳实践

为应用程序中的每个租户创建一个用户池。此方法为每个租户提供最大程度的隔离。您可以为每个租户实施不同的配置。通过用户池进行租户隔离使您可以灵活地进行 user-to-tenant 映射。您可以为同一用户创建多个配置文件。但是,每个用户必须为他们可以访问的每个租户单独注册。

使用这种方法,您可以为每个租户单独设置托管用户界面,并将用户重定向到您的应用程序的租户特定实例。您也可以使用这种方法与 Amazon API Gatew ay 等后端服务集成。

下图显示每个租户都有一个专用用户池。

one-to-one 多租户模型示意图,其中每个租户都有自己的用户池。
何时实施用户池多租户

当隔离和定制是您的主要关注点时。在具有多个用户池的架构中,用户和租户之间的关系可能很复杂。举一个例子,你有两个教育租户。同一个用户在一个应用程序中可能是访问受限的学生,而在另一个应用程序中可能是具有较高权限的教师。您可能需要在一个应用程序中使用 MFA,但不要求在另一个应用程序中使用 MFA,或者有不同的密码策略。由于本地用户可以使用托管 UI 登录用户池中的多个应用程序客户端,因此,当您希望多个租户使用托管 UI 登录时,用户池多租户也是理想的选择。

工作量水平

使用此方法的开发和操作工作量很大。为了确保您的应用程序系列获得一致且可预测的结果,您必须将 Amazon Cognito 资源与自动化工具集成,并在身份验证架构变得越来越复杂时保持基准。当你想为应用程序创建单一起点时,你必须构建用户界面 (UI) 元素来捕捉将用户引导到正确资源的初始决策。