FAQ d'Amazon Cognito

Questions d’ordre général

Amazon Cognito vous permet d'ajouter l'inscription des utilisateurs, la connexion, le contrôle d'accès et l'accès négocié aux services AWS à vos applications web et mobiles en quelques minutes. Il s'agit d'un service rentable et centré sur les développeurs qui fournit des magasins d'identité sécurisés et basés sur les locataires, et des options de fédération pouvant se mettre à l’échelle de millions d'utilisateurs. Amazon Cognito vous aide à créer des expériences client personnalisées, à améliorer la sécurité et à vous adapter aux besoins de vos clients. Par exemple, il prend en charge la connexion avec des fournisseurs d'identité sociale et la connexion sans mot de passe à l'aide de clés d’accès WebAuthn ou de mots de passe à usage unique par SMS et e-mail. Amazon Cognito prend en charge diverses normes de conformité, fonctionne selon des normes d'identité ouvertes et s'intègre à un vaste catalogue de ressources de développement et de bibliothèques de SDK.

Avec Amazon Cognito, vous pouvez vous concentrer sur la création d'excellentes expériences d'application au lieu de vous attarder sur la création, la sécurisation et la mise à l’échelle d'une solution pour gérer la gestion et l'authentification des utilisateurs.

Vous pouvez facilement démarrer en accédant à la console AWS. Si vous n'avez pas de compte Amazon Web Services, vous pouvez en créer un lorsque vous vous connectez à la console. Une fois que vous avez créé un groupe d'utilisateurs pour la gestion des utilisateurs ou un groupe d'identités pour les identités fédérées, vous pouvez intégrer votre application et vos API à OAuth et OpenID Connect (OIDC).

Consultez nos ressources de démarrage pour plus d'informations.

Amazon Cognito est conçu pour les développeurs qui souhaitent ajouter la fonctionnalité de gestion et de synchronisation des utilisateurs sur leurs applications mobiles et web. Les développeurs peuvent utiliser Cognito Identity pour ajouter l'inscription et la connexion sur leurs applications, et pour permettre aux utilisateurs d'accéder en toute sécurité aux ressources de l'application. Cognito permet également aux développeurs de synchroniser les données sur différents périphériques, plates-formes et applications.

Oui. Cognito expose des API côté serveur. Vous pouvez créer une interface personnalisée avec Cognito en appelant ces API directement. Les API côté serveur sont décrites dans le manuel destiné aux développeurs.

Cognito est pris en charge par le kit SDK AWS Mobile en option, qui est disponible pour les périphériques iOS, Android, Unity et Kindle Fire. Cognito est également disponible dans le AWS SDK pour .NET, C++, Go, Java, JavaScript, PHP v3, Python, Ruby v3 et dans l'interface de ligne de commande.

Consultez notre page de ressources pour voir et télécharger les SDK disponibles.

Non. Cognito expose ses API de données et de commande en tant que services web. Vous pouvez donc implémenter votre propre bibliothèque de clients pour appeler les API côté serveur directement.

Ajoutez l'inscription et la connexion à vos applications web et mobiles

Pour les authentificateurs de premier facteur, Amazon Cognito prend en charge le nom d'utilisateur/mot de passe, les e-mails OTP sans mot de passe, les SMS OTP sans mot de passe et les clés d'accès WebAuthn. Cognito prend en charge les authentificateurs multifacteurs (MFA) suivants : authentificateurs OTP pour les e-mails, OTP pour SMS et TOTP. En outre, les clients et les partenaires peuvent mettre en œuvre un support pour des produits tiers et des authentificateurs sur mesure avec des flux d'authentification personnalisés, à l'aide des Extensions AWS Lambda.

Oui, vous pouvez ajouter facilement et en toute sécurité la fonctionnalité d'inscription et de connexion à vos applications avec Amazon Cognito. Vos utilisateurs peuvent s'inscrire et se connecter avec une adresse e-mail, un numéro de téléphone ou un nom d'utilisateur. Vous pouvez également mettre en place des fonctionnalités de sécurité améliorées comme la vérification des e-mails et des numéros de téléphone et l'authentification multi-facteurs. Cognito vous permet de personnaliser les flux de travail en ajoutant, par exemple, une logique spécifique à l'application lors de l'enregistrement des utilisateurs pour la détection des fraudes et la validation des utilisateurs via AWS Lambda. Pour en savoir plus, veuillez consulter notre documentation.

Un groupe d'utilisateurs est un répertoire d'utilisateurs basé sur les locataires que vous pouvez configurer pour vos applications Web et mobiles. Un groupe d'utilisateurs stocke en toute sécurité les attributs de profil de vos utilisateurs et prend en charge un schéma personnalisé. Vous pouvez créer et gérer un pool d'utilisateurs à l'aide de la console AWS, de la CLI AWS ou du kit SDK AWS.

Les développeurs peuvent utiliser des attributs de profil d'utilisateur standard basés sur OpenID Connect (ex. : nom d'utilisateur, numéro de téléphone, adresse, fuseau horaire, etc.) ou personnalisés pour ajouter des attributs d'utilisateur spécifiques aux applications.

Oui, vous pouvez utiliser la fonction d'aliasing pour permettre à vos utilisateurs de s'inscrire et de se connecter en utilisant une adresse e-mail et un mot de passe ou un numéro de téléphone et un mot de passe.

Pour en savoir plus, veuillez consulter notre documentation.

 

Oui, vous pouvez définir des politiques de mot de passe, telles que la longueur du mot de passe, la complexité des caractères et les exigences relatives à l'historique des mots de passe lors de la configuration de votre groupe d'utilisateurs. En outre, Amazon Cognito prend en charge la vérification des informations d'identification compromises lors de chaque inscription, connexion et changement de mot de passe pour s'assurer que les utilisateurs ne se connectent pas avec un mot de passe qui a été compromis sur un autre site.

Oui, avec Amazon Cognito, vous pouvez exiger la vérification des adresses e-mail et des numéros de téléphone de vos utilisateurs avant de les autoriser à accéder à votre application. Lors de l'inscription, un code de vérification est envoyé au numéro de téléphone ou à l'adresse e-mail de l'utilisateur qui doit alors entrer ce code pour terminer le processus d'enregistrement et confirmer son inscription.

Oui, vous pouvez autoriser les utilisateurs finaux de votre application à se connecter à l'aide de l'authentification multi-facteurs (MFA) par SMS. Lorsque l'authentification multi-facteurs (MFA) par SMS est activée, vos utilisateurs sont invités à saisir leur mot de passe (le premier facteur – ce qu'ils connaissent) et un code de sécurité qu'ils peuvent uniquement recevoir par SMS sur leur téléphone mobile (le deuxième facteur – ce qu'ils possèdent).

Oui, vous pouvez personnaliser les flux d'inscription et de connexion à l'aide d'AWS Lambda. Par exemple, vous pouvez créer des fonctions AWS Lambda pour identifier les fraudes ou soumettre les données des utilisateurs à des validations supplémentaires. Vous pouvez déclencher des fonctions Lambda personnalisées lors de la pré-inscription, de la post-confirmation (enregistrement), de la pré-authentification, pendant l'authentification et lors de la post-authentification. Vous pouvez également utiliser des fonctions Lambda pour personnaliser les messages envoyés dans le cadre de la vérification des e-mails ou des numéros de téléphone et de l'authentification multi-facteurs.

Oui, vous pouvez choisir de mémoriser les appareils utilisés pour accéder à votre application et associer ces appareils aux utilisateurs de votre application dans un groupe d'utilisateurs Cognito. Vous pouvez également choisir d'utiliser des appareils mémorisés pour supprimer les problèmes liés au second facteur (authentification adaptative) pour vos utilisateurs lorsque vous avez configuré l'authentification multifacteur.

Il existe deux façons pour migrer des utilisateurs depuis le répertoire ou la base de données de votre application vers des groupes d'utilisateurs : la migration juste à temps (JIT) et la migration en masse.

Amazon Cognito vous aide à migrer des utilisateurs juste à temps lorsqu'ils se connectent à votre application en utilisant un déclencheur AWS Lambda intégré. Le déclencheur Lambda vous permet de migrer les données des utilisateurs depuis un système externe sans les obliger à réinitialiser leur mot de passe.

Sinon, vous pouvez faire migrer des utilisateurs en masse en chargeant un fichier CSV contenant les données de profil pour tous les utilisateurs de votre application. Vous pouvez charger le fichier CSV par la console Amazon Cognito, les API ou l'interface de ligne de commande AWS. À leur première connexion, les utilisateurs doivent vérifier leur compte et créer un nouveau mot de passe en utilisant un code de vérification envoyé à leur adresse e-mail ou numéro de téléphone.

Pour en savoir plus, consultez la section Importation d'utilisateurs dans un groupe d'utilisateurs.

Permettre l'accès aux ressources AWS

Oui, les groupes d’identités Cognito vous permettent d'authentifier les utilisateurs par le biais d'un fournisseur d'identité externe et fournissent des informations d'identification de sécurité temporaires pour accéder aux ressources du backend de votre application dans AWS ou tout autre service basé sur Amazon API Gateway. Amazon Cognito fonctionne avec des fournisseurs d'identité externes prenant en charge SAML ou OpenID Connect, ainsi qu'avec des fournisseurs d'identité sociale (comme Facebook, Twitter et Amazon). En outre, vous pouvez intégrer votre propre fournisseur d'identité.

Vous pouvez vous connecter avec Apple ou utiliser Amazon, Facebook, Twitter, les fournisseurs d'identité sociale de Google, les fournisseurs d'identité OpenID Connect (OIDC), les fournisseurs d'identité SAML, les groupes d'utilisateurs Amazon Cognito et les fournisseurs de développeurs personnalisés.

Les groupes d'identités vous permettent de créer des identités uniques pour vos utilisateurs et de les fédérer en toute sécurité avec les fournisseurs de services AWS. Les clients utilisent les groupes d'identités Amazon Cognito en tant que courtier d'informations d'identification pour obtenir des informations d'identification AWS temporaires à privilèges limités afin d'accéder aux ressources AWS.

Les utilisateurs peuvent se connecter via des groupes d'utilisateurs Amazon Cognito, des fournisseurs d'identité OIDC, des fournisseurs d'identité SAML ou des fournisseurs d'identité sociale, et obtenir un accès basé sur les rôles aux services AWS, tels que les compartiments Amazon S3 ou les enregistrements Amazon DynamoDB. Les pools d'identités ne stockent pas les profils d'utilisateurs. Un pool d'identités peut être associé à une ou plusieurs applications. Si vous utilisez deux pools d'identités différents pour deux applications, alors un même utilisateur sera associé à un identifiant unique différent dans chaque pool d'identités.

Votre application mobile assure l'authentification via le fournisseur d'identité, à l'aide du kit SDK de ce fournisseur. Une fois que l'utilisateur final est authentifié auprès de l'IdP, le jeton OpenID Connect ou l'assertion SAML renvoyée par l'IdP est transmis par votre application au groupe d'identités Cognito, qui renvoie un nouvel identifiant Cognito pour l'utilisateur et un ensemble d'informations d'identification AWS temporaires à privilèges limités.

Les groupes d’identités Cognito peuvent être intégrés à votre système d'authentification existant. Grâce à un simple appel d'API, vous pouvez récupérer un ID Cognito pour vos utilisateurs finaux selon votre propre identifiant unique pour vos utilisateurs. Une fois que vous avez récupéré l'ID Cognito et le jeton OpenID fourni par Cognito, vous pouvez utiliser le SDK du groupe d’identités client Cognito pour accéder aux ressources AWS et synchroniser les données utilisateur.

Les groupes d’identités Cognito attribuent à vos utilisateurs un ensemble d'informations d'identification temporaires offrant des droits limités pour accéder à vos ressources AWS. Vous n'avez donc plus à utiliser les informations d'identification de votre compte AWS. Les autorisations accordées à chaque utilisateur sont contrôlées via les rôles AWS IAM que vous créez. Vous pouvez définir les règles pour choisir le rôle IAM pour chaque utilisateur ou, si vous utilisez des groupes dans un pool d'utilisateurs Cognito, vous pouvez attribuer des rôles IAM en fonction des groupes. Les groupes d’identités Cognito vous permettent également de définir un rôle IAM distinct avec des autorisations limitées pour les utilisateurs invités qui ne sont pas authentifiés. De plus, vous pouvez utiliser l'identifiant unique que Cognito génère pour vos utilisateurs pour contrôler l'accès à des ressources spécifiques. Par exemple, il est possible de créer une politique pour un compartiment S3 autorisant uniquement chaque utilisateur à accéder à son propre dossier dans le compartiment.

Non, votre application communique directement avec le fournisseur d'identités public pris en charge (Amazon, Facebook, Twitter, connexion avec Apple, Google, SAML ou un fournisseur compatible avec Open ID Connect) pour authentifier les utilisateurs. Cognito Identity ne reçoit pas les informations d'identification des utilisateurs et ne peut donc pas les stocker. Cognito Identity utilise le jeton envoyé par le fournisseur d'identités pour obtenir un identifiant unique pour l'utilisateur, puis le traite à l'aide d'une fonction de hachage unidirectionnelle afin que ce même utilisateur puisse être à nouveau reconnu à l'avenir sans stocker son identifiant réel.

Non. Cognito Identity ne reçoit aucune information confidentielle (adresses e-mail, listes d'amis ou autre) de la part des fournisseurs d'identités.

Les groupes d’identités Cognito prennent en charge la création et le processus d'attribution de jetons pour tous les utilisateurs, qu'ils soient authentifiés ou non. Ce système vous évite d'ajouter un écran de connexion supplémentaire à votre application, tout en vous permettant d'utiliser des informations d'identification temporaires offrant des droits limités afin d'accéder aux ressources AWS.

Non. Cognito Identity permet la connexion via Amazon, Facebook, Twitter, Digits et Google, et prend aussi en charge les utilisateurs non authentifiés. Avec Cognito Identity, vous pouvez prendre en charge l'authentification fédérée, le stockage et la synchronisation des données des profils, ainsi que la distribution des jetons d'accès AWS, et ce, sans écrire le moindre code.

Les utilisateurs non authentifiés sont des utilisateurs qui ne s'authentifient pas auprès d'un fournisseur d'identité, mais accèdent à votre application en tant qu'invité. Vous pouvez définir un rôle IAM distinct pour ces utilisateurs afin de leur accorder des autorisations limitées pour accéder à vos ressources backend.

Oui, les groupes d’identités Cognito peuvent prendre en charge des identités distinctes sur un même appareil, comme un iPad familial. Chaque identité est traitée séparément, et vous contrôlez entièrement la manière dont votre application gère la connexion et la déconnexion des utilisateurs, ainsi que le stockage des données d'applications en local et à distance.

Vous pouvez créer par programmation un ensemble de données associé aux groupes d’identités Cognito, puis enregistrer ces données sous forme de paires clé/valeur. Les données sont stockées localement sur l'appareil, ainsi que dans l'espace de synchronisation de Cognito. Cognito peut également synchroniser ces données sur tous les périphériques de l'utilisateur final.

Le nombre d'identités dans la console des groupes d'identités Cognito vous indique combien d'identités ont été créées via les API des groupes d'identités Cognito. Pour les identités authentifiées (celles qui se connectent via un fournisseur de connexion tel que Facebook ou un fournisseur OpenID Connect), chaque appel à l'API GetId des groupes d’identités Cognito ne crée qu’une seule identité pour chaque utilisateur. Cependant, pour les identités non authentifiées, chaque fois que le client d'une application appelle, l'API GetId génère une nouvelle identité. Ainsi, si votre application appelle GetId pour des identités non authentifiées plusieurs fois pour le même utilisateur, celui-ci apparaît comme ayant plusieurs identités. Il est donc important que vous mettiez en cache la réponse de GetId lors de l'utilisation d'identités non authentifiées et de ne pas l'appeler plusieurs fois par utilisateur.

Le SDK Mobile fournit la logique pour mettre automatiquement en cache les groupes d’identités Cognito afin que vous n'ayez pas à vous en soucier. Si vous recherchez une solution d'analyse complète pour votre application, notamment la possibilité de suivre les utilisateurs uniques, Amazon Mobile Analytics est fait pour vous.

Tarification

Pour connaître les tarifs des groupes d'utilisateurs Amazon Cognito, consultez la page de tarification d'Amazon Cognito.

Pour calculer les coûts estimés, utilisez le Calculateur de prix AWS

 

Vous payez pour les groupes d’utilisateurs Amazon Cognito en fonction de vos utilisateurs actifs mensuels (MAU). Un utilisateur est considéré comme MAU si, au cours d’un mois civil, votre application génère une opération d’identité pour cet utilisateur, telle que la création ou la mise à jour administrative, l’inscription, la connexion et la déconnexion, l’actualisation de jeton, la modification de mot de passe, la mise à jour des attributs d’un compte utilisateur, ou une requête d’attribut sur un utilisateur (API AdminGetUser). Les sessions suivantes et les utilisateurs inactifs de ce mois civil ne vous sont pas facturés. En règle générale, le nombre total d'utilisateurs et le nombre d'opérations sont beaucoup plus élevés que le nombre total de MAU.

Pour connaître les tarifs d'Amazon Cognito Sync, consultez la page de tarification d'Amazon Cognito.

L'utilisation de la messagerie SMS pour vérifier des numéros de téléphone, envoyer des codes en cas d'oubli ou de réinitialisation du mot de passe, ou pour l'authentification multi-facteurs, est facturée séparément. Pour plus d'informations, consultez la page relative à la tarification mondiale des SMS.

Lorsque vous utilisez la méthode synchronize() via le kit SDK AWS Mobile, cet appel est considéré comme une opération de synchronisation. Si vous appelez directement les API côté serveur, une opération de synchronisation débute lorsqu'un nouveau jeton de session de synchronisation est émis et se termine lorsque l'opération d'écriture a réussi ou lorsque le jeton de la session expire. Que vous utilisiez la méthode synchronize() du kit SDK ou que vous appeliez directement les API côté serveur, le tarif appliqué aux opérations de synchronisation reste le même.

Oui, le SKU des groupes d'utilisateurs Amazon Cognito et le SKU Essentials sont gratuits pour les 10 000 premières MAU. Les comptes clients dont les groupes d'utilisateurs Amazon Cognito étaient actifs avant le 21 novembre 2024 peuvent bénéficier du niveau gratuit de 50 000 MAU.

Dans le cadre de l'offre gratuite d'AWS, les clients AWS éligibles bénéficient de 10 Go de stockage dans l'espace de synchronisation dans le cloud et de 1 000 000 d'opérations de synchronisation par mois pendant leurs 12 premiers mois d'utilisation.

L'utilisation des groupes d'identités Amazon Cognito pour authentifier les utilisateurs et générer des identifiants uniques est fournie gratuitement

L'utilisation d'événements Cognito pour déclencher des fonctions Lambda est gratuite, mais les tarifs normaux pour votre utilisation d'AWS Lambda et d'autres services AWS s'appliqueront pendant l'exécution de vos fonctions Lambda.

Pour en savoir plus, consultez la page relative à la tarification d’AWS Lambda.

 

C'est vous qui décidez du moment auquel utiliser la méthode synchronize(). Les opérations de lecture et d'écriture initiées par l'appareil concernent le magasin SQLite local. Ainsi, vous gardez une maîtrise totale de vos coûts.

Cognito utilise Amazon SNS pour envoyer des notifications silencieuses en mode push. Aucuns frais supplémentaires ne s'appliquent à l'utilisation d'Amazon Cognito pour la synchronisation en mode push, à l'exception des frais Amazon SNS classiques qui s'appliquent pour les notifications envoyées aux appareils.