Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Importation d'utilisateurs dans des groupes d'utilisateurs depuis un fichier CSV
Lorsque vous disposez d'un magasin d'identités externe et que vous avez le temps de préparer votre groupe d'utilisateurs pour les nouveaux utilisateurs locaux, l'importation groupée d'utilisateurs à partir d'un fichier CSV (valeurs séparées par des virgules) peut s'avérer une option peu coûteuse et peu coûteuse pour une migration vers un groupe d'utilisateurs Amazon Cognito. Une importation de fichier CSV consiste à télécharger et à remplir un fichier modèle, puis à le transmettre à votre groupe d'utilisateurs dans le cadre d'une tâche d'importation. Vous pouvez utiliser une importation CSV pour créer rapidement des utilisateurs de test. Vous pouvez également remplir le fichier par programmation avec des requêtes d'API de lecture adressées à votre banque d'identités externe, puis analyser leurs détails et leurs attributs dans le cadre d'opérations d'écriture dans le fichier.
Par défaut, le processus d'importation définit les valeurs de tous les attributs utilisateur à l'exception du mot de passe. Cela signifie que vos utilisateurs doivent changer leur mot de passe la première fois qu'ils se connectent. Vos utilisateurs sont dans un RESET_REQUIRED état lorsqu'ils sont importés à l'aide de cette méthode.
Vous pouvez également importer des utilisateurs avec leur hachage de mot de passe existant. Lorsque vous spécifiez un algorithme de hachage de mot de passe lors de la création d'une tâche d'importation et que vous incluez des hachages de mots de passe dans votre fichier CSV, Amazon Cognito importe les utilisateurs avec leurs mots de passe existants. Ces utilisateurs sont dotés d'un CONFIRMED statut et peuvent se connecter immédiatement sans avoir à réinitialiser leur mot de passe. Pour de plus amples informations, veuillez consulter Importation d'utilisateurs avec des hachages de mots de passe.
La méthode la plus simple pour importer des utilisateurs depuis un fichier CSV consiste à activer la connexion sans mot de passe dans votre groupe d'utilisateurs. Grâce aux attributs d'adresse e-mail et de numéro de téléphone et à la bonne configuration du pool d'utilisateurs, les utilisateurs peuvent se connecter à l'aide de mots de passe à usage unique (OTP) par e-mail ou SMS immédiatement après la fin de votre tâche d'importation. Pour de plus amples informations, veuillez consulter Obligation pour les utilisateurs importés de réinitialiser leur mot de passe.
Vous pouvez également définir les mots de passe de vos utilisateurs à l'aide d'une demande d'AdminSetUserPasswordAPI dont le Permanent paramètre est défini surtrue. L'importation au format CSV ne contribue pas au nombre d'utilisateurs actifs (MAU) mensuels facturés dans votre groupe d'utilisateurs. Cependant, les opérations de réinitialisation du mot de passe génèrent des MAU. Pour gérer les coûts lorsque vous importez un grand nombre d'utilisateurs dotés d'un mot de passe qui ne sont peut-être pas immédiatement actifs, configurez votre application pour demander aux utilisateurs un nouveau mot de passe lorsqu'ils se connectent et reçoivent le RESET_REQUIRED défi.
Note
La date de création pour chaque utilisateur est celle où celui-ci a été importé dans le pool d'utilisateurs. La date de création n'est pas l'un des attributs importés.
Étapes pour créer une tâche d'importation utilisateur
-
Créez un rôle Amazon CloudWatch Logs dans la console Gestion des identités et des accès AWS (IAM).
-
Créez le fichier .csv d'importation d'utilisateurs.
-
Créez et exécutez la tâche d'importation d'utilisateurs. Spécifiez éventuellement un algorithme de hachage de mot de passe pour importer les utilisateurs avec leurs hachages de mots de passe existants.
-
Téléchargez le fichier .csv d'importation d'utilisateurs.
-
Démarrez et exécutez la tâche d'importation d'utilisateurs.
-
CloudWatch À utiliser pour consulter le journal des événements.
-
Si vous n'avez pas importé de hachage de mot de passe, demandez aux utilisateurs importés de réinitialiser leur mot de passe.
Ressources supplémentaires
-
Architecture de référence d'exportation des profils utilisateur Cognito pour l'exportation
de comptes d'utilisateurs entre groupes d'utilisateurs
Rubriques
Création et exécution de la tâche d'importation de groupe d'utilisateurs Amazon Cognito
Affichage des résultats d'importation du groupe d'utilisateurs dans la CloudWatch console
Obligation pour les utilisateurs importés de réinitialiser leur mot de passe
Importation d'utilisateurs avec des hachages de mots de passe
Création du rôle CloudWatch Logs IAM
Si vous utilisez la CLI ou l'API Amazon Cognito, vous devez créer un rôle CloudWatch IAM. La procédure suivante explique comment créer un rôle IAM qu'Amazon Cognito peut utiliser pour écrire les résultats de votre tâche CloudWatch d'importation dans Logs.
Note
Lorsque vous créez une tâche d'importation dans la console Amazon Cognito, vous pouvez créer le rôle IAM en même temps. Lorsque vous choisissez Create a new IAM role (Créer un nouveau rôle IAM), Amazon Cognito applique automatiquement la politique d'approbation et la politique IAM adaptées au rôle.
Pour créer le rôle CloudWatch Logs IAM pour l'importation de groupes d'utilisateurs (AWS CLI, API)
Connectez-vous à la console IAM Console de gestion AWS et ouvrez-la à https://console.aws.amazon.com/iam/
l'adresse. -
Créez un nouveau rôle IAM pour un Service AWS. Pour obtenir des instructions détaillées, consultez Création d'un rôle pour un Service AWS dans le Guide de l'utilisateur Gestion des identités et des accès AWS .
-
Lorsque vous sélectionnez un cas d'utilisation pour votre type d'entité approuvée, choisissez n'importe quel service. Pour l'heure, Amazon Cognito ne figure pas dans les cas d'utilisation de service.
-
Dans l'écran Add permissions (Ajouter des autorisations), choisissez Create policy (Créer une politique) et insérez la déclaration de politique suivante.
REGIONRemplacez-le par celui Région AWS de votre groupe d'utilisateurs, par exempleus-east-1.ACCOUNTRemplacez-le par votre Compte AWS identifiant, par exemple111122223333.
-
-
Comme vous n'avez pas choisi Amazon Cognito comme entité approuvée au moment de créer le rôle, vous devez maintenant modifier manuellement la relation d'approbation du rôle. Choisissez Roles (Rôles) dans le volet de navigation de la console IAM, puis choisissez le rôle que vous avez créé.
-
Choisissez l’onglet Relations de confiance.
-
Choisissez Modifier la politique d’approbation.
-
Collez la déclaration de politique suivante dans Edit trust policy (Modifier la politique d'approbation), en remplaçant le texte existant éventuel :
-
Choisissez Mettre à jour une politique.
-
Notez l'ARN du rôle. Vous devrez fournir l'ARN au moment de créer votre tâche d'importation.
Création du fichier CSV d'importation d'utilisateurs
Avant de pouvoir importer des utilisateurs existants dans votre groupe d'utilisateurs, vous devez d'abord créer un fichier CSV (valeurs séparées par des virgules) contenant les utilisateurs que vous souhaitez importer ainsi que leurs attributs. À partir de votre groupe d'utilisateurs, vous pouvez extraire un fichier d'importation d'utilisateurs dont les en-têtes reflètent le schéma d'attributs de votre groupe d'utilisateurs. Vous pouvez ensuite insérer les informations utilisateur qui répondent aux exigences de mise en forme décrites dans Mise en forme du fichier CSV.
Téléchargement de l'en-tête du fichier CSV (console)
Utilisez la procédure suivante pour télécharger le fichier d'en-tête CSV.
Pour télécharger l'en-tête du fichier CSV
-
Accédez à la console Amazon Cognito
. Vous serez peut-être invité à saisir vos AWS informations d'identification. -
Choisissez Groupes d'utilisateurs.
-
Choisissez un groupe d'utilisateurs existant dans la liste.
-
Choisissez le menu Utilisateurs.
-
Dans la section Import users (Importer des utilisateurs), choisissez Create an import job (Créer une tâche d'importation).
-
Sous Upload CSV (Charger un fichier CSV), sélectionnez le lien template.csv et téléchargez le fichier CSV.
Téléchargement de l'en-tête du fichier CSV (AWS CLI)
Pour obtenir la liste des en-têtes corrects, dans le menu Utilisateurs, sous Importer des utilisateurs, sélectionnez Créer une tâche d'importation. Dans la boîte de dialogue qui suit, sélectionnez le template.csv lien pour télécharger un fichier modèle contenant les attributs de votre groupe d'utilisateurs.
Vous pouvez également exécuter la commande CLI suivante, où USER_POOL_ID est l'identifiant du groupe d'utilisateurs dans lequel vous allez importer des utilisateurs :
aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"
Exemple de réponse :
{ "CSVHeader": [ "name", "given_name", "family_name", "middle_name", "nickname", "preferred_username", "profile", "picture", "website", "email", "email_verified", "gender", "birthdate", "zoneinfo", "locale", "phone_number", "phone_number_verified", "address", "updated_at", "cognito:mfa_enabled", "cognito:username" ], "UserPoolId": "USER_POOL_ID" }
Mise en forme du fichier CSV
Une fois téléchargé, le fichier d'en-tête CSV d'importation d'utilisateurs ressemble à la chaîne suivante. Il comporte également les attributs personnalisés que vous avez éventuellement ajoutés à votre groupe d'utilisateurs.
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled
Modifiez votre fichier CSV de telle sorte qu'il contienne cet en-tête et les valeurs d'attribut pour vos utilisateurs et qu'il soit mis en forme selon les règles suivantes :
Note
Pour plus d'informations sur les valeurs d'attributs, par exemple, un format approprié pour les numéros de téléphone, consultez Utilisation des attributs utilisateur.
-
La première ligne du fichier est la ligne d'en-tête téléchargée qui contient les noms des attributs utilisateur.
-
L'ordre des colonnes dans le fichier CSV n'a pas d'importance.
-
Chaque ligne après la première ligne contient les valeurs d'attribut d'un utilisateur.
-
Toutes les colonnes de l'en-tête doivent être présentes, mais vous n'avez pas besoin de fournir des valeurs dans chaque colonne.
-
Les attributs suivants sont obligatoires :
-
cognito:username
-
email_verified ou phone_number_verified
-
Au moins l'un des attributs à vérification automatique doit avoir la valeur
truepour chaque utilisateur. Un attribut à vérification automatique est une adresse e-mail ou un numéro de téléphone auxquels Amazon Cognito envoie automatiquement un code lorsqu'un nouvel utilisateur rejoint votre groupe d'utilisateurs. -
Le groupe d'utilisateurs doit avoir au moins un attribut à vérification automatique, que ce soit email_verified ou phone_number_verified. Si le pool d'utilisateurs n'a pas d'attributs à vérification automatique, la tâche d'importation ne démarre pas.
-
Si le pool d'utilisateurs n'a qu'un seul attribut à vérification automatique, cet attribut doit être vérifié pour chaque utilisateur. Par exemple, si le groupe d'utilisateurs n'a que phone_number comme attribut à vérification automatique, la valeur de phone_number_verified doit être
truepour chaque utilisateur.
Note
Pour pouvoir réinitialiser leur mot de passe, les utilisateurs doivent disposer d'une adresse e-mail ou d'un numéro de téléphone vérifiés. Amazon Cognito envoie un message contenant un code de réinitialisation de mot de passe à l'adresse e-mail ou au numéro de téléphone spécifiés dans le fichier CSV. Si le message est envoyé au numéro de téléphone, il est envoyé par SMS. Pour de plus amples informations, veuillez consulter Vérification des coordonnées à l’inscription.
-
-
email (si email_verified a la valeur
true) -
phone_number (si phone_number_verified a la valeur
true) -
Tous les attributs que vous avez marqués comme obligatoires lorsque vous avez créé le pool d'utilisateurs
-
-
Les valeurs d'attribut qui sont des chaînes ne doivent pas être entre guillemets.
-
Si une valeur d'attribut contient une virgule, vous devez placer une barre oblique inverse (\) devant la virgule. La raison en est que les champs au sein d'un fichier CSV sont séparés par des virgules.
-
Le contenu du fichier CSV doit être au UTF-8 format sans marque d'ordre des octets.
-
Le champ cognito:username est obligatoire et doit être unique au sein de votre groupe d'utilisateurs. Ce peut être n'importe quelle chaîne Unicode. Cependant, elle ne peut pas comporter d'espaces ou de tabulations.
-
Les valeurs de date de naissance, si elles sont présentes, doivent être au format
mm/dd/yyyy. Cela signifie, par exemple, que la date du 1er février 1985 doit être codée sous la forme02/01/1985. -
Le champ cognito:mfa_enabled doit correspondre aux exigences MFA de votre groupe d'utilisateurs. Si vous avez défini l'authentification multifactorielle (MFA) comme obligatoire dans votre groupe d'utilisateurs, ce champ doit
trueêtre ou vide pour tous les utilisateurs. Si vous avez désactivé le MFA, ce champ doit être videfalseou être vide pour tous les utilisateurs. Une valeur vide définit le MFA-enabled statut des utilisateurs importés selon l'état requis par le groupe d'utilisateurs. Vous pouvez importer des utilisateurs dans un groupe MFA-required d'utilisateurs sans facteur MFA valide, que vous ayez défini unecognito:mfa_enabledvaleur ou non. Dans cet état, l'authentification MFA est active mais ne peuvent pas se connecter tant qu'ils n'ont pas configuré un attribut d'e-mail, un attribut de numéro de téléphone ou un TOTP, et cette configuration est un facteur MFA valide dans votre groupe d'utilisateurs. -
La longueur maximale de la ligne est de 16 000 caractères.
-
La taille maximale du fichier CSV est de 100 Mo.
-
Le nombre maximal de lignes (utilisateurs) du fichier est de 500 000. La ligne d'en-tête n'est pas comprise dans ce nombre maximal.
-
La valeur du champ updated_at doit être une heure Posix exprimée en secondes, par exemple :
1471453471. -
Les espaces de début ou de fin d'une valeur d'attribut seront supprimés.
La liste suivante est un exemple de fichier d'importation CSV pour un groupe d'utilisateurs sans attributs personnalisés. Le schéma de votre groupe d'utilisateurs peut être différent par rapport à cet exemple. Dans ce cas, vous devez fournir des valeurs de test dans le modèle CSV que vous téléchargez à partir de votre groupe d'utilisateurs.
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled John,,John,Doe,,,,,,,johndoe@example.com,TRUE,,02/01/1985,,,+12345550100,TRUE,123 Any Street,,FALSE Jane,,Jane,Roe,,,,,,,janeroe@example.com,TRUE,,01/01/1985,,,+12345550199,TRUE,100 Main Street,,FALSE
Création et exécution de la tâche d'importation de groupe d'utilisateurs Amazon Cognito
Cette section explique comment créer et exécuter la tâche d'importation du groupe d'utilisateurs à l'aide de la console Amazon Cognito et du AWS Command Line Interface ()AWS CLI.
Rubriques
Importation d'utilisateurs à partir d'un fichier CSV (console)
La procédure suivante montre comment importer les utilisateurs à partir du fichier CSV.
Pour importer les utilisateurs à partir du fichier CSV (console)
-
Accédez à la console Amazon Cognito
. Vous serez peut-être invité à saisir vos AWS informations d'identification. -
Choisissez Groupes d'utilisateurs.
-
Choisissez un groupe d'utilisateurs existant dans la liste.
-
Choisissez le menu Utilisateurs.
-
Dans la section Import users (Importer des utilisateurs), choisissez Create an import job (Créer une tâche d'importation).
-
Sur la page Create import job (Créer une tâche d'importation), saisissez un nom de tâche.
-
Choisissez Create a new IAM role (Créer un nouveau rôle IAM) ou Use an existing IAM role (Utiliser un rôle IAM existant).
-
Si vous avez choisi Create a new IAM role (Créer un nouveau rôle IAM), attribuez un nom à votre nouveau rôle. Amazon Cognito crée alors automatiquement un rôle doté des autorisations et de la relation d'approbation adéquates. Le principal IAM qui crée la tâche d'importation doit disposer des autorisations permettant de créer des rôles IAM.
-
Si vous avez choisi Use an existing IAM role (Utiliser un rôle IAM existant), choisissez un rôle dans la liste située en dessous de IAM role selection (Sélection du rôle IAM). Ce rôle doit disposer des autorisations et de la politique d'approbation décrites dans Création du rôle CloudWatch Logs IAM.
-
-
Sous Télécharger un fichier CSV, choisissez Choisir un fichier et joignez le fichier CSV que vous avez préparé.
-
Choisissez Create job (Créer une tâche) pour soumettre votre tâche, mais démarrez-la plus tard. Choisissez Create and start job (Créer et démarrer une tâche) pour soumettre votre tâche et la démarrer immédiatement.
-
Si vous avez créé votre tâche mais que vous ne l'avez pas démarrée, vous pouvez la démarrer ultérieurement. Dans le menu Utilisateurs, sous Importer des utilisateurs, choisissez votre tâche d'importation, puis sélectionnez Démarrer. Vous pouvez également envoyer une demande d'StartUserImportJobAPI à partir d'un AWS SDK.
-
Surveillez la progression de votre tâche d'importation d'utilisateurs dans le menu Utilisateurs sous Importer des utilisateurs. Si votre tâche échoue, vous pouvez sélectionner la valeur Status (État). Pour plus de détails, sélectionnez Afficher les CloudWatch journaux pour plus de détails et passez en revue les éventuels problèmes dans la console CloudWatch Logs.
Importation d'utilisateurs (AWS CLI)
Les commandes de CLI suivantes sont disponibles pour l'importation des utilisateurs dans un pool d'utilisateurs :
-
create-user-import-job -
get-csv-header -
describe-user-import-job -
list-user-import-jobs -
start-user-import-job -
stop-user-import-job
Pour obtenir la liste des options de ligne de commande pour ces commandes, utilisez l'option de ligne de commande help. Par exemple :
aws cognito-idp get-csv-header help
Création d'une tâche d'importation d'utilisateurs
Après avoir créé votre fichier CSV, créez une tâche d'importation d'utilisateurs en exécutant la commande CLI suivante, où JOB_NAME figurent le nom que vous choisissez pour la tâche, USER_POOL_ID l'ID du groupe d'utilisateurs dans lequel les nouveaux utilisateurs seront ajoutés et ROLE_ARN l'ARN du rôle dans lequel vous avez reçu Création du rôle CloudWatch Logs IAM :
aws cognito-idp create-user-import-job --job-name "JOB_NAME" --user-pool-id "USER_POOL_ID" --cloud-watch-logs-role-arn "ROLE_ARN"
La PRE_SIGNED_URL valeur renvoyée dans la réponse est valide pendant 15 minutes. Au-delà de ce délai, la valeur expire et vous devez créer une nouvelle tâche d'importation des utilisateurs pour obtenir une nouvelle URL.
Exemple réponse :
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
Valeurs d'état pour une tâche d'importation d'utilisateurs
Dans les réponses à vos commandes d'importation d'utilisateurs, vous verrez l'une des valeurs Status suivantes :
-
Created– La tâche a été créée, mais n'a pas démarré. -
Pending– Un état de transition. Vous avez démarré la tâche, mais elle n'a pas encore commencé à importer les utilisateurs. -
InProgress– La tâche a démarré et les utilisateurs sont en cours d'importation. -
Stopping– Vous avez arrêté la tâche, mais la tâche n'a pas encore cessé d'importer les utilisateurs. -
Stopped– Vous avez arrêté la tâche et la tâche a cessé d'importer les utilisateurs. -
Succeeded– La tâche a été bien exécutée. -
Failed– La tâche s'est arrêtée à la suite d'une erreur. -
Expired– Vous avez créé une tâche, mais n'avez pas commencé la tâche au cours des 24 ou 48 heures écoulées. Toutes les données associées à la tâche ont été supprimées et la tâche ne peut pas être démarrée.
Chargement du fichier CSV
Utilisez la commande curl suivante pour charger le fichier CSV contenant vos données utilisateur sur l'URL présignée que vous avez obtenue de la réponse de la commande create-user-import-job.
curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"
Dans la sortie de cette commande, recherchez l'expression "We are completely uploaded and
fine". Cette expression indique que le fichier a été téléchargé avec succès. Vos groupes d'utilisateurs ne conservent pas les informations contenues dans vos fichiers d'importation une fois que vous avez exécuté vos tâches d'importation. Une fois qu'ils sont terminés ou expirent, Amazon Cognito supprime le fichier CSV que vous avez chargé.
Description d'une tâche d'importation d'utilisateurs
Pour obtenir une description de votre tâche d'importation d'utilisateurs, utilisez la commande suivante, où se USER_POOL_ID trouve l'ID de votre groupe d'utilisateurs et JOB_ID l'ID de tâche renvoyé lorsque vous avez créé la tâche d'importation d'utilisateurs.
aws cognito-idp describe-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Exemple Exemple de réponse :
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
Dans l'exemple de sortie précédent, PRE_SIGNED_URL il s'agit de l'URL vers laquelle vous avez chargé le fichier CSV. ROLE_ARNIl s'agit de l'ARN du rôle CloudWatch Logs que vous avez reçu lors de la création du rôle.
Affichage des tâches d'importation d'utilisateurs
Pour afficher les tâches d'importation d'utilisateurs, utilisez la commande suivante :
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 2
Exemple Exemple de réponse :
{ "UserImportJobs": [ { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 }, { "CompletionDate": 1470954227.701, "StartDate": 1470954226.086, "Status": "Failed", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "Too many users have failed or been skipped during the import.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 5, "CreationDate": 1470953929.313 } ], "PaginationToken": "PAGINATION_TOKEN" }
Les tâches sont affichées par ordre chronologique, depuis la dernière créée jusqu'à la première créée. La PAGINATION_TOKEN chaîne située après la deuxième tâche indique que cette commande de liste contient des résultats supplémentaires. Pour afficher les résultats supplémentaires, utilisez l'option --pagination-token comme suit :
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 10 --pagination-token "PAGINATION_TOKEN"
Démarrage d'une tâche d'importation d'utilisateurs
Pour démarrer une tâche d'importation d'utilisateurs, utilisez la commande suivante :
aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Une seule tâche d'importation peut être active à la fois par compte.
Exemple Exemple de réponse :
{ "UserImportJob": { "Status": "Pending", "StartDate": 1470957851.483, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
Arrêt d'une tâche d'importation d'utilisateurs
Pour arrêter une tâche d'importation d'utilisateur alors qu'elle est en cours, utilisez la commande suivante. Une fois que vous avez arrêté la tâche, elle ne peut pas être redémarrée.
aws cognito-idp stop-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Exemple Exemple de réponse :
{ "UserImportJob": { "CompletionDate": 1470958050.571, "StartDate": 1470958047.797, "Status": "Stopped", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "The Import Job was stopped by the developer.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957972.387 } }
Affichage des résultats d'importation du groupe d'utilisateurs dans la CloudWatch console
Vous pouvez consulter les résultats de votre tâche d'importation dans la CloudWatch console Amazon.
Affichage des résultats
Les étapes suivantes expliquent comment afficher les résultats de l'importation du pool d'utilisateurs.
Pour afficher les résultats de l'importation du pool d'utilisateurs
Connectez-vous à la CloudWatch console Console de gestion AWS et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Choisissez Logs (Journaux).
-
Sélectionnez le pool de journaux pour vos tâches d'importation du pool d'utilisateurs. Le nom du groupe de journaux est sous la forme
/aws/cognito/userpools/.USER_POOL_ID/USER_POOL_NAME -
Choisissez le journal pour la tâche d'importation d'utilisateurs que vous venez juste d'exécuter. Le nom du journal est au format
JOB_ID/JOB_NAME. Les résultats du journal se réfèrent à vos utilisateurs par numéro de ligne. Aucune donnée utilisateur n'est écrite dans le journal. Pour chaque utilisateur, une ligne similaire à la suivante s'affiche :-
[SUCCEEDED] Line Number 5956 - The import succeeded. -
[SKIPPED] Line Number 5956 - The user already exists. -
[FAILED] Line Number 5956 - The User Record does not set any of the auto verified attributes to true. (Example: email_verified to true).
-
Interprétation des résultats
Le statut des utilisateurs importés avec succès est défini sur « PasswordReset ».
Dans les cas suivants, l'utilisateur n'est pas importé, mais la tâche d'importation se poursuit :
-
Aucun attribut à vérification automatique n'est défini pour
true. -
Les données utilisateur ne correspondent pas au schéma.
-
L'utilisateur n'a pas pu être importé en raison d'une erreur interne.
Dans les cas suivants, la tâche d'importation échoue :
-
Le rôle Amazon CloudWatch Logs ne peut pas être assumé, ne dispose pas de la bonne politique d'accès ou a été supprimé.
-
Le pool d'utilisateurs a été supprimé.
-
Amazon Cognito ne peut pas analyser le fichier .csv.
Obligation pour les utilisateurs importés de réinitialiser leur mot de passe
Si votre groupe d'utilisateurs propose uniquement une connexion par mot de passe, les utilisateurs doivent réinitialiser leur mot de passe après son importation. La première fois qu'ils se connectent, ils peuvent saisir n'importe quel mot de passe. Amazon Cognito les invite à saisir un nouveau mot de passe dans la réponse de l'API à la demande de connexion de votre application.
Si votre groupe d'utilisateurs utilise des facteurs d'authentification sans mot de passe, Amazon Cognito utilise par défaut ceux des utilisateurs importés. Ils ne sont pas invités à saisir un nouveau mot de passe et peuvent se connecter immédiatement à l'aide d'un e-mail ou d'un SMS OTP sans mot de passe. Vous pouvez également demander aux utilisateurs de définir un mot de passe afin qu'ils puissent utiliser d'autres méthodes de connexion, telles que le nom d'utilisateur-mot de passe et le mot de passe. Les conditions suivantes s'appliquent à la connexion sans mot de passe après l'importation d'un utilisateur.
-
Vous devez importer des utilisateurs dont l'attribut correspond à un facteur de connexion sans mot de passe disponible. Si les utilisateurs peuvent se connecter avec une adresse e-mail, vous devez importer un
emailattribut. S'il s'agit d'un numéro de téléphone, vous devez importer unphone_numberattribut. Dans les deux cas, importez une valeur pour l'un ou l'autre des attributs. -
Normalement, les utilisateurs importent dans un
RESET_REQUIREDétat où ils doivent réinitialiser leur mot de passe. S'ils sont importés avec la possibilité de se connecter sans mot de passe, Amazon Cognito définit leur état sur.CONFIRMED
Pour plus d'informations sur l'authentification sans mot de passe, notamment sur la façon de la configurer et de créer le flux d'authentification dans votre application, consultez. Authentification auprès des groupes d'utilisateurs Amazon Cognito
La procédure suivante décrit l'expérience utilisateur dans un mécanisme de connexion personnalisé avec des utilisateurs locaux RESET_REQUIRED après l'importation d'un fichier CSV. Si vos utilisateurs se connectent avec un identifiant géré, demandez-leur de sélectionner le mot de passe oublié ? option, fournissez le code de leur e-mail ou de leur message texte et définissez un mot de passe.
Obligation pour les utilisateurs importés de réinitialiser leur mot de passe
-
Dans votre application, essayez de vous connecter silencieusement pour l'utilisateur actuel avec
InitiateAuthà l'aide d'un mot de passe aléatoire. -
Amazon Cognito renvoie
NotAuthorizedExceptionquandPreventUserExistenceErrorsest activé. Sinon, la valeur renvoyée estPasswordResetRequiredException. -
Votre application effectue une demande d'API
ForgotPasswordet réinitialise le mot de passe de l'utilisateur.-
L'application soumet le nom d'utilisateur dans une demande d'API
ForgotPassword. -
Amazon Cognito envoie un code à l'adresse e-mail ou au numéro de téléphone vérifiés. La destination dépend des valeurs que vous avez fournies pour
email_verifiedetphone_number_verifieddans votre fichier CSV. La réponse à la demandeForgotPasswordindique la destination du code.Note
Votre groupe d'utilisateurs doit être configuré pour vérifier les adresses e-mail ou les numéros de téléphone. Pour de plus amples informations, veuillez consulter Inscription et confirmation des comptes d’utilisateur.
-
Votre application affiche un message demandant à votre utilisateur de vérifier l'endroit où le code a été envoyé et l'invite à saisir le code et un nouveau mot de passe.
-
L'utilisateur entre le code et le nouveau mot de passe dans l'application.
-
L'application soumet le code et le nouveau mot de passe dans une demande d'API
ConfirmForgotPassword. -
Votre application redirige votre utilisateur vers la connexion.
-
Importation d'utilisateurs avec des hachages de mots de passe
Lorsque vous migrez des utilisateurs d'un système d'authentification existant vers Amazon Cognito, vous pouvez importer le hachage de leur mot de passe ainsi que leurs attributs utilisateur. Vos utilisateurs peuvent alors se connecter immédiatement avec leurs mots de passe existants, sans avoir à réinitialiser leur mot de passe. Une fois que les utilisateurs se connectent pour la première fois, Amazon Cognito migre leurs informations d'identification de manière transparente vers le système d'authentification Amazon Cognito natif.
Important
L'importation du hachage des mots de passe n'est pas disponible pour tous les groupes d'utilisateurs pour le moment. L'importation du hachage des mots de passe nécessite l'infrastructure moderne Amazon Cognito dotée de fonctionnalités et d'évolutivité améliorées. Certains groupes d'utilisateurs utilisent toujours une infrastructure précédente et AWS seront mis à niveau vers la nouvelle infrastructure, ce qui débloquera cette fonctionnalité. Dans la console Amazon Cognito, les groupes d'utilisateurs éligibles affichent l'option d'algorithme de hachage des mots de passe lors de la création de tâches d'importation, et les groupes non éligibles n'affichent pas cette option. Pour plus d'informations, consultez Amazon Cognito qui débloque des fonctionnalités avancées grâce à une infrastructure de nouvelle génération
Comment fonctionne l'importation du hachage des mots de passe
Grâce à l'importation par hachage des mots de passe, vous pouvez migrer les utilisateurs tout en préservant leur capacité à se connecter avec leurs mots de passe existants. Le processus d'importation fonctionne comme suit :
-
Vous créez une tâche d'importation et spécifiez l'algorithme de hachage de mot de passe utilisé par votre système source pour créer les hachages de mots de passe.
-
Vous incluez la
password_hashcolonne dans votre fichier CSV avec la valeur de hachage du mot de passe de chaque utilisateur. -
Amazon Cognito importe les utilisateurs avec leur hachage de mot de passe et les crée avec un statut.
CONFIRMEDLes utilisateurs peuvent se connecter immédiatement. -
Lorsqu'un utilisateur se connecte pour la première fois, Amazon Cognito vérifie que son mot de passe correspond au hachage importé. Une fois la vérification réussie, Amazon Cognito migre les informations d'identification de l'utilisateur vers le système d'authentification natif.
-
Toutes les connexions suivantes utilisent le système d'authentification natif Amazon Cognito.
Important
Tous les hachages de mots de passe effectués dans une même tâche d'importation doivent utiliser le même algorithme. Vous spécifiez l'algorithme au niveau de la tâche lorsque vous créez la tâche d'importation.
Note
Tant qu'un utilisateur n'a pas terminé sa première connexion et qu'Amazon Cognito n'a pas migré ses informations d'identification, vous ne pouvez pas utiliser l'authentification SRP (Secure Remote Password) pour cet utilisateur. Utilisation USER_PASSWORD_AUTH ou ADMIN_USER_PASSWORD_AUTH flux pour les utilisateurs dont les mots de passe sont hachés et qui ne se sont pas encore connectés.
algorithmes de hachage de mots de passe pris en charge
Amazon Cognito prend en charge les algorithmes de hachage de mots de passe suivants pour l'importation :
BCRYPT-
La fonction de hachage adaptative bcrypt. Amazon Cognito extrait tous les paramètres requis (sel, facteur de coût) de la chaîne de hachage.
Format :
$2<a/b/x/y>$[cost]$[22-char salt][31-char hash]Exemple :
$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6Facteur de coût maximum : 10
SCRYPT-
La fonction de dérivation de clé basée sur un mot de passe scrypt. Amazon Cognito extrait tous les paramètres requis de la chaîne de hachage.
Format :
N$r$p$hexSalt$hexHashExemple :
65536$8$1$304dbaef7c5e828dc19c98f0600d18fe$4f69c498c12cd102d057356facf8d77e8d42407090491ea32c5b038f5a18c099Paramètres maximaux : N (CPU/memory coût) = 65536, r (taille du bloc) = 8, p (parallélisme) = 1
ARGON2ID-
L'algorithme de hachage du mot de passe Argon2ID. Amazon Cognito extrait tous les paramètres requis de la chaîne de hachage.
Format :
$argon2id$v=N$m=M,t=T,p=P$salt$hashExemple :
$argon2id$v=19$m=19456,t=2,p=1$ko/G5o1ms+ML08P95sQ8DA$AkVbvWSOqz7Hs3qthhWKxicOWnGLN+MBmpwc3emi5VAParamètres maximaux : m (mémoire en KiB) = 19456, t (itérations) = 2, p (parallélisme) = 1
PBKDF2_SHA256-
Password-Based Fonction de dérivation clé 2 avec SHA-256. Amazon Cognito extrait tous les paramètres requis de la chaîne de hachage.
Format :
$pbkdf2-sha256$iterations$salt$hashExemple :
$pbkdf2-sha256$600000$1XZlmwLQ2hhM3JYuCPiArQ$Pfheg9Zi/v5lXU4yyLA0WFUYEd/rlaVbzrM9oMD6IrANombre maximum d'itérations : 600 000
Note
Tous les algorithmes pris en charge sont autodescriptifs, ce qui signifie qu'Amazon Cognito peut extraire tous les paramètres requis (tels que le sel, le facteur de coût et les itérations) directement à partir de la chaîne de hachage. Il vous suffit de spécifier le nom de l'algorithme lorsque vous créez la tâche d'importation.
Si le hachage de votre mot de passe comporte des valeurs de paramètres qui dépassent les limites maximales indiquées ci-dessus, l'importation échoue pour cet utilisateur. Vérifiez la configuration du hachage des mots de passe de votre système source avant de procéder à l'importation afin de garantir la compatibilité.
Ajouter des hachages de mots de passe à votre fichier CSV
Lorsque vous téléchargez le modèle CSV pour l'importation par l'utilisateur, le modèle inclut une password_hash colonne. Remplissez cette colonne avec les valeurs de hachage des mots de passe des utilisateurs que vous souhaitez importer avec leurs mots de passe existants.
Règles de formatage CSV pour l'importation du hachage des mots de passe
-
La
password_hashcolonne est obligatoire lorsque votre tâche d'importation spécifie un algorithme de hachage de mot de passe. Si vous laissez la valeur vide pour un utilisateur spécifique, Amazon Cognito importe cet utilisateur sans mot de passe et lui attribue cet état.RESET_REQUIRED -
Si votre tâche d'importation spécifie un algorithme de hachage de mot de passe mais que votre fichier CSV ne contient pas de
password_hashcolonne, la tâche échoue. -
Si la valeur de hachage d'un mot de passe est mal formée ou ne correspond pas au format attendu pour l'algorithme spécifié, l'importation échoue pour cet utilisateur. Amazon Cognito ne crée pas l'utilisateur et enregistre l'échec dans vos CloudWatch journaux Amazon Logs.
-
Les valeurs de hachage des mots de passe distinguent les majuscules et minuscules. Assurez-vous qu'ils correspondent exactement au format attendu par l'algorithme.
Exemple Exemple de fichier CSV avec hachage de mots de passe
L'exemple suivant montre un fichier CSV qui importe des utilisateurs avec des hachages de mot de passe bcrypt :
cognito:username,email,email_verified,phone_number,phone_number_verified,password_hash alejandro_rosalez,alejandro_rosalez@example.com,TRUE,+12345550100,TRUE,$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6 mary_major,mary_major@example.com,TRUE,+12345550199,TRUE,$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6
Création d'une tâche d'importation avec des hachages de mots de passe (AWS CLI)
Pour importer des utilisateurs à l'aide d'un hachage de mot de passe, vous devez spécifier l'algorithme de hachage du mot de passe lors de la création de la tâche d'importation. Tous les utilisateurs participant à la tâche d'importation doivent utiliser le même algorithme.
Utilisez la AWS Command Line Interface commande suivante pour créer une tâche d'importation avec des hachages de mots de passe. Le --password-hashing-algorithm paramètre indique l'algorithme utilisé pour créer les hachages de mots de passe dans votre fichier CSV.
aws cognito-idp create-user-import-job \ --job-name "JOB_NAME" \ --user-pool-id "USER_POOL_ID" \ --cloud-watch-logs-role-arn "ROLE_ARN" \ --password-hashing-algorithmBCRYPT
BCRYPTRemplacez-le par l'un des algorithmes pris en charge : BCRYPTSCRYPT,ARGON2ID, ouPBKDF2_SHA256.
Exemple Exemple de réponse
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "PasswordHashingAlgorithm": "BCRYPT", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
La réponse inclut le PasswordHashingAlgorithm champ confirmant l'algorithme que vous avez spécifié. Téléchargez votre fichier CSV sur l'URL présignée et lancez la tâche comme décrit dansChargement du fichier CSV.
Expérience utilisateur après l'importation du hachage du mot de passe
Les utilisateurs importés avec des mots de passe hachés ont l'expérience suivante :
-
Connexion immédiate : les utilisateurs peuvent se connecter avec leurs mots de passe existants immédiatement après l'importation. Les utilisateurs ne sont pas invités à réinitialiser leur mot de passe.
-
État de l'utilisateur : Amazon Cognito crée ces utilisateurs avec un
CONFIRMEDstatut au lieu de.RESET_REQUIRED -
Migration transparente : lorsque les utilisateurs se connectent pour la première fois, Amazon Cognito vérifie que leur mot de passe correspond au hachage importé. Une fois la vérification réussie, Amazon Cognito migre ses informations d'identification vers le système d'authentification natif. Toutes les connexions suivantes utilisent le système natif.
-
Latence de connexion initiale : la première connexion pour les utilisateurs dont les mots de passe sont hachés peut prendre un peu plus de temps que les connexions suivantes. Amazon Cognito doit vérifier le mot de passe par rapport au hachage importé et migrer les informations d'identification vers le système d'authentification natif.
-
Réinitialisation du mot de passe : si un utilisateur réinitialise son mot de passe avant sa première connexion, le hachage du mot de passe importé est remplacé par un nouveau mot de passe à l'aide du système d'authentification natif Amazon Cognito.
Résolution des erreurs d'importation par hachage des mots de passe
Si l'importation du hachage du mot de passe échoue pour un utilisateur, Amazon Cognito enregistre l'échec dans vos journaux CloudWatch Amazon Logs. Les scénarios d'erreur courants incluent :
- Hachage mal formé
-
Le hachage du mot de passe ne correspond pas au format attendu pour l'algorithme spécifié. Vérifiez que le format de hachage est correct et correspond à l'un des formats répertoriés dansalgorithmes de hachage de mots de passe pris en charge.
- Paramètre hors limites
-
Le hachage du mot de passe contient des valeurs de paramètres (telles que le facteur de coût ou les itérations) qui dépassent les valeurs maximales autorisées. Pour les utilisateurs dont les hachages sont incompatibles, choisissez l'une des options suivantes :
-
Importez ces utilisateurs sans hachage de mot de passe en laissant le
password_hashchamp vide. Amazon Cognito les place dansRESET_REQUIREDcet état et ils doivent réinitialiser leur mot de passe lors de leur première connexion. -
Utilisez un déclencheur Lambda de migration d'utilisateurs pour migrer ces utilisateurs au moment de la connexion plutôt que par le biais d'une importation CSV.
-
Avant de mettre hors service votre système source, rehachez les mots de passe avec des paramètres compatibles lorsque les utilisateurs se connectent à votre système existant.
-
- Incompatibilité de l'algorithme
-
Le hachage du mot de passe a été créé avec un algorithme différent de celui spécifié dans la tâche d'importation. Tous les hachages d'une même tâche d'importation doivent utiliser le même algorithme. Si vos utilisateurs utilisent des algorithmes différents, créez des tâches d'importation distinctes pour chaque algorithme.
- Colonne password_hash manquante
-
Vous avez spécifié un algorithme de hachage de mot de passe lors de la création de la tâche, mais votre fichier CSV n'inclut pas la
password_hashcolonne. Ajoutez la colonne à votre fichier CSV ou créez une nouvelle tâche sans spécifier d'algorithme.
Lorsqu'une importation par hachage de mot de passe échoue pour un utilisateur, Amazon Cognito ne crée pas l'utilisateur. Les autres utilisateurs participant à la tâche d'importation continuent d'être traités. Consultez vos CloudWatch journaux Amazon Logs pour identifier les utilisateurs qui ont échoué et la raison de chaque échec.
Considérations de sécurité pour l'importation du hachage des mots de passe
Amazon Cognito applique des mesures de sécurité supplémentaires aux hachages de mots de passe importés :
-
Double hachage : Amazon Cognito rehasche tous les hachages de mots de passe importés avec une couche supplémentaire de protection cryptographique avant le stockage, quelle que soit la puissance de l'algorithme d'origine.
-
Migration automatique : une fois la première authentification réussie, Amazon Cognito migre les informations d'identification de l'utilisateur vers le protocole natif Secure Remote Password (SRP) utilisé par Amazon Cognito. Cela garantit que tous les utilisateurs utilisent finalement le mécanisme d'authentification de haute sécurité natif.
-
Nettoyage des données : une fois la tâche d'importation terminée, Amazon Cognito supprime du stockage temporaire le fichier CSV chargé contenant les hachages de mots de passe.
Important
Traitez votre fichier CSV contenant des hachages de mots de passe comme des données sensibles. Protégez-le pendant le transport et supprimez-le en toute sécurité une fois l'importation terminée.