使用者群組多租戶最佳實務 - 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 Verified Permissions 與應用程式整合,以做出用戶端授權決策。群組識別符目前未在 Verified Permissions IsAuthorizedWithTokenAPI操作中處理,但您可以開發自訂程式碼來剖析權杖的內容,包括群組成員權主張。