web-dev-qa-db-fra.com

différence de service aws entre le pool d'utilisateurs cognito et l'identité fédérée

AWS fournit cognito qui fournit au développeur des fonctionnalités d'inscription et de connexion, y compris des fédérations avec des fournisseurs d'identité compatibles OpenId tels que Facebook, Google, etc.

Il existe deux types de catégories dans la console de développement cognito. Il s'agit de la gestion du pool d'utilisateurs et de la gestion des identités fédérées.

Je suis juste un peu confus car les deux sont très similaires, même si nous voulons fournir à notre client une connexion avec son compte Facebook. Le pool d'utilisateurs cognito lui-même fournit la fédération et le pool d'identités de fédération le fournit également par les fournisseurs d'authentification.

La question est que si je veux autoriser mes clients à utiliser leur propre compte Facebook pour se connecter, quelles catégories dois-je utiliser? pool d'utilisateurs ou identités fédérées?

De plus, si je veux configurer l'autorisateur dans la passerelle API, je dois créer un pool d'utilisateurs cognito mais un pool d'identités fédérées. Est-ce la principale raison du choix de la catégorie cognito?

18
jwchoi

Vous pouvez considérer les pools d'utilisateurs comme une sorte de répertoire contenant des attributs utilisateur tels que le nom, l'adresse e-mail, le numéro de téléphone, etc. Cela permet également de s'inscrire et de se connecter. Vous pouvez fédérer des utilisateurs dans des pools d'utilisateurs. Actuellement, vous pouvez utiliser Facebook, Google et SAML comme fournisseurs d'identité pour les pools d'utilisateurs.

Les identités Cognito Federated vous permettent de fédérer des utilisateurs dans AWS et de fournir des informations d'identification AWS qui peuvent être utilisées pour accéder aux ressources que vous autorisez dans votre stratégie. Pour les identités fédérées Cognito, vous disposez également d'une variété de fournisseurs d'identité que vous pouvez configurer, tels que Facebook, Google, et les pools d'utilisateurs Cognito peuvent également être un fournisseur d'identité.

Ce que vous utilisez dépend de votre cas d'utilisation. Si vous n'avez pas besoin de ressources AWS pour votre application, vous avez probablement besoin de pools d'utilisateurs.

23
Ionut Trestian

Pool d'utilisateurs Cognito:

Le pool d'utilisateurs d'Amazon Cognito permet aux développeurs d'ajouter facilement des fonctionnalités d'inscription et de connexion aux applications Web et mobiles. Il sert de votre propre fournisseur d'identité pour gérer un annuaire d'utilisateurs. Il prend en charge l'enregistrement et la connexion des utilisateurs, ainsi que la fourniture de jetons d'identité pour les utilisateurs connectés.

Identités fédérées ou pool d'identités Cognito:

D'autre part, Cognito Identity Pool (ou Cognito Federated Identities) est un moyen d'autoriser vos utilisateurs à utiliser les différents services AWS. Supposons que vous vouliez autoriser un utilisateur à accéder à votre compartiment S3 afin qu'il puisse télécharger un fichier; vous pouvez spécifier cela lors de la création d'un groupe d'identités. Et pour créer ces niveaux d'accès, le pool d'identités a son propre concept d'identité (ou d'utilisateur). La source de ces identités (ou utilisateurs) pourrait être un groupe d'utilisateurs Cognito ou même Facebook ou Google.

Relation entre le pool d'utilisateurs et le pool d'identités:

Cognito Identity Pool prend simplement tous les fournisseurs d'identité et les rassemble (les fédère). Et avec tout cela, il peut désormais donner à vos utilisateurs un accès sécurisé à vos services AWS, peu importe d'où ils viennent.

Relationship between User pool and Identity pool

Donc, en résumé, le pool d'utilisateurs Cognito stocke tous les utilisateurs qui se connectent ensuite au pool d'identités Cognito qui peut donner aux utilisateurs l'accès aux services AWS.

source

28
Mahbubur Rahman

Je pense qu'AWS devrait séparer le groupe d'utilisateurs du groupe d'identités, car je pense que les avoir tous les deux sous "AWS Cognito" et les mélanger crée beaucoup de confusion.

Mieux se concentrer sur Identity Pool. Parce que le pool d'utilisateurs n'est qu'un autre service de fournisseur d'identité comme Google, Facebook, Auth0, etc., que le pool d'identités peut utiliser.

Préparation

Avant de passer à ce que le groupe d'identité fait/est, mieux vaut comprendre certaines choses.

Jeton AWS STS

En disant naïvement, AWS STS Token nous permet de créer, utiliser, mettre à jour, supprimer des ressources AWS par programme.

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN

Si vous avez un utilisateur de compte AWS, vous pouvez obtenir AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY pour l'utilisateur, puis obtenir un jeton STS en utilisant par exemple MFA.

Rôle IAM

En réalité, un rôle IAM définit les actions autorisées sur quelles ressources AWS pour un jeton STS. Il peut ne pas permettre de supprimer mais de créer . Cela dépend donc du rôle IAM ce qu'un jeton STS nous permet de faire.

Cependant, le point à noter est qu'il existe une association entre un rôle IAM et un jeton STS que vous obtenez, et quelqu'un doit définir l'association pour vous.

Ce que le pool d'identité vous offre

Il donne un jeton STS , à l'aide duquel vous pouvez manipuler les ressources AWS dans un compte AWS.


Situation dans laquelle le pool d'identités est utile

Un autre problème d'AWS pour moi est que leur documentation ne déclare pas C'est quand vous avez besoin du pool d'identités , mais continuez à répéter le mot La fédération qui ne pointe pas sur ce que fait le groupe d'identités, vous permet de manipuler les ressources AWS avec un jeton STS .

Si vous êtes dans la situation où:

  • Je souhaite manipuler les ressources AWS dans un compte AWS, et
  • Je n'ai pas d'utilisateur AWS IAM (ou je ne souhaite pas l'utiliser), mais
  • J'ai un compte dans Corporate AD, ou dans Google, ou sur Facebook, ou dans Auth0, ou ..., ou dans Cognito User Pool.

Ensuite, vous pouvez utiliser Identity Pool pour obtenir un jeton STS pour le compte, par exemple Google que vous avez connecté, et pouvez manipuler la ressource AWS.

Par exemple, si vous avez plus de 1000 utilisateurs dans votre AD d'entreprise et que vous souhaitez les laisser utiliser les ressources AWS d'une manière ou d'une autre. Souhaitez-vous créer plus de 1000 utilisateurs AWS IAM? Ou trouver un moyen de les mapper à quelques rôles IAM tels que "Administrateur", "Comptabilité", "Finance", "IT"?


À quoi sert le pool d'identités

Identity Pool mappe un jeton de fournisseur d'identité (par exemple, un jeton Google) à un rôle IAM dans un compte AWS et donne un jeton STS.

AWS appelle ce "mappage" comme Fédération , à ma connaissance.

Je recommanderais d'oublier complètement le groupe d'utilisateurs lors de la discussion du groupe d'identités. Le groupe d'utilisateurs n'est qu'un autre fournisseur d'identité dont vous n'avez peut-être pas besoin du tout.

De même, lorsque je discute du groupe d'utilisateurs, je recommanderais d'oublier complètement le groupe d'identités.

J'espère qu'AWS séparera le service de fournisseur d'identité (pool d'utilisateurs) du service de mappage de jetons (pool d'identités) pour arrêter de provoquer des confusions.

enter image description here

1
mon