我們要認識到,我們要利用多租戶應用:Cognito在多租戶的webapp用戶
- AWS Cognito爲我們的用戶羣
- AWS DynamoDB爲我們的大多數數據
由於我們正在關注pooled approach,因此我們的DynamoDB數據將以tenantID
作爲主鍵。所有用戶也都集中在一個認知用戶池中。
我們的應用程序還需要在應用程序中顯示我們的用戶,因此我需要查詢用戶。
我想直接查詢AWS Cognito池並顯示租戶的所有用戶。因此我會向認證用戶custom:tenantID
添加一個屬性。
但有一個問題:自定義屬性是not searchable/filterable,所以我不能做一個基於tenantID的查詢,我會做所有其他數據表。
我曾經想過爲一個可以搜索的數據字段「濫用」租戶的姓名,但這似乎是一個糟糕的主意。
我想避免創建一個用於將用戶鏈接到租戶的唯一目的的dynamoDB表。有什麼辦法來解決這個問題?
你能推薦一個屬性作爲用戶的ID嗎?電子郵件地址 ? Cognito ID?你是否知道像你所建議的解決方案的真實世界的例子? – pfried
如果您打算使用Cognito身份庫,然後使用CognitoID(這裏是Cognito身份使用Cognito Userpools,您可以使用電子郵件地址(如果電子郵件對於本地和聯盟用戶身份都是強制性的) 找不到白皮書直接解決了這個問題,但是對於多租戶應用程序而言,請參閱以下兩份白皮書: https://d0.awsstatic.com/whitepapers/Multi_Tenant_SaaS_Storage_Strategies.pdf https://d0.awsstatic.com/whitepapers/ SaaS的解決方案上,AWS-final.pdf – Ashan