

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

# 应用程序客户端多租户最佳实践
<a name="application-client-based-multi-tenancy"></a>

为应用程序中的每个租户创建一个[应用程序客户端](user-pool-settings-client-apps.md#user-pool-settings-client-apps.title)。借助应用程序客户端多租户，您可以将任何用户分配给与租户关联的应用程序客户端，并保留单个用户配置文件。由于您可以将用户池中的任何或所有[身份提供者 (IdPs)](cognito-user-pools-identity-federation.md#cognito-user-pools-identity-federation.title) 分配给应用程序客户端，因此租户应用程序客户端可以允许使用租户特定的 IdP 登录。当用户存在于多个租户中时，您可以将他们的个人资料与多个租户关联起来， IdPs 以获得一致的用户体验。

下图显示共享用户池中的每个租户有一个专用应用程序客户端。

![\[one-to-one多租户模型示意图，其中每个租户在共享用户池中都有自己的应用程序客户端。\]](http://docs.aws.amazon.com/zh_cn/cognito/latest/developerguide/images/multi-tenancy-app-client.png)


**何时实施应用程序客户端多租户**  
当您可在用户池级别选择设置的通用配置（例如 Lambda 触发器、密码策略以及电子邮件和短信的内容和传递方式）时。由于共享用户池中的用户可以登录任何应用程序客户端，因此应用程序客户端多租户非常适合使用或 A app-client-specific IdPs mazon Cognito 用户池 API 登录。App-Client 多租户也非常适合您希望允许用户在多个应用程序之间切换的 one-to-many环境。

**工作量水平**  
实施应用程序客户端多租户需要一定的工作量。应用程序客户端多租户面临的一个主要挑战是，租户能否提供托管 UI Cookie 并在应用程序之间切换。在应用程序客户端多租户架构中，在需要隔离的地方避免使用托管 UI 登录。您可以使用内置的应用程序客户端逻辑分发移动应用程序或指向 Web 应用程序的链接，也可以构建初步的 UI 元素，用来确定用户的租赁。因为您无需跨多个用户池和身份池来标准化和维护配置，所以工作量较低。