2017-10-07 4 views
1

Nous voulons réaliser une application locataire à plusieurs où nous voulons utiliser:utilisateurs Cognito dans plusieurs locataires Webapp

  • AWS Cognito notre pool d'utilisateurs
  • AWS DynamoDB pour la plupart de nos données

Comme nous suivons un pooled approach, nos données DynamoDB auraient le tenantID comme une clé primaire. Tous les utilisateurs sont également regroupés dans un pool d'utilisateurs cognito.

Notre application doit également afficher nos utilisateurs au sein de l'application, par conséquent, j'ai besoin d'interroger les utilisateurs.

Je souhaite interroger directement le pool AWS Cognito et afficher tous les utilisateurs d'un locataire. Par conséquent, je voudrais ajouter un attribut aux utilisateurs cognito custom:tenantID.

Mais il y a un problème: Les attributs personnalisés sont not searchable/filterable, donc je ne peux pas faire une requête basée sur le locationID ce que j'aurais fait avec toutes les autres tables de données.

Je pensais à "mal utiliser" l'un des champs de données interrogeables comme le nom de famille pour le locataire, mais cela semble être une mauvaise idée.

Je voudrais éviter de créer une table dynamoDB dans le seul but de lier un utilisateur à un locataire. Quelles sont les approches pour résoudre cela? Lorsque vous utilisez AWS Cognito pour une application à locataires multiples, utilisez Cognito uniquement pour l'authentification.

Répondre

2

Vous pouvez créer une table utilisateur avec la liste de contrôle d'accès (autorisation) pour chaque locataire stocké dans une table de DynamoDB que vous pouvez également utiliser pour rechercher des utilisateurs & etc.

Si vous utilisez un appelé locataire attribut personnalisé ou En plus de la limitation de la recherche, vous pouvez également limiter l'utilisateur à un seul locataire.

+0

pouvez-vous recommander un attribut à utiliser comme ID pour l'utilisateur alors? adresse e-mail ? Cognito ID? Connaissez-vous des exemples du monde réel pour une solution comme celle que vous avez suggérée? – pfried

+0

Si vous envisagez d'utiliser Cognito Identity Pool, utilisez CognitoID (ici Cognito Identity.) Avec Cognito Userpools, vous pouvez utiliser l'adresse électronique (si le courrier électronique est obligatoire pour l'identité de l'utilisateur local et fédéré). un livre blanc traitant directement de la préoccupation, mais dans l'ensemble pour les demandes multi-locataires se référer aux deux livres blancs suivants: https://d0.awsstatic.com/whitepapers/Multi_Tenant_SaaS_Storage_Strategies.pdf https://d0.awsstatic.com/whitepapers/ saas-solutions-on-aws-final.pdf – Ashan