우리는 우리가 사용하고자하는 멀티 테넌트 응용 프로그램을 실현하려는 :Cognito 사용자
- AWS Cognito 우리의 사용자 풀 우리의 대부분의 데이터에 대한
- AWS DynamoDB의로를
pooled approach을 따르므로 DynamoDB 데이터의 기본 키는 tenantID
입니다. 또한 모든 사용자는 하나의인지 사용자 풀에 풀링됩니다.
우리의 응용 프로그램은 응용 프로그램 내에서 사용자를 표시해야하므로 사용자를 쿼리해야합니다.
AWS Cognito 풀을 직접 쿼리하고 세입자의 모든 사용자를 표시하고 싶습니다. 따라서인지 사용자 인 경우 custom:tenantID
에 속성을 추가하겠습니다.
그러나 문제가 있습니다. 사용자 지정 특성은 not searchable/filterable입니다. 따라서 다른 모든 데이터 테이블을 사용했을 때의 tenantID를 기반으로 쿼리를 수행 할 수 없습니다.
필자는 세입자의 이름과 같은 검색 가능한 데이터 필드 중 하나를 "잘못 사용"한 것으로 생각했지만 잘못된 생각 인 것 같습니다.
나는 사용자를 임차인과 연결할 목적으로만 dynamoDB 테이블을 생성하는 것을 피하고 싶습니다. 이 문제를 해결하기위한 접근 방법은 무엇입니까?
사용자의 ID로 사용할 속성을 추천 할 수 있습니까? 이메일 주소 ? Cognito ID? 당신이 제안한 것과 같은 해결책에 대한 실제 사례를 알고 있습니까? – pfried
Cognito Identity Pool을 사용하려는 경우 CognitoID (Cognito 사용자 ID : Cognito Userpools)를 사용하여 전자 메일 주소를 사용할 수 있습니다 (로컬 및 연합 모두에 대한 사용자 신원 정보가 필수 인 전자 메일 인 경우). 찾을 수 없습니다. 우려를 직접적으로 다루는 백서이지만 멀티 테넌트 응용 프로그램의 경우 전체적으로 다음 두 개의 백서를 참조하십시오. https://d0.awsstatic.com/whitepapers/Multi_Tenant_SaaS_Storage_Strategies.pdf https://d0.awsstatic.com/whitepapers/ saas-solutions-on-aws-final.pdf – Ashan