Démarrez avec Amazon Cognito

Q : Qu'est-ce qu'Amazon Cognito ?
Amazon Cognito vous permet d'ajouter facilement l'inscription et l'authentification d'utilisateurs sur vos applications mobiles et web. Amazon Cognito vous permet également d'authentifier les utilisateurs via un fournisseur d'identité externe et fournit des informations d'identification de sécurité temporaires pour permettre l'accès aux ressources backend de votre application dans AWS ou dans tout service en arrière-plan d'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é.

De plus, Amazon Cognito vous permet de synchroniser les données sur les différents appareils d'un utilisateur pour lui offrir une expérience homogène lorsqu'il passe d'un appareil à l'autre ou procède à une mise niveau vers un nouvel appareil. Votre application peut enregistrer les données localement sur les appareils des utilisateurs, pour permettre à vos applications de fonctionner même lorsque les appareils sont hors ligne et de synchroniser automatiquement les données lorsque les appareils se reconnectent à Internet.

Avec Amazon Cognito, concentrez-vous sur la création d'excellentes expériences d'application au lieu de vous attarder sur la construction, la sécurisation et le dimensionnement d'une solution pour gérer les utilisateurs, leur authentification et la synchronisation sur les plates-formes et appareils.

Q : A qui s'adresse Amazon Cognito ?
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.

Q : Comment commencer à utiliser Amazon Cognito ?
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 pool d'utilisateurs pour la gestion des utilisateurs ou un pool d'identités pour les identités fédérées ou les opérations de synchronisation, vous pouvez télécharger le kit SDK AWS Mobile et l'intégrer à votre application. Il est également possible d'utiliser directement les API côté serveur de Cognito, au lieu d'utiliser le kit SDK. Pour en savoir plus, consultez notre guide du développeur.

Q : Le service Amazon Cognito expose-t-il des API côté serveur ?
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.

Q : Quelles sont les plates-formes prises en charge par Amazon Cognito ?
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 kit SDK AWS pour JavaScript. La fonction Your User Pools de Cognito est actuellement prise en charge dans le kit SDK AWS Mobile pour iOS et Android, et dans le kit SDK AWS JavaScript pour Cognito. Rendez-vous sur notre page de ressources pour télécharger les kits.

Q : Est-il obligatoire d'utiliser le kit SDK AWS Mobile ?
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.

 

Q : Puis-je utiliser mon propre fournisseur d'identité pour prendre en charge l'inscription et la connexion d'utilisateurs ?

Oui, vous pouvez ajouter facilement et en toute sécurité la fonctionnalité d'inscription et de connexion sur vos applications avec Cognito Identity. 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. De plus, Cognito Identity vous permet de personnaliser les workflows. Vous pouvez, par exemple, ajouter une logique spécifique à l'application lors de l'inscription des utilisateurs pour détecter les fraudes et valider les utilisateurs via AWS Lambda. Pour en savoir plus, veuillez consulter notre documentation.

Q : Qu'est-ce qu'un pool d'utilisateurs ?

Il s'agit du répertoire utilisateur que vous pouvez configurer pour vos applications web et mobiles. Un pool d'utilisateurs stocke en toute sécurité les attributs de profil de vos utilisateurs. 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.

Q : Quelles informations de profil d'utilisateur sont prises en charge par Cognito Identity ?

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 opter pour une personnalisation afin d'ajouter des attributs d'utilisateur spécifique à l'application.

Q : Puis-je autoriser les utilisateurs de mon application à s'inscrire et à se connecter en utilisant une adresse e-mail ou un numéro de téléphone ?

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, consultez notre documentation.

Q : Puis-je définir des politiques de gestion des mots de passe ?

Oui, vous pouvez définir des politiques de gestion des mots de passe, notamment des exigences concernant la complexité des mots de passe et le type de caractères utilisés, lors de la création ou de la configuration de votre pool d'utilisateurs.

Q : Puis-je vérifier les adresses e-mail et les numéros de téléphone des utilisateurs de mon application ?

Oui, avec Cognito Identity, 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.

Q : Le service Cognito Identity prend-il en charge l'authentification multi-facteurs (MFA) par SMS ?

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).

Q : Est-il possible de personnaliser les workflows d'inscription et de connexion d'utilisateurs ?

Oui, vous pouvez personnaliser l'inscription et la connexion en ajoutant une logique spécifique à l'application aux flux d'inscription et de connexion d'utilisateurs à 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 fournies par des développeurs lors de la préinscription, après la confirmation, avant et après l'authentification, et pendant l'authentification pour personnaliser le niveau d'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.

Q : Est-il possible de mémoriser les appareils associés aux utilisateurs de mon application dans un groupe d'utilisateurs Cognito ?

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 les appareils mémorisés pour supprimer le niveau d'authentification du second facteur pour vos utilisateurs lorsque vous avez configuré l'authentification multi-facteurs.

Q : Comment migrer mes utilisateurs existants vers un groupe d'utilisateurs Amazon Cognito ?

Vous pouvez utiliser notre outil d'importation pour migrer vos utilisateurs existants vers un groupe d'utilisateurs Amazon Cognito. Les valeurs d'attribut d'utilisateur sont importées depuis un fichier .csv, qui peut être chargé via la console, nos API ou la CLI. Lorsque des utilisateurs importés se connectent pour la première fois, ils confirment leur compte et créent un nouveau mot de passe à l'aide du code reçu par e-mail ou par téléphone. L'utilisation de l'outil d'importation n'entraîne aucun coût supplémentaire. Pour en savoir plus, consultez la documentation relative à l'outil d'importation.

L'outil d'importation ne permet pas de migrer les mots de passe. Si vous souhaitez conserver les mots de passe actuels de vos utilisateurs, vous pourriez envisager d'adopter une autre approche pour migrer les utilisateurs un par un lorsqu'ils se connectent à votre application pendant une période de transition. Avec cette approche, votre application tente d'abord de connecter l'utilisateur à votre groupe d'utilisateurs Cognito. Si cet utilisateur n'existe pas dans le groupe d'utilisateurs, votre application connectera l'utilisateur à votre système d'identité existant et conservera temporairement le nom d'utilisateur et le mot de passe utilisés à cette fin. Lorsqu'un utilisateur réussit à se connecter à votre système d'identité existant, votre application utilise le même nom d'utilisateur et le même mot de passe pour créer l'utilisateur dans votre groupe d'utilisateurs Cognito. Cette approche nécessite que vous conserviez votre système d'identité existant pendant la période de transition. Néanmoins, au terme de celle-ci, vous pouvez utiliser notre outil d'importation pour importer les utilisateurs restants (sans leurs mots de passe). 

Q : Puis-je utiliser Cognito Identity pour fédérer les identités et sécuriser l'accès aux ressources AWS ?
Oui, Amazon Cognito vous permet d'authentifier les utilisateurs via un fournisseur d'identité externe et fournit des informations d'identification de sécurité temporaires pour permettre l'accès aux ressources backend de votre application dans AWS ou dans tout service en arrière-plan d'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é.

Q : Quels sont les fournisseurs d'identités publics compatibles avec Amazon Cognito Identity ?
Vous pouvez utiliser Amazon, Facebook, Twitter, Digits, Google ou tout autre fournisseur d'identités compatible avec OpenID Connect.

Q : Qu'est-ce qu'un pool d'identités ?
Les pools d'identités sont les conteneurs utilisés par Cognito Identity pour organiser les identités fédérées de vos applications. Un pool d'identités associe des identités fédérées de fournisseurs d'identité sociale à un identifiant unique spécifique à l'utilisateur. 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.

Q : Comment le processus de connexion fonctionne-t-il avec les fournisseurs d'identité publics ?
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é par le fournisseur d'identité, le jeton OAuth ou OpenID Connect ou l'assertion SAML renvoyé(e) par celui-ci est transmis(e) à Cognito Identity, qui renvoie à son tour un nouvel ID Cognito correspondant à l'utilisateur, ainsi qu'un ensemble d'informations d'identification AWS temporaires offrant des droits limités.

Q : Puis-je enregistrer et authentifier mes propres utilisateurs ?
Cognito Identity peut être intégré à 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 Identity, vous pouvez utiliser le kit SDK du client Cognito Identity pour accéder aux ressources AWS et synchroniser les données utilisateur. Cognito Identity est un fournisseur d'identités entièrement géré qui facilite la mise en place de l'inscription et de la connexion d'utilisateurs pour vos applications mobiles et web.

Q : Comment Cognito Identity permet-il de contrôler de façon sécurisée les autorisations et l'accès aux services AWS ?
Cognito Identity attribue à vos utilisateurs un ensemble d'informations d'identification temporaires offrant des droits limités, qui leur permet d'accéder aux 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. Cognito Identity vous permet également de définir un rôle IAM distinct offrant des autorisations limitées pour les utilisateurs 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 du compartiment.

Q : Lors de l'utilisation de fournisseurs d'identités publics, le service Amazon Cognito Identity stocke-t-il les informations d'identification des utilisateurs ?

Non, votre application communique directement avec le fournisseur d'identités public pris en charge (Amazon, Facebook, Twitter, Digits, Google ou un fournisseur compatible avec OpenID Connect) afin d'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.

Q : Le service Cognito Identity reçoit-il ou stocke-t-il des informations confidentielles concernant mes utilisateurs qui auraient été envoyées par les fournisseurs d'identités ?
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.

Q : Ai-je encore besoin de mes propres systèmes back-end d'authentification avec Cognito Identity ?
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.

Q : Que faire si je ne veux pas forcer mes utilisateurs à se connecter ?
Cognito Identity prend 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.

Q : Qu'entend-on par « utilisateurs non authentifiés » ?
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.

Q : Le service Cognito Identity peut-il prendre en charge plusieurs identités lorsque différents utilisateurs se connectent sur le même appareil ?
Oui. Cognito Identity peut prendre en charge plusieurs identités sur un même appareil, par exemple dans le cas d'une tablette iPad utilisée dans un cadre 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.

Q : Comment stocker les données associées à Cognito Identity ?
Vous pouvez créer, par programmation, un ensemble de données associé à Cognito Identity, 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.

Q : Le nombre d'identités de la console Cognito Identity représente-t-il le nombre d'utilisateurs de mon application ?
Le nombre d'identités de la console Cognito Identity indique le nombre d'identités créées via les API Cognito Identity. 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 de Cognito Identity crée seulement une identité unique pour chaque utilisateur. Cependant, pour les identités non authentifiées, chaque fois que le client d'une application appelle l'API GetId, une nouvelle identité est générée. 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 que vous ne l'appeliez pas plusieurs fois pour un même utilisateur.

Le kit SDK Mobile fournit la logique pour mettre automatiquement en cache l'identité Cognito. Vous n'avez donc plus à vous soucier de cet aspect. 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.

Q : Qu'est-ce que l'espace de synchronisation d'Amazon Cognito ?
L'espace de synchronisation d'Amazon Cognito est un espace où sont stockées les paires clé/valeur associées à une identité Amazon Cognito. Vous pouvez créer autant d'identités que vous le souhaitez dans vos pools d'identités et votre espace de synchronisation. Chaque identité Amazon Cognito incluse dans l'espace de synchronisation dispose de son propre stockage d'informations utilisateur.

Q : Les données sont-elles enregistrées directement dans l'espace de synchronisation d'Amazon Cognito ?
Non. Le kit SDK AWS Mobile (facultatif) enregistre vos données dans une base de données SQLite sur le périphérique local, de façon à ce que votre application puisse y accéder en permanence. Les données sont envoyées en mode push sur l'espace de synchronisation d'Amazon Cognito en appelant la méthode synchronize(). Si la synchronisation en mode push est activée, tous les autres appareils reliés à cette identité reçoivent une notification envoyée par Amazon SNS, leur indiquant que des données ont été modifiées dans l'espace de synchronisation.

Q : Comment les données sont-elles stockées dans l'espace de synchronisation d'Amazon Cognito ?
Les données associées à une identité Amazon Cognito sont organisées sous forme de paires clé/valeur. Une clé est un libellé, par exemple « MusicVolume », et une valeur peut être un nombre, par exemple « 11 ». Les paires clé/valeur sont groupées et classées à l'aide d'ensembles de données. Les ensembles de données sont des partitions logiques des paires clé/valeur. Il s'agit de l'entité la plus fine utilisée par Amazon Cognito pour les opérations de synchronisation.

Q : Quel est le volume maximal que les informations de chaque utilisateur peuvent occuper dans l'espace de synchronisation d'Amazon Cognito ?
Pour chaque utilisateur, les informations stockées ne peuvent pas dépasser 20 Mo. Chaque ensemble de données au sein du stockage des informations de l'utilisateur peut contenir jusqu'à 1 Mo de données. Un ensemble de données peut contenir jusqu'à 1 024 clés.

Q : Quels types de données puis-je stocker dans un ensemble de données ?
Les clés et les valeurs d'un ensemble de données sont composées de chaînes alphanumériques. La longueur des chaînes n'est pas limitée, si ce n'est que le volume total des valeurs contenues dans un ensemble de données ne doit pas dépasser 1 Mo. Les données binaires peuvent être stockées en tant que chaînes codées en base64, tant que ces chaînes ne dépassent pas la limite de 1 Mo.

Q : Pourquoi la taille des ensembles de données est-elle limitée à 1 Mo ?
En limitant la taille des ensembles de données à 1 Mo, les tâches de synchronisation ont plus de chances d'être effectuées correctement, même lorsque le débit est limité. Cela évite donc de multiplier les tentatives et réduit la consommation d'énergie et de forfaits de données.

Q : Les identités et les informations des utilisateurs stockées sont-elles partagées avec les autres développeurs ?
Non, les identités et les informations stockées pour chaque utilisateur sont liées à un compte AWS spécifique. Si plusieurs applications provenant de différents développeurs sont installées sur un périphérique utilisant Amazon Cognito, chaque application utilise l'espace de stockage créé par le développeur correspondant.

Q : Comment puis-je analyser et interroger les données stockées dans l'espace de synchronisation Cognito ?
Avec Cognito Streams, vous pouvez envoyer en mode push des données de l'espace de synchronisation vers un flux Kinesis dans votre compte AWS. Vous pouvez ensuite utiliser ce flux et stocker les données pour analyser plus facilement une base de données Amazon Redshift, une instance RDS que vous possédez ou même un fichier S3. Nous avons publié un exemple d'application de consommateurs Kinesis pour vous indiquer comment stocker les données de mises à jour dans Amazon Redshift.

Q : Pourquoi devrais-je utiliser un flux Kinesis plutôt qu'une exportation de base de données ?
En diffusant en continu des données vers Kinesis, vous pouvez recevoir tout l'historique des modifications apportées à vos ensembles de données en temps réel. Vous recevez ainsi toutes les modifications qu'un utilisateur final apporte à un ensemble de données et disposez de la souplesse nécessaire pour stocker ces données dans un outil de votre choix.

Q : Que se passe-t-il si des données sont déjà stockées dans Cognito ?
Lorsqu'elle est activée, la fonctionnalité de flux Kinesis vous permettra de démarrer une publication en masse. Ce processus envoie de manière asynchrone toutes les données actuellement stockées dans votre espace de synchronisation Cognito vers le flux Kinesis que vous avez sélectionné.

Q : Quel est le coût de cette fonctionnalité ?
Cognito envoie en mode push les données vers un flux Kinesis que vous possédez. Aucune différence de prix par synchronisation ne peut être constatée dans Cognito si cette fonctionnalité est activée. Vous serez facturé aux taux normaux de Kinesis pour chaque partition utilisée.

Q : Puis-je valider les données avant qu'elles soient sauvegardées ?
Amazon Cognito Events permet aux développeurs d'exécuter une fonction AWS Lambda en réponse à des événements importants dans Cognito. L'événement Sync Trigger se produit lorsqu'un ensemble de données est synchronisé. Les développeurs peuvent écrire une fonction AWS Lambda pour intercepter l'événement de synchronisation. La fonction peut évaluer les modifications qui ont été apportées à l'ensemble de données sous-jacent et manipuler les données avant de les stocker dans le cloud et de les synchroniser sur les autres appareils de l'utilisateur. La fonction AWS Lambda peut également entraîner l'échec de l'opération et empêcher ainsi les données de se synchroniser sur les autres appareils de l'utilisateur.

Q : Comment les données sont-elles synchronisées avec Amazon Cognito ?
Vous pouvez déclencher la synchronisation des ensembles de données entre les périphériques clients et l'espace de synchronisation d'Amazon Cognito par programmation, en utilisant la méthode synchronize() du kit SDK AWS Mobile. La méthode synchronize() lit la dernière version des données disponible dans l'espace de synchronisation d'Amazon Cognito et la compare à la copie locale mise en cache. Une fois la comparaison terminée, la méthode synchronize() déclenche l'écriture des mises à jour nécessaires dans le magasin de données local et l'espace de synchronisation d'Amazon Cognito. Par défaut, Amazon Cognito conserve la dernière version enregistrée des données. Vous pouvez ignorer ce comportement et résoudre les conflits au niveau des données par programmation. En outre, la synchronisation en mode push vous permet d'utiliser Amazon Cognito pour envoyer une notification silencieuse en mode push à tous les appareils associés à une identité, afin de les avertir que de nouvelles données sont disponibles.

Q : Qu'est-ce qu'une notification silencieuse en mode push ?
Amazon Cognito utilise Amazon Simple Notification Service (SNS) pour envoyer des notifications silencieuses en mode push à tous les appareils. Une notification silencieuse en mode push est un message en mode push reçu par votre application sur l'appareil d'un utilisateur, mais que cet utilisateur ne verra pas.

Q : Comment puis-je envoyer la synchronisation en mode push ?
Pour activer la synchronisation en mode push, vous devez déclarer une application de plateforme à l'aide de la page Amazon SNS dans AWS Management Console. Ensuite, à partir de la page de pool d'identités sur la page Amazon Cognito d'AWS Management Console, vous pouvez lier l'application de plateforme SNS à votre pool d'identités Cognito. Amazon Cognito utilise automatiquement l'application de plateforme SNS pour notifier les changements aux appareils.

Q : Comment les conflits survenant au cours du processus de synchronisation sont-ils gérés ?
Par défaut, Amazon Cognito conserve la dernière version enregistrée des données. Vous pouvez ignorer ce comportement en choisissant de répondre à une fonction de rappel du kit SDK AWS Mobile, qui contient les deux versions des données. Votre application peut alors déterminer quelle version des données (version locale ou provenant de l'espace de synchronisation d'Amazon Cognito) doit être conservée et enregistrée dans l'espace de synchronisation d'Amazon Cognito.

Q : Combien coûte Cognito Identity ?
Avec Amazon Identity, vous ne payez qu'en fonction de votre consommation. Il n'y a pas de frais minimums et aucun engagement initial n'est requis.

Si vous utilisez Cognito Identity pour créer un pool d'utilisateurs, vous payez uniquement sur la base de vos utilisateurs actifs mensuels (MAU). Un utilisateur est considéré comme étant un MAU s'il est associé, dans le mois civil, à une opération faisant intervenir l'identité, telle que l'inscription, la connexion, l'actualisation d'un jeton et la modification du mot de passe. Les sessions suivantes et les utilisateurs inactifs de ce mois civil ne vous sont pas facturés. Des frais séparés s'appliquent à l'utilisation facultative de la messagerie SMS comme indiqué ci-dessous.

L'option Your User Pool présente une offre gratuite de 50 000 MAU chaque mois. L'offre gratuite de Cognito Identity n'expire pas à l'issue des 12 mois de votre offre gratuite AWS et reste disponible indéfiniment pour les anciens comme pour les nouveaux clients AWS

Les identités fédérées et le contrôle d'accès sécurisé pour les ressources AWS sont toujours gratuits avec Cognito Identity.

Q : Combien coûte Cognito Sync ?
Les frais de synchronisation sont calculés en fonction du volume total de données enregistrées dans l'espace de synchronisation d'Amazon Cognito et du nombre d'opérations de synchronisation effectuées. Une opération de synchronisation consiste à comparer les données de la base locale d'un périphérique à celles stockées dans l'espace de synchronisation d'Amazon Cognito dans le cloud, puis à synchroniser ces deux bases de données.

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. En dehors du niveau gratuit, Amazon Cognito est facturé 0,15 USD par tranche de 10 000 opérations de synchronisation et 0,15 USD par Go d'espace de synchronisation par mois.

Q : Qu'entend-on par « opération de synchronisation » ?
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.

Q : Que sont les utilisateurs actifs mensuels (MAU) ?
Un utilisateur est considéré comme actif et comme un MAU s'il est associé à une opération telle que l'inscription, l'actualisation d'un jeton, la connexion ou la modification du mot de passe pendant le mois de facturation. Par conséquent, les opérations suivantes et les utilisateurs inactifs pendant le mois 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.

Q : Quel est le coût d'utilisation des SMS avec 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 applicable à l'envoi de SMS à l'international.

Q : Amazon Cognito est-il inclus dans le niveau gratuit d'AWS ?
Oui. Dans le cadre de l'offre gratuite d'AWS, Cognito inclut 10 Go de stockage dans l'espace de synchronisation et 1 000 000 d'opérations de synchronisation par mois pendant les 12 premiers mois d'utilisation. Votre pool d'utilisateurs pour Cognito Identity est gratuit dans la limite des 50 000 premiers MAU. Une fois ce seuil atteint, vous pouvez profiter de niveaux dépendant du volume. Avec Cognito Identity, l'utilisation de l'option Identités fédérées pour l'authentification des utilisateurs et la création d'identifiants uniques est toujours gratuite.

Q : Chaque opération de lecture ou d'écriture réalisée par l'application est-elle comptabilisée comme une opération de synchronisation ?
Non. 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 le périphérique concernent la base de données SQLite locale. Ainsi, vous gardez une maîtrise totale de vos coûts.

Q : Quel est le coût de la synchronisation en mode push ?
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 SNS classiques qui s'appliquent pour les notifications envoyées aux appareils.

Q : Quel est le coût d'utilisation de Lambda avec Amazon Cognito Events ?
Aucuns frais supplémentaires ne vous sont facturés lorsque vous utilisez Cognito Events pour déclencher des fonctions Lambda, à l'exception des frais classiques d'utilisation d'AWS Lambda et d'autres services AWS qui s'appliquent lorsque vos fonctions Lambda s'exécutent. Pour en savoir plus, consultez la page relative à la tarification d'AWS Lambda.