使用者集區群組多租戶最佳做法 - Amazon Cognito

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

使用者集區群組多租戶最佳做法

當您的架構需要具有身分集區的 Amazon Cognito 使用者集區時,以群組為基礎的多租戶最有效。

用戶池 ID 和訪問令牌包含cognito:groups聲明。此外,ID 令牌包含cognito:rolescognito:preferred_role聲明。當您的應用程式中進行身份驗證的主要結果是來自身分集區的臨時 AWS 登入資料時,您的使用者群組成員資格可以決定他們收到的 IAM 角色和許可。

舉例來說,假設三個租用戶,每個租用戶將應用程式資產存放在自己的 Amazon S3 儲存貯體中。將每個承租人的使用者指派給相關聯的群組、設定群組的慣用角色,以及將該角色讀取存取權授與其值區。

下圖顯示與使用者集區共用應用程式用戶端和使用者集區的租用戶,以及決定其具有 IAM 角色資格的使用者集區中的專用群組。

many-to-one 多租戶模型的圖表,其中每個租用戶在共用使用者集區中都有自己的使用者群組。
何時實施群組多租戶

訪問 AWS 資源是您的首要關注點時。Amazon Cognito 使用者集區使用者集區中的群組是以角色為基礎的存取控制 (RBAC) 的一種機制。您可以在使用者集區中設定多個群組,並以群組優先順序做出複雜的 RBAC 決策。身分集區可以為優先順序最高的角色、群組中宣告的任何角色或使用者權杖中的其他宣告指派認證。

努力程度

僅使用群組成員資格維護多租戶的努力程度很低。不過,若要將使用者集區群組的角色擴充到 IAM 角色選取的內建容量之外,您必須建置應用程式邏輯,以處理使用者權杖中的群組成員資格,並決定要在用戶端中執行的動作。您可以將 Amazon 驗證許可與應用程式整合,以做出用戶端授權決策。群組識別碼目前不會在已驗證的權限 IsAuthorizedWithTokenAPI 作業中處理,但您可以開發自訂程式碼來剖析權杖的內容,包括群組成員資格宣告。