Importación de usuarios en grupos de usuarios desde un archivo CSV - Amazon Cognito

Importación de usuarios en grupos de usuarios desde un archivo CSV

Si dispone de un almacén de identidades externo y tiene tiempo de preparar su grupo de usuarios para los nuevos usuarios locales, la importación masiva de usuarios desde un archivo de valores separados por comas (CSV) puede ser una opción económica y que requiere poco esfuerzo para migrar a un grupo de usuarios de Amazon Cognito. La importación de un archivo CSV es un proceso que consiste en descargar y rellenar un archivo de plantilla y, a continuación, ponerlo a disposición del grupo de usuarios en un trabajo de importación. Puede utilizar una importación de CSV para crear rápidamente usuarios de prueba. También puede rellenar el archivo mediante programación con solicitudes de API de lectura al almacén de identidades externo y, a continuación, analizar sus detalles y atributos para convertirlas en operaciones de escritura en el archivo.

El proceso de importación establece valores para todos los atributos de usuario excepto password (contraseña). No se admite la importación de contraseñas, ya que las prácticas recomendadas de seguridad requieren que las contraseñas no estén disponibles como texto sin formato, y no admitimos la importación de hash. Esto significa que sus usuarios deben cambiar de contraseña la primera vez que inicien sesión. Los usuarios se encuentran en estado RESET_REQUIRED cuando se importan con este método.

La forma más sencilla de importar usuarios desde un CSV es activar el inicio de sesión sin contraseña en su grupo de usuarios. Con los atributos de dirección de correo electrónico y número de teléfono y la configuración correcta del grupo de usuarios, los usuarios pueden iniciar sesión con contraseñas de un solo uso (OTP) por correo electrónico o SMS inmediatamente después de completar el trabajo de importación. Para obtener más información, consulte Obligación de que los usuarios importados restablezcan sus contraseñas.

También puede establecer las contraseñas de sus usuarios con una solicitud a la API AdminSetUserPassword que establezca el parámetro Permanent en true. La importación de CSV no contribuye a los usuarios activos mensuales (MAU) facturados de su grupo de usuarios. Sin embargo, las operaciones de restablecimiento de contraseña generan MAU. Para administrar los costos que supone importar un gran número de usuarios con contraseña que podrían no estar activos inmediatamente, configure la aplicación para que solicite a los usuarios que introduzcan una nueva contraseña cuando inicien sesión y reciban el desafío RESET_REQUIRED.

nota

La fecha de creación de cada usuario es la hora en la que se importó a dicho usuario al grupo de usuarios. La fecha de creación no es uno de los atributos importados.

Pasos para crear un trabajo de importación de usuarios
  1. Cree un rol de Registros de Amazon CloudWatch en la consola (IAM) AWS Identity and Access Management.

  2. Cree el archivo .csv de importación de usuarios.

  3. Cree y ejecute el trabajo de importación de usuarios.

  4. Cargue el archivo .csv de importación de usuarios.

  5. Inicie y ejecute el trabajo de importación de usuarios.

  6. Utilice CloudWatch para comprobar el registro de eventos.

  7. Pida a los usuarios importados que restablezcan sus contraseñas.

Más recursos

Creación del rol de IAM de CloudWatch Logs

Si utiliza la CLI o la API de Amazon Cognito, tiene que crear un rol de IAM para CloudWatch. En el procedimiento siguiente se describe cómo crear un rol de IAM que Amazon Cognito pueda utilizar para escribir los resultados de su trabajo de importación en CloudWatch Logs.

nota

Al crear un trabajo de importación en la consola de Amazon Cognito, puede crear el rol de IAM al mismo tiempo. Cuando elige Create a new IAM role (Crear un nuevo rol de IAM), Amazon Cognito aplica automáticamente la política de confianza y la política de IAM adecuadas al rol.

Para crear el rol de IAM de CloudWatch Logs para la importación de grupos de usuarios (AWS CLI, API)
  1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en https://console.aws.amazon.com/iam/.

  2. Cree un nuevo rol de IAM para un Servicio de AWS. Para obtener instrucciones detalladas, consulte Creación de un rol para un Servicio de AWS en la Guía del usuario de AWS Identity and Access Management.

    1. Al seleccionar Use case (Caso de uso) para Trusted entity type (Tipo de entidad de confianza), elija cualquier servicio. Amazon Cognito no aparece actualmente en la lista de casos de uso del servicio.

    2. En la pantalla Add permissions (Agregar permisos), elija Create policy (Crear política) e inserte la siguiente declaración de política. Reemplace REGION por la Región de AWS de su grupo de usuarios, por ejemplo, us-east-1. Reemplace ACCOUNT por su ID de Cuenta de AWS, por ejemplo, 111122223333.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:111122223333:log-group:/aws/cognito/*" ] } ] }
  3. Como no ha elegido Amazon Cognito como entidad de confianza al crear el rol, ahora debe editar manualmente la relación de confianza del rol. Elija Roles en el panel de navegación de la consola de IAM y, a continuación, elija el nuevo rol que ha creado.

  4. Seleccione la pestaña Relaciones de confianza.

  5. Elija Editar la política de confianza.

  6. Pegue la siguiente declaración de política en Edit trust policy (Editar política de confianza) y reemplace cualquier texto existente:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cognito-idp.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  7. Elija Actualizar política.

  8. Apunte el ARN del rol. Proporcionará el ARN cuando cree su trabajo de importación.

Creación del archivo CSV de importación de usuarios

Para poder importar los usuarios existentes a su grupo de usuarios, debe crear un archivo de valores separados por comas (CSV) que contenga los usuarios que desea importar y sus atributos. A partir de su grupo de usuarios, puede recuperar un archivo de importación de usuarios con encabezados que reflejen el esquema de atributos de su grupo de usuarios. A continuación, puede insertar la información de usuario que coincida con los requisitos de formato de Formato del archivo CSV.

Descarga del encabezado del archivo CSV (consola)

Siga este procedimiento para descargar el archivo de encabezado de CSV.

Para descargar el encabezado de archivo CSV
  1. Diríjase a la consola de Amazon Cognito. Es posible que se le soliciten sus credenciales de AWS.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Seleccione el menú Usuarios.

  5. En la sección Import users (Importar usuarios), elija Create an import job (Crear un trabajo de importación).

  6. En Upload CSV (Cargar CSV), seleccione el enlace template.csv y descargue el archivo CSV.

Descarga del encabezado del archivo CSV (AWS CLI)

Para obtener una lista de los encabezados correctos, en el menú Usuarios, en Importar usuarios, seleccione Crear trabajo de importación. En el cuadro de diálogo siguiente, seleccione el enlace template.csv para descargar un archivo de plantilla con los atributos de su grupo de usuarios.

También puede ejecutar este comando de la CLI, donde USER_POOL_ID es el identificador del grupo de usuarios al que importará los usuarios:

aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"

Respuesta de ejemplo:

{ "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" }

Formato del archivo CSV

El archivo de encabezado CSV de importación de usuarios descargado es parecido a la siguiente cadena. También incluye cualquier atributo personalizado que haya agregado a su grupo de usuarios.

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

Edite el archivo CSV para que incluya este encabezado y los valores de atributo de sus usuarios y que tenga un formato que siga estas reglas:

nota

Para obtener más información acerca de los valores de atributos, como el formato adecuado para números de teléfono, consulte Uso de atributos de usuario.

  • La primera línea del archivo es la fila de encabezado descargada, que contiene los nombres de los atributos de usuario.

  • El orden de las columnas del archivo CSV no importa.

  • Cada línea tras la primera línea contiene los valores de atributo de un usuario.

  • Todas las columnas del encabezado tienen que estar presentes, pero no es necesario proporcionar valores para cada columna.

  • Los atributos siguientes son obligatorios:

    • cognito:username

    • email_verified o phone_number_verified

      • Al menos uno de los atributos verificados automáticamente debe ser true para cada usuario. Un atributo verificado automáticamente es una dirección de correo electrónico o un número de teléfono al que Amazon Cognito envía automáticamente un código cuando un nuevo usuario se une a su grupo de usuarios.

      • El grupo de usuarios debe tener al menos un atributo verificado automáticamente, ya sea email_verified o phone_number_verified. Si el grupo de usuarios no tiene atributos verificados automáticamente, el trabajo de importación no empezará.

      • Si el grupo de usuarios solo tiene un atributo verificado automáticamente, dicho atributo tiene que verificarse para cada usuario. Por ejemplo, si el grupo de usuarios solo tiene phone_number como un atributo verificado automáticamente, el valor phone_number_verified debe ser true para cada usuario.

      nota

      Para que los usuarios restablezcan sus contraseñas, deben tener un correo electrónico o un número de teléfono verificado. Amazon Cognito envía un mensaje con el código de restablecimiento de contraseña al correo electrónico o al número de teléfono especificado en el archivo CSV. Si el mensaje se envía al número de teléfono, se envía mediante SMS. Para obtener más información, consulte Verificación de la información de contacto durante el registro.

    • email (si email_verified es true)

    • phone_number (si phone_number_verified es true)

    • Todos los atributos que ha marcado como obligatorios al crear el grupo de usuarios

  • Los valores de atributo que son cadenas no deben estar entre comillas.

  • Si un valor de atributo contiene una coma, debe poner delante de la coma una barra oblicua inversa (\). Esto se debe a que los campos de un archivo CSV están separados por comas.

  • El contenido del archivo CSV debe estar en formato UTF-8 sin marca de orden de bytes.

  • El campo cognito:username es obligatorio y debe ser único dentro del grupo de usuarios. Puede ser cualquier cadena Unicode. Sin embargo, no puede contener espacios ni pestañas.

  • Los valores birthdate (Fecha de nacimiento), si los hay, deben tener el formato mm/dd/aaaa. Esto significa, por ejemplo, que la fecha de nacimiento 1 de febrero de 1985 debe codificarse como 02/01/1985.

  • El campo cognito:mfa_enabled debe ajustarse a los requisitos de la MFA de su grupo de usuarios. Si ha establecido que la autenticación multifactor (MFA) sea obligatoria en su grupo de usuarios, este campo debe ser true, o dejarse en blanco, para todos los usuarios. Si ha desactivado la MFA, este campo debe ser false, o dejarse en blanco, para todos los usuarios. Un valor en blanco establece el estado habilitado para la MFA de los usuarios importados en el estado requerido por el grupo de usuarios. Puede importar usuarios de un grupo de usuarios requerido por la MFA sin un factor de MFA válido, independientemente de si establece un valor cognito:mfa_enabled. Los usuarios de este estado tienen la MFA activa, pero no pueden iniciar sesión hasta que configuren un atributo de correo electrónico, un atributo de número de teléfono o un TOTP, y esa configuración sea un factor de MFA válido en su grupo de usuarios.

  • La longitud máxima de la fila es de 16 000 caracteres.

  • El tamaño de archivo CSV máximo es de 100 MB.

  • El número máximo de filas (usuarios) del archivo es de 500 000. Este máximo no incluye la fila de encabezado.

  • Se espera que el valor del campo updated_at (Actualizado a) esté en formato de tiempo Unix en segundos, por ejemplo: 1471453471.

  • Los espacios en blanco del principio y del final de un valor de atributo se eliminan.

La siguiente lista es un ejemplo de archivo de importación CSV para un grupo de usuarios sin atributos personalizados. Su esquema de grupo de usuarios puede diferir de este ejemplo. En ese caso, deberá proporcionar valores de prueba en la plantilla CSV que descargue de su grupo de usuarios.

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

Creación y ejecución del trabajo de importación del grupo de usuarios de Amazon Cognito

En esta sección, se describe cómo crear y ejecutar el trabajo de importación del grupo de usuarios mediante la consola de Amazon Cognito y la AWS Command Line Interface (AWS CLI).

Importación de usuarios desde un archivo CSV (consola)

En el procedimiento siguiente se describe cómo importar a los usuarios desde el archivo CSV.

Para importar usuarios desde el archivo CSV (consola)
  1. Diríjase a la consola de Amazon Cognito. Es posible que se le soliciten sus credenciales de AWS.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija en la lista un usuario existente.

  4. Seleccione el menú Usuarios.

  5. En la sección Import users (Importar usuarios), elija Create an import job (Crear un trabajo de importación).

  6. En la página Create import job (Crear trabajo de importación), ingrese un valor en Job name (Nombre de trabajo).

  7. Elija Create a new IAM role (Crear un nuevo rol de IAM) o Use an existing IAM role (Usar un rol de IAM existente).

    1. Si eligió Create a new IAM role (Crear un nuevo rol de IAM), ingrese un nombre para su nuevo rol. Amazon Cognito creará automáticamente un rol con los permisos y la relación de confianza correctos. La entidad principal de IAM que crea el trabajo de importación debe tener permisos para crear roles de IAM.

    2. Si eligió Use an existing IAM role (Utilizar un rol de IAM existente), elija un rol de la lista debajo de IAM role selection (Selección de rol de IAM). Este rol debe tener los permisos y la política de confianza que se describen en Creación del rol de IAM de CloudWatch Logs.

  8. En Cargar CSV, seleccione Elegir archivo y adjunte el archivo CSV que ha preparado.

  9. Elija Create job (Crear trabajo) para enviar su trabajo, pero inícielo más tarde. Elija Create and start job (Crear e iniciar trabajo) para enviar su trabajo e iniciarlo inmediatamente.

  10. Si ha creado el trabajo pero no lo ha iniciado, puede iniciarlo más adelante. En el menú Usuarios, en Importar usuarios, elija su trabajo de importación y, a continuación, seleccione Iniciar. También puede enviar una solicitud de API StartUserImportJob desde un SDK de AWS.

  11. Supervise el progreso de su trabajo de importación de usuarios en la pestaña Usuarios, en Importar usuarios. Si su trabajo no se realiza correctamente, puede seleccionar el valor Status (Estado). Para obtener más detalles, seleccione View the CloudWatch logs for more details (Ver los registros de CloudWatch para obtener más detalles) y consulte cualquier problema en la consola de CloudWatch Logs.

Importación de usuarios (AWS CLI)

Dispone de los comandos de la CLI siguientes para importar usuarios a un grupo de usuarios:

  • create-user-import-job

  • get-csv-header

  • describe-user-import-job

  • list-user-import-jobs

  • start-user-import-job

  • stop-user-import-job

Para obtener la lista de opciones de línea de comandos de estos comandos, utilice la opción de línea de comandos help. Por ejemplo:

aws cognito-idp get-csv-header help

Creación de un trabajo de importación de usuarios

Después de crear el archivo CSV, cree un trabajo de importación de usuarios mediante la ejecución del siguiente comando de la CLI, donde JOB_NAME es el nombre elegido para el trabajo, USER_POOL_ID es el ID del grupo de usuarios al que se agregarán usuarios y ROLE_ARN es el ARN de rol recibido en Creación del rol de IAM de CloudWatch Logs:

aws cognito-idp create-user-import-job --job-name "JOB_NAME" --user-pool-id "USER_POOL_ID" --cloud-watch-logs-role-arn "ROLE_ARN"

El valor de PRE_SIGNED_URL devuelto en la respuesta es válido durante 15 minutos. Transcurrido ese tiempo, la URL caducará y será preciso crear otra tarea de importación de usuarios para obtener una URL nueva.

ejemplo respuesta:
{ "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 } }

Valores de estado para un trabajo de importación de usuarios

En las respuestas a los comandos de importación de usuarios, verá uno de los valores Status siguientes:

  • Created: Se ha creado el trabajo, pero no se ha iniciado.

  • Pending: Un estado de transición. El trabajo se ha iniciado, pero todavía no se ha empezado a importar los usuarios.

  • InProgress: El trabajo se ha iniciado y se están importando usuarios.

  • Stopping: Ha detenido el trabajo, pero el trabajo aún no ha dejado de importar usuarios.

  • Stopped: Ha detenido el trabajo y este ha dejado de importar usuarios.

  • Succeeded: El trabajo se ha completado correctamente.

  • Failed: El trabajo se ha detenido debido a un error.

  • Expired: Ha creado un trabajo, pero no la ha iniciado en un plazo de 24-48 horas. Todos los datos asociados al trabajo se han eliminado y el trabajo no puede iniciarse.

Carga del archivo CSV

Utilice el comando curl siguiente para cargar el archivo CSV que contiene los datos de usuario en la URL prefirmada que ha obtenido de la respuesta del comando create-user-import-job.

curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"

En la salida de este comando, busque la frase "We are completely uploaded and fine". Esta frase indica que el archivo se ha cargado correctamente. Sus grupos de usuarios no conservan la información de los archivos de importación después de ejecutar los trabajos de importación. Cuando se completen o caduquen, Amazon Cognito eliminará el archivo CSV cargado.

Descripción de un trabajo de importación de usuarios

Para obtener una descripción de su tarea de importación de usuarios, utilice el siguiente comando, donde USER_POOL_ID es el ID del grupo de usuarios y JOB_ID es el ID de trabajo que se ha devuelto al crear el trabajo de importación de usuarios.

aws cognito-idp describe-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
ejemplo Respuesta de ejemplo:
{ "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 } }

En el resultado del ejemplo anterior, PRE_SIGNED_URL es la URL en la que ha cargado el archivo CSV. ROLE_ARN es el ARN del rol para CloudWatch Logs que ha recibido cuando creó el rol.

Visualización de la lista de trabajos de importación de usuarios

Para visualizar una lista de las tareas de importación de usuarios, ejecute el comando siguiente:

aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 2
ejemplo Respuesta de ejemplo:
{ "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" }

Las tareas se enumeran en orden cronológico desde la última tarea creada hasta la primera. La cadena PAGINATION_TOKEN que sigue al segundo trabajo indica que este comando de lista tiene resultados adicionales. Para publicar la lista de resultados adicionales, utilice la opción --pagination-token de la siguiente manera:

aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 10 --pagination-token "PAGINATION_TOKEN"

Inicio de un trabajo de importación de usuarios

Para iniciar una tarea de importación de usuarios, ejecute el comando siguiente:

aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"

Solo puede haber un trabajo de importación activo a la vez por cuenta.

ejemplo Respuesta de ejemplo:
{ "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 } }

Detención de un trabajo de importación de usuarios

Para detener una tarea de importación de usuarios mientras está en curso, ejecute el comando siguiente. Después de detener el trabajo, esta no se puede reiniciar.

aws cognito-idp stop-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
ejemplo Respuesta de ejemplo:
{ "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 } }

Visualización de los resultados de importación del grupo de usuarios en la consola de CloudWatch

Puede ver los resultados de su trabajo de importación en la consola de Amazon CloudWatch.

Visualización de los resultados

En los pasos siguientes se describe cómo ver los resultados de la importación del grupo de usuarios.

Para ver los resultados de la importación del grupo de usuarios
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  2. Seleccione Logs (Registros).

  3. Elija el grupo de log de las tareas de importación del grupo de usuarios. El nombre del grupo de log tiene el formato /aws/cognito/userpools/USER_POOL_ID/USER_POOL_NAME.

  4. Elija el log de el trabajo de importación de usuarios que acaba de ejecutar. El nombre de log tiene el formato JOB_ID/JOB_NAME. Los resultados del log remiten a los usuarios por número de línea. No se escriben datos de usuarios en el log. Por cada usuario, se muestra una línea similar a la siguiente:

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

Interpretación de los resultados

Los usuarios que se han importado correctamente tiene el estado establecido en "PasswordReset".

En los casos siguientes, el usuario no se importa, pero el trabajo de importación continuará:

  • Ningún atributo verificado automáticamente se establece en true.

  • Los datos de usuario no coinciden con el esquema.

  • El usuario no se ha podido importar debido a un error interno.

En los casos siguientes, el trabajo de importación fallará:

  • No se puede asumir el rol de Amazon CloudWatch Logs, no tiene la política de acceso correcta o se ha eliminado.

  • El grupo de usuarios se ha eliminado.

  • Amazon Cognito no puede analizar el archivo .csv.

Obligación de que los usuarios importados restablezcan sus contraseñas

Si su grupo de usuarios solo ofrece el inicio de sesión basado en contraseñas, los usuarios deberán restablecer sus contraseñas después de importarlas. La primera vez que inicien sesión, podrán introducir cualquier contraseña. Amazon Cognito les pide que introduzcan una nueva contraseña en la respuesta de la API a la solicitud de inicio de sesión de su aplicación.

Si su grupo de usuarios tiene factores de autenticación sin contraseña, Amazon Cognito utiliza de forma predeterminada los de los usuarios importados. No se les pide una contraseña nueva y pueden iniciar sesión inmediatamente con una OTP por correo o SMS sin contraseña establecida. También puede pedir a los usuarios que establezcan una contraseña para que puedan completar otros métodos de inicio de sesión, como la combinación de nombre de usuario y contraseña o el uso de una clave de acceso. Tras la importación del usuario, se aplican las siguientes condiciones al inicio de sesión sin contraseña.

  1. Debe importar los usuarios con un atributo que corresponda a un factor de inicio de sesión sin contraseña disponible. Si los usuarios pueden iniciar sesión con una dirección de correo electrónico, debe importar un atributo email. Si es un número de teléfono, debe importar un atributo phone_number. Si son ambas cosas, importe un valor para cualquiera de los atributos.

  2. Normalmente, los usuarios importan en un estado RESET_REQUIRED en el que deben restablecer su contraseña. Si se importan con la posibilidad de iniciar sesión sin contraseña, Amazon Cognito establece su estado en CONFIRMED.

Para obtener más información sobre la autenticación sin contraseña, lo que incluye cómo configurarla y cómo crear el flujo de autenticación en su aplicación, consulte Autenticación con grupos de usuarios de Amazon Cognito.

El siguiente procedimiento describe la experiencia del usuario en un mecanismo de inicio de sesión personalizado con usuarios locales en un RESET_REQUIRED después de importar un archivo CSV. Si sus usuarios inician sesión con un inicio de sesión administrado, pídales que seleccionen la opción ¿Ha olvidado su contraseña?, que miren el código en su correo electrónico o mensaje de texto y que establezcan una contraseña.

Obligación de que los usuarios importados restablezcan sus contraseñas
  1. En la aplicación, intente iniciar sesión de forma silenciosa para el usuario actual con InitiateAuth mediante una contraseña aleatoria.

  2. Amazon Cognito devuelve NotAuthorizedException cuando está habilitado PreventUserExistenceErrors. De lo contrario, devuelve PasswordResetRequiredException.

  3. Su aplicación realiza una solicitud de API ForgotPassword y restablece la contraseña del usuario.

    1. La aplicación envía el nombre de usuario en una solicitud de API ForgotPassword.

    2. Amazon Cognito envía un código al correo electrónico o número de teléfono verificados. El destino depende de los valores que haya proporcionado para email_verified y phone_number_verified en su archivo CSV. La respuesta a la solicitud ForgotPassword indica el destino del código.

      nota

      Su grupo de usuarios debe estar configurado para verificar correos electrónicos o números de teléfono. Para obtener más información, consulte Inscripción y confirmación de cuentas de usuario.

    3. Su aplicación muestra un mensaje a su usuario para que compruebe la ubicación a la que se envió el código y le pide que ingrese el código y una nueva contraseña.

    4. El usuario introduce el código y una nueva contraseña en la aplicación.

    5. La aplicación envía el código y la nueva contraseña en una solicitud de API ConfirmForgotPassword.

    6. La aplicación redirige al usuario para que inicie sesión.