

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用者群組多租戶最佳實務
<a name="group-based-multi-tenancy"></a>

當您的架構需要具有身分集區的 Amazon Cognito 使用者集區時，群組型多租戶最有效。

使用者集區 [ID 和存取權杖](amazon-cognito-user-pools-using-tokens-with-identity-providers.md#amazon-cognito-user-pools-using-tokens-with-identity-providers.title)包含`cognito:groups`宣告。此外，ID 字符包含 `cognito:roles`和 `cognito:preferred_role`宣告。當您應用程式中的身分驗證主要結果是來自身分集區的臨時 AWS 憑證時，您的使用者群組成員資格可以判斷他們收到的 [IAM 角色](iam-roles.md#iam-roles.title)和許可。

例如，請考慮三個租用戶，每個租用戶都會將應用程式資產存放在自己的 Amazon S3 儲存貯體中。將每個租用戶的使用者指派給相關聯的群組，為群組設定偏好的角色，並授予該角色對其儲存貯體的讀取存取權。

下圖顯示與使用者集區中的專用群組共用應用程式用戶端和使用者集區的租戶，這些群組會決定他們是否符合 IAM 角色的資格。

![\[many-to-one多租用戶模型的圖表，其中每個租用戶在共用使用者集區中都有自己的使用者群組。\]](http://docs.aws.amazon.com/zh_tw/cognito/latest/developerguide/images/multi-tenancy-group.png)


**何時實作群組多租用戶**  
當存取 AWS 資源是您的主要考量時。Amazon Cognito 使用者集區中的群組是角色型存取控制 (RBAC) 的機制。您可以在使用者集區中設定多個群組，並以群組優先順序進行複雜的 RBAC 決策。身分集區可以為具有最高優先順序的角色、群組宣告中的任何角色，或使用者字符中的其他宣告指派登入資料。

**努力程度**  
單獨使用群組成員資格維持多租戶的工作量很低。不過，若要將使用者集區群組的角色擴展到 IAM 角色選擇的內建容量之外，您必須建置應用程式邏輯，以處理使用者字符中的群組成員資格，並決定在用戶端中該怎麼做。您可以將 Amazon Verified Permissions 與您的應用程式整合，以做出用戶端授權決策。群組識別符目前未在 Verified Permissions [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html) API 操作中處理，但您可以[開發自訂程式碼](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/identity-providers.html#identity-providers_other-idp)來剖析字符的內容，包括群組成員宣告。