

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Administración de usuarios en el grupo de usuarios
<a name="managing-users"></a>

Después de crear un grupo de usuarios, puede crear, confirmar y administrar cuentas de usuarios. Con los grupos de usuarios de Amazon Cognito, puede administrar sus usuarios y su acceso a los recursos mediante el mapeo de roles de IAM a los grupos.

Dispone de varias opciones de configuración y tareas administrativas para administrar los usuarios de un grupo de usuarios de Amazon Cognito. Los grupos de usuarios pueden escalarse hasta alcanzar millones de usuarios. Un directorio de usuarios de esta magnitud requiere herramientas administrativas que también sean escalables y puedan repetirse. Puede que quiera crear numerosos perfiles de usuario, administrar los usuarios inactivos, elaborar informes de gobernanza y conformidad o configurar herramientas de autoservicio en las que los usuarios realicen la mayor parte del trabajo. Después de crear un grupo de usuarios, puede controlar el modo en que los usuarios se registran y confirman sus cuentas, como, por ejemplo, exigir una verificación por correo electrónico o número de teléfono. Los administradores también pueden crear directamente cuentas de usuario y personalizar los mensajes de bienvenida y los requisitos de contraseña.

Los grupos de usuarios tienen, a su vez, grupos de usuarios, en los que puede administrar el acceso a los recursos en función de la pertenencia a un determinado grupo de usuarios. Puede asignar roles de IAM a estos grupos para administrar el acceso a los Servicios de AWS con grupos de identidades. La pertenencia a un determinado grupo de usuarios se incluye en el token de ID y en el de acceso. Con esta información, puede tomar decisiones de control de acceso en tiempo de ejecución en la aplicación o con un motor de políticas como Amazon Verified Permissions.

Los grupos de usuarios suelen tener numerosos usuarios. Con frecuencia tendrá que buscar y actualizar cuentas de usuario. La API y la consola de Amazon Cognito permiten realizar consultas a los usuarios en función de atributos estándar, como el nombre de usuario, el correo electrónico o el número de teléfono. Los administradores también pueden restablecer contraseñas, deshabilitar cuentas y ver el historial de eventos de los usuarios.

Para migrar los datos de los usuarios ya existentes, Amazon Cognito dispone de opciones para importar usuarios desde un archivo CSV y utilizar un [desencadenador de Lambda](user-pool-lambda-migrate-user.md) para migrar automáticamente a los usuarios cuando estos inicien sesión por primera vez. Estas opciones permiten que los usuarios de otros directorios de usuarios puedan pasar a su grupo de usuarios.

Puede utilizar las características de administración de usuarios de los grupos de usuarios para controlar de forma pormenorizada el ciclo de vida de los usuarios y la experiencia de autenticación. La combinación del registro de autoservicio, las cuentas creadas por el administrador, los grupos y las herramientas de migración convierte a los grupos de usuarios de Amazon Cognito en un directorio de usuarios flexible.

**Topics**
+ [Configuración de políticas para la creación de usuarios](user-pool-settings-admin-create-user-policy.md)
+ [Inscripción y confirmación de cuentas de usuario](signing-up-users-in-your-app.md)
+ [Creación de cuentas de usuario como administrador](how-to-create-user-accounts.md)
+ [Agregar grupos a un grupo de usuarios](cognito-user-pools-user-groups.md)
+ [Gestión y búsqueda de cuentas de usuario](how-to-manage-user-accounts.md)
+ [Contraseñas, recuperación de contraseñas y políticas de contraseñas](managing-users-passwords.md)
+ [Importación de usuarios a un grupo de usuarios](cognito-user-pools-import-users.md)
+ [Uso de atributos de usuario](user-pool-settings-attributes.md)

# Configuración de políticas para la creación de usuarios
<a name="user-pool-settings-admin-create-user-policy"></a>

Su grupo de usuarios puede permitir que los usuarios se registren o puede crearlos como administrador. También puede controlar qué parte del proceso de comprobación y confirmación tras el registro queda en manos de sus usuarios. Por ejemplo, es posible que desee revisar los registros y aceptarlos en función de un proceso de validación externo. Esta configuración, o * política de creación de usuarios por parte del administrador*, también establece el tiempo que pasará antes de que un usuario ya no pueda confirmar su cuenta de usuario.

Amazon Cognito puede satisfacer las necesidades de sus clientes públicos como plataforma de gestión de acceso e identidad de los clientes (CIAM) para su software. Un grupo de usuarios que acepta el registro y tiene un cliente de aplicaciones, con o sin inicio de sesión administrado, crea un perfil de usuario para cualquier usuario de Internet que conozca su ID de cliente de aplicación, visible públicamente, y solicite registrarse. Un perfil de usuario registrado puede recibir tokens de identidad y acceso, así como acceder a los recursos que haya autorizado para su aplicación. Antes de activar el registro en su grupo de usuarios, revise sus opciones y asegúrese de que la configuración cumpla con sus estándares de seguridad. Configure con cuidado **Habilitar el registro automático** y `AllowAdminCreateUserOnly`, tal como se describe en los siguientes procedimientos.

------
#### [ Consola de administración de AWS ]

El menú de **Registro** de su grupo de usuarios contiene algunos de los ajustes para el registro y la creación administrativa de usuarios en su grupo de usuarios.

**Para configurar la experiencia de registro**

1. En **Verificación y confirmación asistidas por Cognito**, elija si desea **Permitir que Cognito envíe mensajes automáticamente para verificar y confirmar**. Con esta configuración habilitada, Amazon Cognito envía un mensaje de correo electrónico o mensaje SMS a los nuevos usuarios con un código que deben presentar a su grupo de usuarios. De este modo, se confirma que son los propietarios de la dirección de correo electrónico o el número de teléfono, se establece el atributo equivalente como verificado y se confirma la cuenta de usuario para el inicio de sesión. Los **Atributos para verificar** que elija determinan los métodos de entrega y los destinos de los mensajes de verificación.

1. La **verificación de los cambios en los atributos** no es importante a la hora de crear usuarios, pero está relacionada con la verificación de los atributos. Puede permitir que los usuarios que hayan cambiado sus [atributos de inicio de sesión](user-pool-settings-attributes.md#user-pool-settings-aliases.title), pero aún no los hayan verificado, continúen iniciando sesión con su nuevo valor de atributo o con el original. Para obtener más información, consulte [Verificación al cambiar los usuarios su correo electrónico o su número de teléfono](signing-up-users-in-your-app.md#verifying-when-users-change-their-email-or-phone-number).

1. Los **atributos obligatorios** muestran los atributos a los que se debe proporcionar un valor para que un usuario pueda registrarse o se puede crear un usuario. Solo puede establecer los atributos necesarios al crear un grupos de usuarios.

1. Los **atributos personalizados** son importantes para el proceso de creación y registro de usuarios, ya que solo se puede establecer un valor para los atributos personalizados *inmutables* al crear un usuario por primera vez. Para obtener más información sobre atributos personalizados, consulte [Custom attributes (Atributos personalizados)](user-pool-settings-attributes.md#user-pool-settings-custom-attributes).

1. En **Registro de autoservicio**, seleccione **Permitir el registro automático** si desea que los usuarios puedan generar una nueva cuenta con la API de `SignUp` [no autenticada](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pools-API-operations.html#user-pool-apis-auth-unauth). Si inhabilita el registro automático, solo podrá crear nuevos usuarios como administrador, en la consola de Amazon Cognito o [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)con solicitudes de API. En un grupo de usuarios en el que el registro automático está inactivo, las solicitudes de [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API se devuelven `NotAuthorizedException` y el inicio de sesión gestionado no muestra el enlace de **registro**.

En el caso de los grupos de usuarios en los que planea crear usuarios como administrador, puede configurar la duración de sus contraseñas temporales en los ajustes del menú **Métodos de autenticación**, en **Contraseñas temporales establecidas por los administradores que caducan en**.

Otro elemento importante de la creación de usuarios como administrador es el mensaje de invitación. Cuando crea un usuario nuevo, Amazon Cognito le envía un mensaje con un enlace a su aplicación para que pueda iniciar sesión por primera vez. Personalice esta plantilla de mensaje en el menú **Métodos de autenticación**, en **Plantillas de mensaje**.

Puede configurar [clientes de aplicaciones confidenciales](user-pool-settings-client-apps.md#user-pool-settings-client-app-client-types.title), normalmente aplicaciones web, con un secreto de cliente que impida el registro sin el secreto de cliente de la aplicación. Como práctica recomendada de seguridad, no distribuya los secretos de los clientes de aplicaciones en clientes de aplicaciones públicos, normalmente aplicaciones móviles. Puede crear clientes de aplicación con secretos de cliente en el menú **Clientes de aplicación** de la consola de Amazon Cognito.

------
#### [ Amazon Cognito user pools API ]

Puede configurar mediante programación los parámetros para la creación de usuarios en un grupo de usuarios en una solicitud de API [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)o [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)una solicitud de API.

El [AdminCreateUserConfig](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AdminCreateUserConfig)elemento establece los valores de las siguientes propiedades de un grupo de usuarios.

1. Habilitación de registro de autoservicio

1. El mensaje de invitación que se envía a los nuevos usuarios creados por el administrador

El siguiente ejemplo, cuando se añade a un cuerpo completo de solicitud de la API, establece un grupo de usuarios con el registro de autoservicio inactivo y un correo electrónico de invitación básico.

```
"AdminCreateUserConfig": { 
      "AllowAdminCreateUserOnly": true,
      "InviteMessageTemplate": { 
         "EmailMessage": "Your username is {username} and temporary password is {####}.",
         "EmailSubject": "Welcome to ExampleApp",
         "SMSMessage": "Your username is {username} and temporary password is {####}."
      }
   }
```

Los siguientes parámetros adicionales de una [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)solicitud de [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API rigen la creación de nuevos usuarios.

[AutoVerifiedAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-AutoVerifiedAttributes)  
Los atributos, direcciones de correo electrónico o números de teléfono a los que desea [enviar automáticamente un mensaje](user-pool-settings-email-phone-verification.md#user-pool-settings-email-phone-verification.title) al registrar un nuevo usuario.

[Políticas](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Policies)  
La [política de contraseñas](managing-users-passwords.md#user-pool-settings-policies.title) del grupo de usuarios.

[Esquema](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema)  
Los [atributos personalizados](user-pool-settings-attributes.md#user-pool-settings-custom-attributes.title) del grupo de usuarios. Son importantes para el proceso de creación y registro de usuarios, ya que solo se puede establecer un valor para los atributos personalizados *inmutables* al crear un usuario por primera vez.  
Este parámetro también establece los atributos necesarios para el grupo de usuarios. El texto siguiente, cuando se inserta en el elemento `Schema` de un cuerpo completo de solicitud de API, establece el atributo `email` según sea necesario.  

```
{
            "Name": "email",
            "Required": true
}
```

------

# Inscripción y confirmación de cuentas de usuario
<a name="signing-up-users-in-your-app"></a>

Las cuentas de usuario se añaden al grupo de usuarios siguiendo una de las formas siguientes:
+ El usuario se suscribe a la aplicación cliente del grupo de usuarios. Puede ser una aplicación móvil o web.
+ Puede importar la cuenta de usuario al grupo de usuarios. Para obtener más información, consulte [Importación de usuarios en grupos de usuarios desde un archivo CSV](cognito-user-pools-using-import-tool.md).
+ Puede crear la cuenta de usuario en el grupo de usuarios e invitar al usuario a iniciar sesión. Para obtener más información, consulte [Creación de cuentas de usuario como administrador](how-to-create-user-accounts.md).

Los usuarios que se inscriben se deben confirmar antes de poder iniciar sesión. Los usuarios importados y creados ya están confirmados, pero deben crear su contraseña la primera vez que inicien sesión. En la sección siguiente se explica el proceso de confirmación y la verificación de teléfono y correo electrónico.

**Contraseñas en el registro**  
Amazon Cognito exige contraseñas a todos los usuarios cuando se registran, excepto en las siguientes condiciones. Si se cumplen *todas* estas condiciones, puede omitir las contraseñas en las operaciones de registro.

1. El [inicio de sesión sin contraseña](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) está activo en su grupo de usuarios y en el cliente de aplicación.

1. La aplicación está diseñada a medida con módulos de autenticación en un AWS SDK. El inicio de sesión administrado y la interfaz de usuario alojada siempre requieren contraseñas.

1. Los usuarios proporcionan valores de atributos para los métodos de inicio de sesión sin contraseña (contraseñas de un solo uso () por correo electrónico o mensaje SMS, que usted permite. OTPs Por ejemplo, si permite iniciar sesión con OTP por correo electrónico y teléfono, los usuarios pueden proporcionar un número de teléfono o una dirección de correo electrónico, pero si solo permite el inicio de sesión con correo electrónico, deberán proporcionar una dirección de correo electrónico.

1. Su grupo de usuarios [verifica automáticamente](#allowing-users-to-sign-up-and-confirm-themselves) los atributos que los usuarios pueden usar al iniciar sesión sin contraseña.

1. [Para una [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)solicitud determinada, el usuario no proporciona un valor para el parámetro Password.](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Password)

## Información general sobre la confirmación de una cuenta de usuario
<a name="signup-confirmation-verification-overview"></a>

En el diagrama siguiente se ilustra el proceso de confirmación:

![\[Cuando los usuarios introducen el código de confirmación, verifican automáticamente el correo electrónico o el teléfono.\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/amazon-cognito-sign-in-confirm-user.png)


Una cuenta de usuario puede tener cualquiera de los estados siguientes:

**Registrada (sin confirmar)**  
El usuario se ha inscrito correctamente, pero no puede iniciar sesión hasta que la cuenta de usuario esté confirmada. En este estado, el usuario está habilitado, pero no confirmado.  
Los nuevos usuarios que se inscriben empiezan con este estado.

**Confirmada**  
La cuenta de usuario está confirmada y el usuario puede iniciar sesión. Cuando un usuario introduce un código o sigue un enlace de correo electrónico para confirmar su cuenta de usuario, dicho correo electrónico o número de teléfono se verifica automáticamente. El código o enlace es válido durante 24 horas.  
Si el administrador o un desencadenador de Lambda Antes del registro ha confirmado la cuenta de usuario, es posible que no haya un correo electrónico o un número de teléfono asociado a la cuenta.

**Restablecimiento de contraseña requerido**  
La cuenta de usuario está confirmada, pero el usuario debe solicitar un código y restablecer su contraseña para poder iniciar sesión.  
Las cuentas de usuario que el administrador o el desarrollador importan empiezan con este estado.

**Obligar a cambiar la contraseña**  
La cuenta de usuario está confirmada y el usuario puede iniciar sesión con una contraseña temporal, pero la primera vez que inicie sesión, el usuario debe cambiar la contraseña para poder hacer cualquier cosa.  
Las cuentas de usuario que el administrador o el desarrollador crean empiezan con este estado.

**Deshabilitado**  
Para poder eliminar una cuenta de usuario, debe deshabilitar el acceso de inicio de sesión para ese usuario.

**Más recursos**
+ [Detección y corrección de cuentas de usuario inactivas con Amazon Cognito](https://aws.amazon.com/blogs/security/detecting-and-remediating-inactive-user-accounts-with-amazon-cognito/)

## Verificación de la información de contacto durante el registro
<a name="allowing-users-to-sign-up-and-confirm-themselves"></a>

Tal vez desee que, cuando se registren nuevos usuarios en la aplicación, proporcionen al menos un método de contacto. Por ejemplo, con la información de contacto de los usuarios, podría:
+ Enviar una contraseña temporal cuando un usuario decida restablecer su contraseña.
+ Avisar a los usuarios cuando se actualicen sus datos personales o financieros.
+ Enviar mensajes promocionales, como ofertas o descuentos especiales.
+ Enviar resúmenes de cuenta o recordatorios de facturación.

En casos de uso como estos, es importante que envíe sus mensajes a un destino verificado. De lo contrario, los mensajes podrían enviarse a una dirección de correo electrónico o un número de teléfono no válidos que se hayan especificado de forma incorrecta. O lo que es peor, podría enviarse información confidencial a agentes malintencionados que se hagan pasar por los usuarios.

A fin de garantizar que los mensajes se envíen solo a las personas indicadas, configure el grupo de usuarios de Amazon Cognito para que los usuarios tengan que proporcionar la siguiente información al registrarse:

1. Una dirección de correo electrónico o un número de teléfono.

1. Un código de verificación que Amazon Cognito envía a esa dirección de correo electrónico o número de teléfono. Si han transcurrido 24 horas y el código o enlace de tu usuario ya no es válido, llama a la operación de la [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API para generar y enviar un código o enlace nuevo.

Al proporcionar el código de verificación, el usuario demuestra que tiene acceso a la bandeja de correo o al teléfono donde se recibió el código. Cuando el usuario proporciona el código, Amazon Cognito actualiza la información sobre él en el grupo de usuarios del modo siguiente:
+ Estableciendo el estado del usuario en `CONFIRMED`.
+ Actualizando los atributos del usuario para indicar que la dirección de correo electrónico o el número de teléfono se han verificado.

Para ver esta información, puede utilizar la consola de Amazon Cognito. O bien, puedes usar la operación de la `AdminGetUser` API AWS CLI, el `admin-get-user` comando con la o la acción correspondiente en una de las AWS SDKs.

Si un usuario tiene un método de contacto verificado, Amazon Cognito le envía de manera automática un mensaje cuando solicita restablecer la contraseña.

### Otras acciones que confirman y verifican los atributos del usuario
<a name="allowing-users-to-sign-up-and-confirm-themselves-other-actions"></a>

La siguiente actividad del usuario verifica los atributos del usuario. No es necesario configurar estos atributos para que se verifiquen automáticamente: las acciones enumeradas los marcan como verificados en todos los casos.

**Dirección de correo electrónico**  

1. Completar correctamente la [autenticación sin contraseña](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) con una contraseña de un solo uso (OTP) por correo electrónico.

1. Completar correctamente la [autenticación multifactor (MFA](user-pool-settings-mfa.md)) con una OTP de correo electrónico.

**Número de teléfono**  

1. Completar correctamente la [autenticación sin contraseña](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) con una OTP por SMS.

1. Completar correctamente la [MFA](user-pool-settings-mfa.md) con una OTP por SMS.

### Para configurar el grupo de usuarios de forma que se solicite la verificación del correo electrónico o del teléfono
<a name="verification-configure"></a>

Cuando se verifican las direcciones de correo electrónico y los números de teléfono de los usuarios, se asegura de que puede ponerse en contacto con ellos. Complete los siguientes pasos Consola de administración de AWS para configurar su grupo de usuarios y solicitar que los usuarios confirmen sus direcciones de correo electrónico o números de teléfono.

**nota**  
Si todavía no tiene ningún grupo de usuarios en la cuenta, consulte [Introducción a los grupos de usuarios](getting-started-user-pools.md).

**Para configurar el grupo de usuarios**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus AWS credenciales.

1. En el panel de navegación, seleccione **Users** (Usuarios). Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Seleccione el menú **Registro** y busque **Verificación de atributos y confirmación de la cuenta de usuario**. Elija **Edit (Edición de)**.

1. En **Verificación y confirmación asistidas por Cognito**, elija si desea **Permitir que Cognito envíe mensajes automáticamente para verificar y confirmar**. Con esta configuración habilitada, Amazon Cognito envía mensajes a los atributos de contacto del usuario que elija cuando un usuario se registre o cuando cree un perfil de usuario. Para verificar los atributos y confirmar los perfiles de usuario para iniciar sesión, Amazon Cognito envía un código o un enlace en los mensajes a los usuarios. A continuación, los usuarios deben introducir el código en la IU para que la aplicación pueda confirmarlo en una solicitud de la API `ConfirmSignUp` o `AdminConfirmSignUp`.
**nota**  
También se puede deshabilitar **Cognito-assisted verification and confirmation** (Verificación y confirmación asistidas por Cognito) y emplear acciones de API autenticadas o desencadenadores de Lambda para verificar atributos y confirmar usuarios.  
Si elige esta opción, Amazon Cognito no enviará códigos de verificación cuando el usuario se registre. Elija esta opción si utiliza un flujo de autenticación personalizado con el que se verifica, al menos, un método de contacto sin utilizar códigos de verificación de Amazon Cognito. Por ejemplo, es posible que desee utilizar un desencadenador de Lambda Antes del registro que verifique automáticamente las direcciones de correo electrónico que pertenecen a un dominio específico.  
Si no verifica la información de contacto de los usuarios, es posible que no pueda utilizar la aplicación. Recuerde que los usuarios necesitan tener verificada la información de contacto para:  
**Restablecer sus contraseñas**: Cuando un usuario elije una opción en la aplicación con la que se llama a la acción `ForgotPassword` de la API, Amazon Cognito envía una contraseña temporal a la dirección de correo electrónico o al número de teléfono del usuario. Amazon Cognito envía esta contraseña solo si el usuario tiene, al menos, un método de contacto verificado.
**Iniciar sesión utilizando una dirección de correo electrónico o un número de teléfono como alias**: Si configura el grupo de usuarios de forma que estos alias estén permitidos, los usuarios solamente podrán iniciar sesión con un alias si dicho alias se ha verificado. Para obtener más información, consulte [Personalización de los atributos de inicio de sesión](user-pool-settings-attributes.md#user-pool-settings-aliases).

1. Elija **Attributes to verify** (Atributos para verificar):  
**Enviar un mensaje SMS, verificar el número de teléfono**  
Amazon Cognito envía un mensaje SMS con un código de verificación cuando el usuario se registra. Elija esta opción si normalmente se comunica con los usuarios a través de mensajes SMS. Por ejemplo, conviene utilizar números de teléfono verificados si envía notificaciones de entrega, confirmaciones de citas o alertas. Los números de teléfono de los usuarios serán el atributo verificado cuando se confirmen las cuentas; se deben tomar medidas adicionales para verificar y comunicarse con las direcciones de correo electrónico de los usuarios.  
**Enviar un mensaje de correo electrónico, verificar la dirección de correo electrónico**  
Amazon Cognito envía un mensaje de correo electrónico con un código de verificación cuando el usuario se registra. Elija esta opción si normalmente se comunica con los usuarios a través del correo electrónico. Por ejemplo, conviene utilizar direcciones de correo electrónico verificadas para enviar facturas, resúmenes de pedidos u ofertas especiales. Las direcciones de correo electrónico de los usuarios serán el atributo verificado cuando se confirmen las cuentas; se deben tomar medidas adicionales para verificar y comunicarse con los números de teléfono de los usuarios.  
**Enviar un mensaje SMS si hay un número de teléfono disponible; de lo contrario, enviar un mensaje de correo electrónico**  
Elija esta opción si no quiere que todos los usuarios tengan el mismo método de contacto verificado. En este caso, la página de registro de la aplicación podría pedir a los usuarios que verifiquen únicamente el método de contacto preferido. Cuando Amazon Cognito envía un código de verificación, lo envía mediante el método de contacto especificado en la solicitud `SignUp` de la aplicación. Si un usuario proporciona una dirección de correo electrónico y un número de teléfono y se especifican los dos métodos de contacto en la solicitud `SignUp` de la aplicación, Amazon Cognito solo envía el código de verificación al número de teléfono.  
Si solicita a los usuarios que verifiquen la dirección de correo electrónico y el número de teléfono, elija esta opción. Amazon Cognito verificará uno de los métodos de contacto cuando el usuario se registre, mientras que la aplicación deberá verificar el otro cuando el usuario inicie sesión. Para obtener más información, consulte [Si solicita a los usuarios que confirmen tanto el correo electrónico como el número de teléfono](#verification-email-plus-phone).

1. Elija **Save changes** (Guardar cambios).

### Flujo de autenticación con la verificación del correo electrónico o el teléfono
<a name="verification-flow"></a>

Si el grupo de usuarios obliga a los usuarios a verificar los datos de contacto, la aplicación debe facilitar lo siguiente cuando el usuario se registre:

1. Un usuario se registra en tu aplicación introduciendo un nombre de usuario, un número de teléfono, una dirección de and/or correo electrónico y, posiblemente, otros atributos.

1. El servicio de Amazon Cognito recibe la solicitud de registro de la aplicación. Después de verificar que la solicitud contiene todos los atributos necesarios para la inscripción, el servicio completa el proceso de inscripción y envía un código de confirmación al teléfono (en un mensaje SMS) o al correo electrónico del usuario. El código es válido durante 24 horas.

1. El servicio indica a la aplicación que la inscripción se ha completado y que la cuenta de usuario está pendiente de confirmación. La respuesta contiene información acerca de dónde se ha enviado el código de confirmación. En este momento, la cuenta de usuario está sin confirmar y la dirección de correo electrónico y el número de teléfono del usuario están sin verificar.

1. Ahora, la aplicación puede instar al usuario a que introduzca el código de confirmación. No es necesario que el usuario introduzca el código de inmediato. Sin embargo, no podrá iniciar sesión hasta después de introducir el código de confirmación.

1. El usuario introduce el código de confirmación en la aplicación.

1. La aplicación llama a [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html) para enviar el código al servicio de Amazon Cognito que lo verifica y, si es correcto, establece la cuenta del usuario en el estado confirmado. Después de confirmar con éxito la cuenta del usuario, el servicio de Amazon Cognito marca de forma automática el atributo que se utilizó para confirmar (dirección de correo electrónico o número de teléfono) como verificado. A menos que el valor de este atributo cambie, el usuario no tendrá que volver a verificarlo.

1. En este punto, la cuenta de usuario se encuentra en estado confirmado y el usuario puede iniciar sesión.

### Si solicita a los usuarios que confirmen tanto el correo electrónico como el número de teléfono
<a name="verification-email-plus-phone"></a>

Amazon Cognito solo verificará uno de los métodos de contacto cuando el usuario se registre. En los casos en que Amazon Cognito deba elegir entre la verificación por dirección de correo electrónico o número de teléfono, elegirá el número de teléfono y enviará un código de verificación por mensaje SMS. Por ejemplo, si configura el grupo de usuarios de forma que los usuarios puedan verificarse por dirección de correo electrónico o número de teléfono, y la aplicación proporciona estos atributos después del registro, Amazon Cognito solo verificará el número de teléfono. Una vez que un usuario verifica el número de teléfono, Amazon Cognito establece el estado del usuario en `CONFIRMED`, por lo que el usuario tiene permiso para iniciar sesión en la aplicación.

Una vez que el usuario inicia sesión, la aplicación puede dar la opción de verificar el método de contacto que no se ha verificado durante el registro. Para verificar este segundo método, la aplicación llama a la acción `VerifyUserAttribute` de la API. Tenga en cuenta que para esta acción se requiere un parámetro `AccessToken` y que Amazon Cognito solo proporciona tokens de acceso a los usuarios autenticados. Por lo tanto, solamente puede verificar el segundo método de contacto una vez que el usuario ha iniciado sesión.

Si necesita que los usuarios verifiquen la dirección de correo electrónico y el número de teléfono, haga lo siguiente:

1. Configure el grupo de usuarios para que permita a los usuarios verificar la dirección de correo electrónico o el número de teléfono.

1. En el flujo de registro de la aplicación, pida a los usuarios que proporcionen una dirección de correo electrónico y un número de teléfono. Llame a la acción [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html) de la API y proporcione la dirección de correo electrónico y el número de teléfono en el parámetro `UserAttributes`. En ese momento, Amazon Cognito envía un código de verificación al teléfono del usuario.

1. En la interfaz de la aplicación, muestre una página de confirmación en la que el usuario pueda especificar el código de verificación. Confirme el usuario llamando a la acción [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html) de la API. En ese momento, el estado del usuario es `CONFIRMED` y el número de teléfono del usuario está verificado, aunque la dirección de correo electrónico no lo está.

1. Muestre la página de inicio de sesión y autentique el usuario llamando a la acción [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html) de la API. Cuando el usuario esté autenticado, Amazon Cognito devolverá un token de acceso a la aplicación.

1. Llame a la acción [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html) de la API. Especifique los siguientes parámetros en la solicitud:
   + `AccessToken`: es el token de acceso que devuelve Amazon Cognito una vez que el usuario inicia sesión.
   + `AttributeName`: especifique `"email"` como el valor del atributo.

   Amazon Cognito envía un código de verificación a la dirección de correo electrónico del usuario.

1. Muestre una página de confirmación en la que el usuario pueda especificar el código de verificación. Cuando el usuario envíe el código, llame a la acción [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html) de la API. Especifique los siguientes parámetros en la solicitud:
   + `AccessToken`: es el token de acceso que devuelve Amazon Cognito una vez que el usuario inicia sesión.
   + `AttributeName`: especifique `"email"` como el valor del atributo.
   + `Code`: es el código de verificación que proporciona el usuario.

   En este momento, se verifica la dirección de correo electrónico.

## Permitir que los usuarios se registren en la aplicación, pero con confirmación del administrador del grupo de usuarios
<a name="signing-up-users-in-your-app-and-confirming-them-as-admin"></a>

Es posible que no desees que el grupo de usuarios envíe automáticamente mensajes de verificación al grupo de usuarios, pero aun así quieras permitir que cualquier persona se registre para obtener una cuenta. Este modelo deja espacio, por ejemplo, para la revisión humana de las nuevas solicitudes de registro y para la validación y el procesamiento por lotes de los registros. Puede confirmar las nuevas cuentas de usuario en la consola de Amazon Cognito o mediante la operación de API autenticada por IAM. [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html) Puede confirmar las cuentas de usuario como administrador si el grupo de usuarios envía mensajes de verificación o no.

Solo puede confirmar el registro de un usuario en el autoservicio con esta técnica. Para confirmar un usuario que cree como administrador, cree una solicitud de [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API con el valor establecido en. `Permanent` `True`

1. Un usuario se registra en tu aplicación introduciendo un nombre de usuario, un número de teléfono, una dirección de and/or correo electrónico y, posiblemente, otros atributos.

1. El servicio de Amazon Cognito recibe la solicitud de registro de la aplicación. Después de verificar que la solicitud contiene todos los atributos necesarios para la inscripción, el servicio completa el proceso de inscripción e indica a la aplicación que la inscripción está completa y pendiente de confirmación. En este punto, el estado de la cuenta del usuario es no confirmado. El usuario solo podrá iniciar sesión cuando la cuenta esté confirmada.

1. Confirme la cuenta del usuario. Debes iniciar sesión Consola de administración de AWS o firmar tu solicitud de API con AWS credenciales para confirmar la cuenta. 

   1. Para confirmar un usuario en la consola de Amazon Cognito, vaya al menú **Usuarios**, elija el usuario que desea confirmar y, en el menú **Acciones**, seleccione **Confirmar**.

   1. Para confirmar un usuario en la AWS API o la CLI, cree una solicitud de [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html)API o [admin-confirm-sign-up](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-confirm-sign-up.html)en AWS CLI.

1. En este punto, la cuenta de usuario se encuentra en estado confirmado y el usuario puede iniciar sesión.

## Cálculo de los valores de hash secretos
<a name="cognito-user-pools-computing-secret-hash"></a>

Como práctica recomendada, asigne un secreto de cliente a su cliente de aplicaciones confidenciales. Cuando asigne un secreto de cliente a su cliente de aplicación, las solicitudes de API de los grupos de usuarios de Amazon Cognito deberán incorporar un hash que incluya el secreto de cliente en el cuerpo de la solicitud. Para validar su conocimiento del secreto de cliente para las operaciones de la API de las listas siguientes, concatene el secreto de cliente con el ID del cliente de aplicación y el nombre de usuario del usuario y, a continuación, codifique en base64 esa cadena.

Cuando su aplicación inicie sesión con los usuarios en un cliente que tiene un hash secreto, puede usar el valor de cualquier atributo de inicio de sesión de grupo de usuarios como elemento de nombre de usuario del hash secreto. Cuando su aplicación solicita tokens nuevos en una operación de autenticación con `REFRESH_TOKEN_AUTH`, el valor del elemento del nombre de usuario depende de sus atributos de inicio de sesión. Si su grupo de usuarios no tiene `username` como atributo de inicio de sesión, establezca el valor secreto de nombre de usuario de hash de la reclamación de `sub` del usuario a partir de su token de ID o acceso. Cuando `username` es un atributo de inicio de sesión, establezca el valor de nombre de usuario de hash de secreto que aparece en la reclamación de `username`.

Los siguientes grupos de usuarios de Amazon Cognito APIs aceptan un valor hash secreto del cliente en un parámetro. `SecretHash`
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmSignUp.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)
+ [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)

Además, lo siguiente APIs acepta un valor hash secreto del cliente en un `SECRET_HASH` parámetro, ya sea en los parámetros de autenticación o en una respuesta a un desafío.


| Operación de la API | Parámetro principal para SECRET\$1HASH | 
| --- |--- |
| InitiateAuth | AuthParameters | 
| AdminInitiateAuth | AuthParameters | 
| RespondToAuthChallenge | ChallengeResponses | 
| AdminRespondToAuthChallenge | ChallengeResponses | 

El valor de hash secreto es un código de autenticación de mensajes mediante algoritmos hash con clave (HMAC) codificados en Base64 que se calcula con la clave secreta de un cliente de grupo de usuarios y un nombre de usuario más el ID de cliente en el mensaje. El pseudocódigo siguiente muestra cómo se calcula este valor. En este pseudocódigo, `+` indica la concatenación, `HMAC_SHA256` representa una función que produce un valor HMAC mediante Hmac y `Base64` representa una función que produce una versión SHA256 codificada en base 64 del resultado hash.

```
Base64 ( HMAC_SHA256 ( "Client Secret Key", "Username" + "Client Id" ) )
```

Para obtener información general detallada sobre cómo calcular y usar el `SecretHash` parámetro, consulte [¿Cómo soluciono los errores «No se puede verificar el hash secreto del cliente» de mi API de grupos de usuarios de Amazon Cognito](https://aws.amazon.com/premiumsupport/knowledge-center/cognito-unable-to-verify-secret-hash/)<client-id>? en el Centro de AWS conocimiento.

Puede utilizar los siguientes ejemplos de código en el código de su aplicación en el servidor.

------
#### [ Shell ]

```
echo -n "[username][app client ID]" | openssl dgst -sha256 -hmac [app client secret] -binary | openssl enc -base64
```

------
#### [ Java ]

```
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
 
public static String calculateSecretHash(String userPoolClientId, String userPoolClientSecret, String userName) {
    final String HMAC_SHA256_ALGORITHM = "HmacSHA256";
    
    SecretKeySpec signingKey = new SecretKeySpec(
            userPoolClientSecret.getBytes(StandardCharsets.UTF_8),
            HMAC_SHA256_ALGORITHM);
    try {
        Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
        mac.init(signingKey);
        mac.update(userName.getBytes(StandardCharsets.UTF_8));
        byte[] rawHmac = mac.doFinal(userPoolClientId.getBytes(StandardCharsets.UTF_8));
        return Base64.getEncoder().encodeToString(rawHmac);
    } catch (Exception e) {
        throw new RuntimeException("Error while calculating ");
    }
}
```

------
#### [ Python ]

```
import sys
import hmac, hashlib, base64 
username = sys.argv[1] 
app_client_id = sys.argv[2] 
key = sys.argv[3] 
message = bytes(sys.argv[1]+sys.argv[2],'utf-8') 
key = bytes(sys.argv[3],'utf-8') 
secret_hash = base64.b64encode(hmac.new(key, message, digestmod=hashlib.sha256).digest()).decode() 
print("SECRET HASH:",secret_hash)
```

------

## Confirmación de cuentas de usuario sin verificar el correo electrónico o el número de teléfono
<a name="confirming-user-without-verification-of-email-or-phone-number"></a>

El desencadenador de Lambda Antes del registro se puede usar para confirmar de manera automática las cuentas de usuario en el registro, sin tener que requerir un código de confirmación ni verificar el correo electrónico o el número de teléfono. Los usuarios que se confirmen de esta forma pueden iniciar sesión de forma inmediata sin tener que recibir un código.

Con este disparador, también puede marcar un correo electrónico o un número de teléfono del usuario como verificado. 

**nota**  
Aunque este enfoque es práctico para los usuarios cuando están empezando, le recomendamos que compruebe automáticamente al menos el correo electrónico o el número de teléfono. De no ser así, el usuario puede quedarse sin poder recuperar la contraseña si la olvida.

Si no exige que el usuario reciba e ingrese un código de confirmación al registrarse y no verifica de manera automática el correo electrónico ni el número de teléfono en el desencadenador de Lambda Antes del registro, corre el riesgo de no tener una dirección de correo electrónico ni un número de teléfono verificados para esta cuenta de usuario. El usuario puede verificar la dirección de correo electrónico o el número de teléfono en otro momento. No obstante, si el usuario se olvida de su contraseña y no cuenta con una dirección de correo electrónico o un número de teléfono verificado, el usuario estará bloqueado fuera de la cuenta, ya que el flujo de contraseña olvidada requiere un correo electrónico o un número de teléfono verificado para enviar un código de verificación al usuario.

## Verificación al cambiar los usuarios su correo electrónico o su número de teléfono
<a name="verifying-when-users-change-their-email-or-phone-number"></a>

En los grupos de usuarios que se configuran con varios nombres de inicio de sesión, los usuarios pueden introducir un número de teléfono o una dirección de correo electrónico como nombre de usuario al iniciar sesión. Cuando actualizan su dirección de correo electrónico o número de teléfono en la aplicación, Amazon Cognito puede enviarles inmediatamente un mensaje con un código que verifica que son propietarios del nuevo valor de atributo. Para habilitar el envío automático de estos códigos de verificación, consulte [Configuración de la verificación del correo electrónico o del teléfono](user-pool-settings-email-phone-verification.md).

Los usuarios que reciban un código de verificación deberán devolverlo a Amazon Cognito en una [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html)solicitud. Tras proporcionar el código, su atributo se marca como verificado. Normalmente, cuando los usuarios actualizan su dirección de correo electrónico o número de teléfono, es recomendable comprobar que son los propietarios del nuevo valor antes de poder usarlo para iniciar sesión y recibir mensajes. Los grupos de usuarios tienen una opción configurable que determina si los usuarios deben comprobar las actualizaciones de su dirección de correo electrónico o número de teléfono.

Esta opción es la propiedad `AttributesRequireVerificationBeforeUpdate` del grupo de usuarios. Configúralo en una [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html#CognitoUserPools-UpdateUserPool-request-UserAttributeUpdateSettings)solicitud [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-UserAttributeUpdateSettings)o con la opción **Mantener activo el valor del atributo original cuando haya una actualización pendiente** en el menú de **registro** de la consola de Amazon Cognito.

La forma en que su grupo de usuarios trate las actualizaciones de las direcciones de correo electrónico y los números de teléfono está relacionada con la configuración de nombres de usuario de su grupo de usuarios. Los nombres de usuario del grupo de usuarios pueden estar en una configuración de *atributos de nombre de usuario* en la que los nombres de inicio de sesión sean la dirección de correo electrónico, el número de teléfono o ambas cosas. También pueden estar en una configuración de *atributos de alias* en la que el atributo `username` sea un nombre de inicio de sesión junto con una dirección de correo electrónico, un número de teléfono o un nombre de usuario preferido como nombres de inicio de sesión alternativos. Para obtener más información, consulte [Personalización de los atributos de inicio de sesión](user-pool-settings-attributes.md#user-pool-settings-aliases).

 También puede utilizar un desencadenador de Lambda de mensaje personalizado para personalizar el mensaje de verificación. Para obtener más información, consulte [Desencadenador de Lambda para mensajes personalizados](user-pool-lambda-custom-message.md). Cuando la dirección de correo electrónico o el número de teléfono de un usuario no estén verificados, su aplicación debe informar al usuario de que debe verificar el atributo y proporcionar un botón o enlace para que los usuarios introduzcan su código de verificación.

En la siguiente tabla, se describe cómo determinan `AttributesRequireVerificationBeforeUpdate` y la configuración del alias el resultado cuando los usuarios cambian el valor de sus atributos de inicio de sesión.


| Configuración de nombre de usuario | Comportamiento cuando los usuarios deben verificar nuevos atributos | Comportamiento cuando los usuarios no tienen la obligación de verificar nuevos atributos | 
| --- | --- | --- | 
| Atributos de nombre de usuario | El atributo original permanece verificado, apto para iniciar sesión y mantiene su valor original. Cuando el usuario verifica un valor nuevo, Amazon Cognito actualiza el valor del atributo, lo marca como verificado y lo convierte en apto para iniciar sesión. | Amazon Cognito actualiza el atributo a un nuevo valor. El nuevo valor es apto para iniciar sesión. Cuando el usuario verifica un valor nuevo, Amazon Cognito lo marca como verificado. | 
| Atributos de alias | El atributo original permanece verificado, apto para iniciar sesión y mantiene su valor original. Cuando el usuario verifica un valor nuevo, Amazon Cognito actualiza el valor del atributo, lo marca como verificado y lo convierte en apto para iniciar sesión. | Amazon Cognito actualiza el atributo a un nuevo valor. Ni el valor de atributo original ni el nuevo son aptos para iniciar sesión. Cuando el usuario verifica un valor nuevo, Amazon Cognito actualiza el valor del atributo, lo marca como verificado y lo convierte en apto para iniciar sesión. | 

**Ejemplo 1**  
El usuario 1 inicia sesión en la aplicación con la dirección de correo electrónico `user1@example.com` y tiene el nombre de usuario `user1` (atributos de alias). Su grupo de usuarios está configurado para verificar las actualizaciones de los atributos de inicio de sesión y enviar automáticamente los mensajes de verificación. Solicitan actualizar su dirección de correo electrónico a `user1+foo@example.com`. Reciben un correo electrónico de verificación en `user1+foo@example.com` y solo *pueden volver a iniciar sesión* con esa dirección `user1@example.com`. Más tarde, introducen su código de verificación y solo pueden volver a iniciar sesión con la dirección de correo electrónico `user1+foo@example.com`.

**Ejemplo 2**  
El usuario 2 inicia sesión en la aplicación con la dirección de correo electrónico `user2@example.com` y tiene un nombre de usuario (atributos de alias). Su grupo de usuarios está configurado para *no* verificar las actualizaciones de los atributos de inicio de sesión y para enviar automáticamente los mensajes de verificación. Solicitan actualizar su dirección de correo electrónico a `user2+bar@example.com`. Reciben un correo electrónico de verificación en `user2+bar@example.com` y *no pueden volver a iniciar sesión*. Más tarde, introducen su código de verificación y solo pueden volver a iniciar sesión con la dirección de correo electrónico `user2+bar@example.com`.

**Ejemplo 3**  
El usuario 3 inicia sesión en la aplicación con la dirección de correo electrónico `user3@example.com` y no tiene un nombre de usuario (atributos de nombre de usuario). Su grupo de usuarios está configurado para *no* verificar las actualizaciones de los atributos de inicio de sesión y para enviar automáticamente los mensajes de verificación. Solicitan actualizar su dirección de correo electrónico a `user3+baz@example.com`. Reciben un correo electrónico de verificación en `user3+baz@example.com`, pero *pueden iniciar sesión inmediatamente* sin necesidad de realizar ninguna otra acción con el código de verificación.

## Procesos de confirmación y verificación para las cuentas de usuario creadas por administradores o desarrolladores
<a name="confirmation-and-verification-of-users-whose-accounts-youve-created"></a>

Las cuentas de usuario que un administrador o un desarrollador crean ya tienen el estado confirmado, por lo que los usuarios no tienen que introducir ningún código de confirmación. El mensaje de invitación que el servicio de Amazon Cognito envía a estos usuarios incluye el nombre de usuario y una contraseña temporal. Se pide al usuario que cambie la contraseña antes de iniciar sesión. Para obtener más información, consulte la [Personalizar mensajes de correo electrónico y SMS](how-to-create-user-accounts.md#creating-a-new-user-customize-messages) en [Creación de cuentas de usuario como administrador](how-to-create-user-accounts.md) y el disparador para mensajes personalizados en [Personalización de flujos de trabajo de grupos de usuarios con desencadenadores de Lambda](cognito-user-pools-working-with-lambda-triggers.md).

## Procesos de confirmación y verificación para las cuentas de usuario importadas
<a name="confirmation-and-verification-of-users-whose-accounts-youve-imported"></a>

Las cuentas de usuario que se crean mediante la función de importación de usuarios en la Consola de administración de AWS CLI o la API (consulte[Importación de usuarios en grupos de usuarios desde un archivo CSV](cognito-user-pools-using-import-tool.md)) ya están confirmadas, por lo que los usuarios no tienen que introducir un código de confirmación. No se envía ningún mensaje de invitación. Sin embargo, las cuentas de usuario importadas requieren que los usuarios soliciten primero un código llamando al API `ForgotPassword` y que después creen una contraseña utilizando el código entregado llamando al API `ConfirmForgotPassword` antes de iniciar sesión. Para obtener más información, consulte [Obligación de que los usuarios importados restablezcan sus contraseñas](cognito-user-pools-using-import-tool.md#cognito-user-pools-using-import-tool-password-reset).

O bien el correo electrónico o el número de teléfono del usuario deben marcarse como verificados cuando se importa la cuenta de usuario, con lo que no es necesaria ninguna verificación cuando el usuario inicia sesión.

## Envío de mensajes de correo electrónico para probar la aplicación
<a name="managing-users-accounts-email-testing"></a>

Amazon Cognito envía mensajes de correo electrónico a los usuarios cuando crean y administran sus cuentas en la aplicación cliente del grupo de usuarios. Si configura el grupo de usuarios de forma que se exija la verificación por correo electrónico, Amazon Cognito enviará un correo electrónico cuando:
+ Un usuario se registre.
+ Un usuario actualice su dirección de correo electrónico.
+ Un usuario realice una operación que llame a la acción `ForgotPassword` de la API.
+ Usted cree una cuenta de usuario como administrador.

En función de la acción que inicie el correo electrónico, el correo electrónico contendrá un código de verificación o una contraseña temporal. Es necesario que los usuarios reciban estos correos electrónicos y comprendan el mensaje. De lo contrario, tal vez no puedan iniciar sesión ni utilizar la aplicación.

Para asegurarse de que los correos electrónicos se envíen de manera adecuada y de que el mensaje aparezca como corresponde, pruebe en la aplicación estas acciones con las que se inicia el envío de correos electrónicos desde Amazon Cognito. Por ejemplo, si utiliza la página de registro de la aplicación o la acción `SignUp` de la API, puede activar el envío de un correo electrónico registrándose con una dirección de correo electrónico de prueba. Cuando realice este tipo de pruebas, recuerde lo siguiente:

**Importante**  
Cuando utilice una dirección de correo electrónico para probar acciones con las que se activa el envío de correos electrónicos desde Amazon Cognito, no utilice una dirección de correo electrónico falsa (una que no tenga buzón de correo). Utilice una dirección de correo electrónico real que pueda recibir el correo electrónico de Amazon Cognito y que no genere un *rechazo permanente*.  
Los rechazos permanentes se producen cuando Amazon Cognito no puede entregar el correo electrónico en el buzón del destinatario, lo que siempre sucede si el buzón de correo no existe.  
Amazon Cognito limita la cantidad de correos electrónicos que pueden enviar AWS las cuentas que sufren rebotes forzosos de forma persistente.

Cuando realice acciones de prueba que inicien correos electrónicos, utilice una de las siguientes direcciones de correo electrónico para impedir que se produzcan rebotes permanentes:
+ La dirección de una cuenta de correo electrónico de su propiedad y que utilice para realizar pruebas. Si utiliza su propia dirección de correo electrónico, recibirá el correo electrónico que envía Amazon Cognito. Con este correo electrónico, podrá utilizar el código de verificación para probar la experiencia de registro en la aplicación. Si ha personalizado el mensaje de correo electrónico para su grupo de usuarios, podrá comprobar que el contenido personalizado tiene el aspecto deseado.
+ La dirección del simulador de bandeja de correo: *success@simulator.amazonses.com*. Si utiliza la dirección del simulador, Amazon Cognito enviará el correo electrónico de forma correcta, pero usted no podrá verlo. Esta opción resulta útil cuando no es necesario utilizar el código de verificación ni comprobar el mensaje de correo electrónico.
+ La dirección del simulador de buzón de correo con la incorporación de una etiqueta arbitraria, p. ej., *success\$1user1@simulator.amazonses.com* o *success\$1user2@simulator.amazonses.com*. Amazon Cognito envía correos electrónicos con éxito a estas direcciones, pero no puede ver los correos que envía. Esta opción resulta útil si desea probar el proceso de registro agregando varios usuarios de prueba al grupo de usuarios y cada usuario de prueba tiene una dirección de correo electrónico diferente.

# Configuración de la verificación del correo electrónico o del teléfono
<a name="user-pool-settings-email-phone-verification"></a>

Puede elegir la configuración de verificación del correo electrónico o del teléfono en el menú **Métodos de autenticación**. Para obtener más información sobre la autenticación multifactor (MFA), consulte [MFA por mensaje de texto SMS](user-pool-settings-mfa-sms-email-message.md).

Amazon Cognito utiliza Amazon SNS para enviar mensajes SMS. Si no ha enviado ningún mensaje SMS desde Amazon Cognito o desde ningún otro Servicio de AWS sitio, Amazon SNS podría colocar su cuenta en el entorno limitado de SMS. Le recomendamos que envíe un mensaje de texto de prueba a un número de teléfono verificado antes de retirar la cuenta del entorno aislado de producción. Además, si tiene previsto enviar mensajes SMS a números de teléfono de destino de EE. UU., debe obtener un ID de remitente o de origen de Amazon Pinpoint. Para configurar el grupo de usuarios de Amazon Cognito para mensajes SMS, consulte [Configuración de mensajes SMS para grupos de usuarios de Amazon Cognito](user-pool-sms-settings.md).

Amazon Cognito puede verificar de manera automática direcciones de correo electrónico o números de teléfono. Para realizar esta verificación, Amazon Cognito envía un código de verificación o un enlace de verificación. Para las direcciones de correo electrónico, Amazon Cognito envía un código o un enlace en un mensaje de correo electrónico. Puede elegir un **Tipo de verificación** de **código** o **enlace** al editar la plantilla del **Mensaje de verificación** en el menú **Plantillas de mensajes** de la consola de Amazon Cognito. Para obtener más información, consulte [Personalización de los mensajes de verificación de correo electrónico](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-email-verification-message-customization).

En el caso de los números de teléfono, Amazon Cognito envía un código en un mensaje SMS.

Amazon Cognito debe verificar un número de teléfono o una dirección de correo electrónico para confirmar a los usuarios y ayudarles a recuperar contraseñas olvidadas. Como alternativa, puede confirmar automáticamente a los usuarios con el activador Lambda previo al registro o utilizar [AdminConfirmSignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminConfirmSignUp.html)la operación de API. Para obtener más información, consulte [Inscripción y confirmación de cuentas de usuario](signing-up-users-in-your-app.md).

El código o enlace de verificación es válido durante 24 horas.

Si elige solicitar la verificación de una dirección de correo electrónico o número de teléfono, Amazon Cognito envía automáticamente el código o enlace de verificación cuando un usuario inicia sesión. Si el grupo de usuarios tiene configurado un [Desencadenador de Lambda para remitentes personalizados de SMS](user-pool-lambda-custom-sms-sender.md) o [Desencadenador de Lambda para remitentes de correos electrónicos personalizados](user-pool-lambda-custom-email-sender.md), se llama esa función en su lugar.

**Notas**  
El uso de mensajes de texto SMS para verificar números de teléfono se cobra por separado en Amazon SNS. No se aplica ningún cargo por el envío de mensajes de correo electrónico. Para obtener información sobre los precios de Amazon SNS, consulte [Precios de SMS en todo el mundo](https://aws.amazon.com/sns/sms-pricing/). Para ver la lista actual de los países en los que los mensajes SMS están disponibles, consulte [Regiones y países admitidos](https://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html). 
Cuando realice acciones de prueba en la aplicación que generen mensajes de correo electrónico de Amazon Cognito, utilice una dirección de correo electrónico real para que Amazon Cognito pueda enviar estos mensajes sin recibir rechazos permanentes. Para obtener más información, consulte [Envío de mensajes de correo electrónico para probar la aplicación](signing-up-users-in-your-app.md#managing-users-accounts-email-testing).
El proceso de recuperación de contraseñas olvidadas requiere que el usuario verifique su correo electrónico o número de teléfono.

**importante**  
Si un usuario inicia sesión con un número de teléfono y una dirección de correo electrónico, y la configuración del grupo de usuarios exige la verificación de ambos atributos, Amazon Cognito envía un código de verificación por mensaje SMS al número de teléfono. Amazon Cognito aún no ha verificado la dirección de correo electrónico, por lo que la aplicación debe llamar [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)para comprobar si hay alguna dirección de correo electrónico pendiente de verificación. Si requiere verificación, la aplicación debe llamar [GetUserAttributeVerificationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUserAttributeVerificationCode.html)para iniciar el flujo de verificación del correo electrónico. Luego, debe enviar el código de verificación llamando [VerifyUserAttribute](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_VerifyUserAttribute.html).

Puede ajustar su cuota de gasto en mensajes SMS para un mensaje individual Cuenta de AWS y uno solo. Los límites se aplican únicamente al precio de envío de mensajes SMS. Para obtener más información, consulta **¿Qué son las cuotas de gasto a nivel de cuenta y de mensaje y cómo funcionan?** en [Amazon SNS FAQs](https://aws.amazon.com/sns/faqs/).

Amazon Cognito envía mensajes SMS mediante los recursos de Amazon SNS en Región de AWS el lugar donde creó el grupo de usuarios o en una región **alternativa de Amazon SNS antigua de la siguiente tabla**. La excepción son los grupos de usuarios de Amazon Cognito de la región Asia-Pacífico (Seúl). Estos grupos de usuarios utilizan su configuración de Amazon SNS en la región Asia-Pacífico (Tokio). Para obtener más información, consulte [Elija la opción Región de AWS para los mensajes SMS](user-pool-sms-settings.md#sms-choose-a-region).


| Región de Amazon Cognito | Región alternativa de Amazon SNS heredada | 
| --- | --- | 
| Este de EE. UU. (Ohio) | Este de EE. UU. (Norte de Virginia) | 
| Asia-Pacífico (Mumbai) | Asia-Pacífico (Singapur) | 
| Asia-Pacífico (Seúl) | Asia-Pacífico (Tokio) | 
| Canadá (centro) | Este de EE. UU. (Norte de Virginia) | 
| Europa (Fráncfort) | Europa (Irlanda) | 
| Europa (Londres) | Europa (Irlanda) | 

**Ejemplo:** Si su grupo de usuarios de Amazon Cognito se encuentra en la región de Asia-Pacífico (Bombay) y ha aumentado el límite de gastos en ap-southeast-1, es posible que no quiera solicitar un aumento por separado de ap-south-1. En su lugar, puede utilizar los recursos de Amazon SNS en Asia-Pacífico (Singapur). 

## Verificación de actualizaciones de direcciones de correo electrónico y números de teléfono
<a name="user-pool-settings-verifications-verify-attribute-updates"></a>

Un atributo de dirección de correo electrónico o de número de teléfono pueden activarse y no verificarse inmediatamente después de que el usuario cambie su valor. Amazon Cognito también puede exigir que el usuario verifique el nuevo valor antes de que Amazon Cognito actualice el atributo. Cuando requiera que se verifique primero el nuevo valor, los usuarios pueden utilizar el valor original para iniciar sesión y recibir mensajes hasta que verifiquen el nuevo valor.

Cuando los usuarios pueden utilizar su dirección de correo electrónico o número de teléfono como alias de inicio de sesión en el grupo de usuarios, su nombre de inicio de sesión para un atributo actualizado depende de si necesita verificar los atributos actualizados. Cuando requiera que se verifique un atributo actualizado, el usuario puede iniciar sesión con el valor del atributo original hasta que verifique el nuevo valor. Cuando no requiera que se verifique un atributo actualizado, el usuario no puede iniciar sesión ni recibir mensajes en el valor de atributo nuevo u original hasta que verifique el nuevo valor. 

Por ejemplo, el grupo de usuarios permite iniciar sesión con un alias de dirección de correo electrónico y exige que los usuarios verifiquen su dirección de correo electrónico cuando se actualice. Sue, que inicia sesión como `sue@example.com`, quiere cambiar su dirección de correo electrónico a `sue2@example.com`, pero entra accidentalmente a `ssue2@example.com`. Sue no recibe el correo electrónico de verificación, por lo que no puede verificar `ssue2@example.com`. Sue inicia sesión como `sue@example.com` y vuelve a enviar el formulario de su aplicación para actualizar su dirección de correo electrónico a `sue2@example.com`. Recibe este correo electrónico, proporciona el código de verificación a su aplicación y comienza el inicio de sesión como `sue2@example.com`. 

**Cuando un usuario actualiza un atributo y el grupo de usuarios verifica los nuevos valores de los atributos**
+ Pueden iniciar sesión con el valor del atributo original antes de confirmar el código para verificar el nuevo valor.
+ Pueden iniciar sesión solo con el valor del atributo nuevo después de haber confirmado el código para verificar el nuevo valor.
+ Si configuras `email_verified` o `phone_number_verified` `true` incluyes una solicitud de [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, pueden iniciar sesión antes de confirmar el código que les envió Amazon Cognito.

**Cuando un usuario actualiza un atributo y el grupo de usuarios no verifica los nuevos valores del atributo**
+ No pueden iniciar sesión con el valor del atributo original ni recibir mensajes con él.
+ No pueden iniciar sesión con el nuevo valor de atributo ni recibir mensajes que no sean un código de confirmación en él antes de confirmar el código para comprobar el nuevo valor.
+ Si configuras `email_verified` o `phone_number_verified` `true` incluyes una solicitud de [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API, pueden iniciar sesión antes de confirmar el código que les envió Amazon Cognito.

## Para requerir la verificación de atributos cuando los usuarios actualizan su dirección de correo electrónico o número de teléfono


1. Inicie sesión en la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus AWS credenciales.

1. En el panel de navegación, elija **User Pools (Grupos de usuarios)** y elija el grupo de usuarios que desea editar.

1. En el menú **Registro**, seleccione **Editar**, en **Verificación de atributos y confirmación de la cuenta de usuario**.

1. Elija **Keep original attribute value active when an update is pending** (Mantener activo el valor del atributo original cuando hay una actualización pendiente).

1. En **Active attribute values when an update is pending** (Valores de atributos activos cuando hay una actualización pendiente), elija los atributos que desea que los usuarios verifiquen antes de que Amazon Cognito actualice el valor.

1. Seleccione **Save changes (Guardar cambios)**.

Para requerir la verificación de la actualización de atributos con la API de Amazon Cognito, puede configurar el `AttributesRequireVerificationBeforeUpdate` parámetro en una [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)solicitud.

## Autorización de Amazon Cognito para enviar mensajes SMS en su nombre.
<a name="user-pool-settings-verifications-iam-role-for-sms"></a>

Para enviar mensajes SMS a los usuarios en su nombre, Amazon Cognito necesita su permiso. Para conceder ese permiso, puede crear un rol AWS Identity and Access Management (de IAM). En el menú **Métodos de autenticación** de la consola de Amazon Cognito, en SMS, elija **Editar** para configurar un rol.

# Configuración de los mensajes de verificación, invitación, autenticación y MFA
<a name="cognito-user-pool-settings-message-customizations"></a>

Con Amazon Cognito, puede personalizar los mensajes de autenticación, verificación e invitación a usuarios por SMS y correo electrónico para mejorar la seguridad y la experiencia del usuario de su aplicación. Puede elegir entre verificaciones de código o de enlace con un solo clic para algunos mensajes. En este tema, se explica cómo personalizar la autenticación y las comunicaciones de verificación en la consola de Amazon Cognito. 

En el menú **Plantillas de mensajes**, puede personalizar lo siguiente:
+ Sus plantillas de correo electrónico y mensajes SMS para la autenticación multifactor (MFA) y mediante contraseña de un solo uso (OTP).
+ Los mensajes de verificación de SMS y correo electrónico
+ El tipo de verificación por correo electrónico: código o enlace
**nota**  
Amazon Cognito envía enlaces con su plantilla basada en enlaces en los mensajes de verificación cuando los usuarios se registran o reenvían un código de confirmación. Los correos electrónicos de las operaciones de actualización de atributos y restablecimiento de contraseñas utilizan la plantilla de código.
+ Los mensajes de invitación al usuario
+ Las direcciones de correo electrónico del remitente (FROM) y del receptor (REPLY-TO) de los correos electrónicos del grupo de usuarios

**nota**  
Las plantillas de mensajes de verificación por SMS y de correo electrónico solo aparecen si ha elegido exigir la verificación de número de teléfono y de correo electrónico. Del mismo modo, la plantilla de mensajes de MFA de SMS solo aparece si el valor en la configuración de la MFA está en **required** (obligatorio) u **optional** (opcional).

**Topics**
+ [Plantillas de mensaje](#cognito-user-pool-settings-message-templates)
+ [Personalización de mensajes de correo electrónico y SMS para la MFA](#cognito-user-pool-settings-SMS-message-customization)
+ [Personalización de los mensajes de verificación de correo electrónico](#cognito-user-pool-settings-email-verification-message-customization)
+ [Personalización de los mensajes de invitación a usuarios](#cognito-user-pool-settings-user-invitation-message-customization)
+ [Personalización de la dirección de correo electrónico](#cognito-user-pool-settings-email-address-customization)
+ [Autorización de Amazon Cognito para enviar correos electrónicos de Amazon SES en su nombre (desde una dirección de correo electrónico FROM personalizada)](#cognito-user-pool-settings-ses-authorization-to-send-email)

## Plantillas de mensaje
<a name="cognito-user-pool-settings-message-templates"></a>

Las plantillas de mensaje le permiten insertar marcadores de posición en los mensajes. Amazon Cognito sustituye dichos marcadores de posición con los valores que correspondan. Puede hacer referencia a *los marcadores de posición de plantillas universales* en las plantillas de mensajes de cualquier tipo, aunque estos valores no estén presentes en todos los tipos de mensajes.


**Marcadores de posición de plantillas universales**  

|  Description (Descripción)  |  Token  | Tipo de mensaje | 
| --- | --- | --- | 
| Código de verificación | \$1\$1\$1\$1\$1\$1 | Mensajes de verificación, confirmación y MFA | 
| Contraseña temporal | \$1\$1\$1\$1\$1\$1 | Mensajes de contraseña olvidada y de invitación | 
| Nombre de usuario | \$1username\$1 | Mensajes de invitación y de seguridad avanzada | 

Una de las respuestas automatizadas disponibles con la [protección contra amenazas](cognito-user-pool-settings-threat-protection.md) consiste en notificar al usuario que Amazon Cognito ha detectado una actividad potencialmente maliciosa. Puede utilizar los marcadores de posición de las plantillas de seguridad avanzadas para:
+ Incluir detalles específicos sobre un evento, como la dirección IP, la ciudad, el país, la hora de inicio de sesión y el nombre del dispositivo. La protección contra amenazas de Amazon Cognito puede analizar estos detalles.
+ Verificar si un enlace de un clic es válido.
+ Usar un ID de evento, el token de comentarios y el nombre de usuario para diseñar su propio enlace de un solo clic.

**nota**  
Para generar enlaces de un solo clic y utilizar los marcadores de posición `{one-click-link-valid}` y `{one-click-link-invalid}` en plantillas de correo electrónico de seguridad avanzadas, ya debe tener un dominio configurado para el grupo de usuarios.

La protección contra amenazas añade los siguientes marcadores de posición que puede insertar en las plantillas de mensajes. Estos marcadores de posición se aplican a los **mensajes de autenticación flexible**, notificaciones que Amazon Cognito envía a los usuarios cuyas sesiones se han evaluado para determinar su nivel de riesgo. Para configurar las plantillas de mensajes con estas variables, actualice la **configuración completa** de su protección contra amenazas en la consola de Amazon Cognito o envíe las plantillas en [SetRiskConfiguration](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SetRiskConfiguration.html)una solicitud.


**Marcadores de posición de las plantillas de seguridad avanzadas**  

|  Description (Descripción)  |  Token  | 
| --- | --- | 
| Dirección IP | \$1ip-address\$1 | 
| Ciudad | \$1city\$1 | 
| País | \$1country\$1 | 
| Hora de inicio de sesión | \$1login-time\$1 | 
| Nombre del dispositivo | \$1device-name\$1 | 
| El enlace de un solo clic es válido | \$1one-click-link-valid\$1 | 
| El enlace de un solo clic no es válido | \$1one-click-link-invalid\$1 | 
| ID de evento | \$1event-id\$1 | 
| Token de comentarios | \$1feedback-token\$1 | 

## Personalización de mensajes de correo electrónico y SMS para la MFA
<a name="cognito-user-pool-settings-SMS-message-customization"></a>

A fin de personalizar los mensajes SMS y de correo electrónico para la [autenticación multifactor (MFA](user-pool-settings-mfa.md)), edite el **mensaje de MFA** en el menú **Plantillas de mensajes** de la consola de grupos de usuarios de Amazon Cognito.

**importante**  
El mensaje personalizado debe contener el marcador de posición `{####}`. Este marcador de posición se sustituye por el código de autenticación antes de enviar el mensaje.

Amazon Cognito impone una longitud máxima de 140 caracteres UTF-8 para los mensajes SMS, incluido el código de autenticación.

### Personalización de los mensajes de verificación por SMS
<a name="cognito-user-pool-settings-SMS-verification-message-customization"></a>

A fin de personalizar el mensaje SMS para la verificación del número de teléfono, edite la plantilla **Mensaje de verificación** en el menú **Plantillas de mensajes** de su grupo de usuarios.

**importante**  
El mensaje personalizado debe contener el marcador de posición `{####}`. Este marcador de posición se sustituye por el código de verificación antes de enviar el mensaje.

La longitud máxima del mensaje es de 140 caracteres UTF-8, incluido el código de verificación.

## Personalización de los mensajes de verificación de correo electrónico
<a name="cognito-user-pool-settings-email-verification-message-customization"></a>

Para verificar la dirección de correo electrónico de un usuario de su grupo de usuarios con Amazon Cognito, puede enviarle un mensaje de correo electrónico con un enlace que puede seleccionar o enviarle un código que puede ingresar.

Para personalizar el asunto del correo electrónico y el contenido del mensaje para mensajes de verificación de direcciones de correo electrónico, edite la plantilla **Mensaje de verificación** en el menú **Plantillas de mensajes** del grupo de usuarios. Puede elegir un **Tipo de verificación** de **código** o **enlace** al editar la plantilla **Mensaje de verificación**.

Si elige **Código** como el tipo de verificación, el mensaje personalizado debe contener el marcador de posición `{####}`. Al enviar el mensaje, el código de verificación reemplaza este marcador de posición.

Si elige **Enlace** como el tipo de verificación, el mensaje personalizado deberá contener un marcador de posición con el formato `{##Verify Your Email##}`. Puede cambiar la cadena de texto entre los caracteres del marcador de posición, por ejemplo `{##Click here##}`. Un enlace de verificación titulado *Verify Your Email* (Verificar correo electrónico) reemplaza a este marcador de posición.

El enlace de un mensaje de verificación de correo electrónico dirige al usuario a una URL como en el ejemplo siguiente.

```
https://<your user pool domain>/confirmUser/?client_id=abcdefg12345678&user_name=emailtest&confirmation_code=123456
```

La longitud máxima del mensaje es de 20 000 caracteres UTF-8, incluido el código de verificación (de haberlo). Puede utilizar etiquetas HTML en este mensaje para dar formato al contenido.

## Personalización de los mensajes de invitación a usuarios
<a name="cognito-user-pool-settings-user-invitation-message-customization"></a>

Puede personalizar el mensaje de invitación del usuario que Amazon Cognito envía a los nuevos usuarios mediante SMS o mensaje de correo electrónico editando la plantilla **Mensajes de invitación** en la pestaña **Plantillas de mensajes**.

**importante**  
El mensaje personalizado debe contener los marcadores de posición `{username}` y `{####}`. Cuando Amazon Cognito envía el mensaje de invitación, reemplaza estos marcadores de posición por el nombre de usuario y la contraseña de su usuario.

La longitud máxima de un mensaje SMS, incluido el código de verificación, es de 140 caracteres UTF-8. La longitud máxima de un mensaje de correo electrónico, incluido el código de verificación, es de 20 000 caracteres UTF-8. Puede utilizar etiquetas HTML en sus mensajes de correo electrónico para dar formato al contenido.

## Personalización de la dirección de correo electrónico
<a name="cognito-user-pool-settings-email-address-customization"></a>

De forma predeterminada, los mensajes de correo electrónico que Amazon Cognito envía a los usuarios de los grupos de usuarios provienen de **no-reply@verificationemail.com**. Puede optar por especificar las direcciones de correo electrónico personalizadas del remitente (FROM) y de respuesta (REPLY-TO) que reemplazarán a **no-reply@verificationemail.com**.

**Para personalizar las direcciones de correo electrónico FROM y REPLY-TO**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home) y elija **User Pools (Grupos de usuarios)**.

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Elija el menú **Métodos de autenticación**. En **Email (Correo electrónico)**, elija **Edit (Editar)**.

1. Elija una **SES Region (Región SES)**.

1. Elija una dirección en **FROM email address (Dirección de correo electrónico DE ORIGEN)** en la lista de direcciones de correo electrónico que ha verificado con Amazon SES en la región **SES Region (Región SES)** que haya seleccionado antes. Para usar una dirección de correo electrónico de un dominio verificado, configure los ajustes de correo electrónico en la API AWS Command Line Interface o en la AWS misma. Para obtener más información, consulte [Verificación de direcciones de correo electrónico y dominios en Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html) en la *Guía para desarrolladores de Amazon Simple Email Service*.

1. Elija un **Configuration set (Conjunto de configuración)** de la lista de conjuntos de configuración en la **SES Region (Región SES)** elegida.

1. Introduzca un **FROM sender name (Nombre de remitente FROM)** descriptivo para sus mensajes de correo electrónico y en el formato `John Stiles <johnstiles@example.com>`.

1. Para personalizar la dirección de correo electrónico REPLY-TO, introduzca una dirección de correo electrónico válida en el campo **Dirección de correo electrónico REPLY-TO**.

## Autorización de Amazon Cognito para enviar correos electrónicos de Amazon SES en su nombre (desde una dirección de correo electrónico FROM personalizada)
<a name="cognito-user-pool-settings-ses-authorization-to-send-email"></a>

Puede configurar Amazon Cognito para que envíe correo electrónico desde una dirección de correo electrónico FROM personalizada en lugar de su dirección predeterminada. Para utilizar una dirección personalizada, debe conceder permiso a Amazon Cognito para enviar mensajes de correo electrónico desde una identidad verificada de Amazon SES. En la mayoría de los casos, puede conceder este permiso si crea una política de autorización de envíos. Para obtener más información, consulte [Uso de la autorización de envío con Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html) en la *Guía para desarrolladores de Amazon Simple Email Service*. 

Al configurar un grupo de usuarios para utilizar Amazon SES para los mensajes de correo electrónico, Amazon Cognito crea el rol `AWSServiceRoleForAmazonCognitoIdpEmailService` en su cuenta para conceder acceso a Amazon SES. No se necesita ninguna política de autorización de envío cuando se usa el rol de servicio vinculado de `AWSServiceRoleForAmazonCognitoIdpEmailService`. Solo necesita agregar una política de autorización de envío cuando utiliza la funcionalidad de correo electrónico predeterminada en el grupo de usuarios * y * una identidad de Amazon SES verificada como dirección FROM.

Para obtener más información acerca del rol vinculado al servicio que crea Amazon Cognito, consulte [Uso de roles vinculados a servicios para Amazon Cognito](using-service-linked-roles.md).

En el siguiente ejemplo, la política de envío de autorización otorga a Amazon Cognito la capacidad limitada de utilizar una identidad verificada de Amazon SES. Amazon Cognito solo puede enviar mensajes de correo electrónico cuando lo hace en nombre del grupo de usuarios en la condición `aws:SourceArn` y la cuenta en la condición `aws:SourceAccount`. Para ver más ejemplos, consulte [Ejemplos de la política de autorización de envío con Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policy-examples.html) en la *Guía para desarrolladores de Amazon Simple Email Service*.

**nota**  
En este ejemplo, el valor "Sid" es una cadena arbitraria que identifica de forma única la declaración. Para obtener más información sobre la sintaxis de la política, consulte [Políticas autorización de envío con Amazon SES](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization-policies.html) en la *Guía para desarrolladores de Amazon Simple Email Service*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "stmnt1234567891234",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "email.cognito-idp.amazonaws.com"
                ]
            },
            "Action": [
                "SES:SendEmail",
                "SES:SendRawEmail"
            ],
            "Resource": "arn:aws:ses:us-east-1:111122223333:identity/support@example.com",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
                }
            }
        }
    ]
}
```

------

La consola de Amazon Cognito agrega una política similar en su nombre cuando selecciona una identidad de Amazon SES desde el menú desplegable. Si utiliza la CLI o la API para configurar el grupo de usuarios, debe adjuntar una política estructurada, al igual que en el ejemplo anterior, a su identidad de Amazon SES.

# Creación de cuentas de usuario como administrador
<a name="how-to-create-user-accounts"></a>

Los grupos de usuarios no son solo un directorio de usuarios de administración de acceso e identidad de los clientes (CIAM) donde cualquier usuario de Internet puede registrarse para obtener un perfil de usuario en su aplicación. Puede deshabilitar el registro de autoservicio. Es posible que ya conozca a los clientes y solo desee admitir a aquellos que hayan sido autorizados previamente. Puede colocar barreras de protección de autenticación manual en torno a su aplicación con un [proveedor de identidades SAML 2.0 u OIDC privado](cognito-user-pools-identity-federation.md), [importando usuarios](cognito-user-pools-import-users.md), [filtrándolos al registrarse](user-pool-lambda-pre-sign-up.md) o creando usuarios mediante operaciones administrativas de API. Su flujo de trabajo para la creación administrativa de usuarios puede ser programático, aprovisionar a los usuarios después de que se hayan registrado en otro sistema, o puede realizarse mediante pruebas en la consola de Amazon Cognito. case-by-case

Al crear usuarios como administrador, Amazon Cognito establece una contraseña temporal para dichos usuarios y les envía un mensaje de bienvenida o de invitación. Los usuarios pueden seguir el enlace del mensaje de invitación e iniciar sesión por primera vez, establecer una contraseña y confirmar su cuenta. En la siguiente página se describe cómo crear usuarios nuevos y configurar el mensaje de bienvenida. Para obtener más información sobre la creación de usuarios con la API de grupos de usuarios y un AWS SDK o un CDK, consulte. [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)

Después de crear el grupo de usuarios, puede crear usuarios mediante la API Consola de administración de AWS Amazon Cognito AWS Command Line Interface o la API de Amazon Cognito. Puede crear un perfil para un usuario nuevo de un grupo de usuarios y enviar un mensaje de bienvenida con instrucciones de inscripción al usuario a través de SMS o correo electrónico.

Los siguientes son algunos ejemplos de cómo los administradores pueden administrar los usuarios en los grupos de usuarios.
+ Crear un perfil de usuario nuevo en la consola de Amazon Cognito o con la operación de la API `AdminCreateUser`.
+ Haga que username-and-password los [flujos de autenticación](amazon-cognito-user-pools-authentication-flow-methods.md) personalizados, sin contraseña y con clave de paso estén disponibles para su grupo de usuarios y el cliente de la aplicación.
+ Establezca los valores de los atributos de usuario.
+ Cree atributos personalizados.
+ Establecer el valor de los [atributos personalizados](user-pool-settings-attributes.md#user-pool-settings-custom-attributes) inmutables en las solicitudes de API de `AdminCreateUser`. Esta característica no está disponible en la consola de Amazon Cognito.
+ Especificar una contraseña temporal, crear un usuario sin contraseña o permitir que Amazon Cognito genere una contraseña automáticamente.
+ Crear nuevos usuarios y confirmar automáticamente sus cuentas, verificar sus direcciones de correo electrónico o sus números de teléfono.
+ Especifique los mensajes de invitación por SMS y correo electrónico personalizados para los nuevos usuarios mediante los Consola de administración de AWS activadores Lambda, como el [mensaje personalizado](user-pool-lambda-custom-message.md), el remitente de [SMS personalizado y el remitente](user-pool-lambda-custom-sms-sender.md) de [correo electrónico personalizado](user-pool-lambda-custom-email-sender.md).
+ Especificar si los mensajes de la invitación se envían mediante SMS, correo electrónico o ambos.
+ Volver a enviar el mensaje de bienvenida a un usuario existente llamando al API `AdminCreateUser` y especificando `RESEND` para el parámetro `MessageAction`.
+ [Suprimir](#admincreateuserwalkthrough-step-invitationmessage) el envío del mensaje de invitación cuando se crea el usuario.
+ Especificar un límite de tiempo de caducidad de hasta 90 días para las cuentas de usuario nuevas.
+ Permitir a los usuarios inscribirse o requerir que solo el administrador añada a los usuarios nuevos.

Los administradores también pueden iniciar sesión con AWS las credenciales de los usuarios en una aplicación del lado del servidor. Para obtener más información, consulte [Modelos de autorización para la autenticación de API y SDK](authentication-flows-public-server-side.md).

## Flujos de autenticación de usuarios y creación de usuarios
<a name="how-to-create-user-accounts-flows"></a>

La creación administrativa de usuarios tiene opciones que varían según la configuración del grupo de usuarios. Los *flujos de autenticación*, o los métodos disponibles para los usuarios para el inicio de sesión y la MFA, pueden cambiar la forma en que se crean los usuarios y los mensajes que se les envían. A continuación, se muestran algunos flujos de autenticación que están disponibles en los grupos de usuarios.
+ Nombre de usuario y contraseña
+ Clave de acceso
+ Inicie sesión con un tercero IdPs
+ Sin contraseña con contraseñas de un solo uso por correo electrónico y SMS () OTPs
+ Autenticación multifactorial con correo electrónico, SMS y aplicación de autenticación OTPs
+ Autenticación personalizada con activadores de Lambda

Para obtener más información sobre cómo configurar estos factores de inicio de sesión, consulte [Autenticación con grupos de usuarios de Amazon Cognito](authentication.md).

## Creación de usuarios sin contraseñas
<a name="how-to-create-user-accounts-thingstoknow-passwordless"></a>

Si ha activado el inicio de sesión sin contraseña en su grupo de usuarios, puede crear usuarios sin contraseñas. Para crear un usuario sin contraseña, debe proporcionar valores de atributo para un factor de inicio de sesión sin contraseña disponible. Por ejemplo, si el inicio de sesión con OTP por correo sin contraseña establecida está disponible en su grupo de usuarios, puede crear un usuario sin contraseña y con un atributo de dirección de correo electrónico. Si los únicos flujos de autenticación disponibles para los nuevos usuarios requieren una contraseña, por ejemplo, una clave de acceso o un nombre de usuario-contraseña, debe crear o generar una contraseña temporal para cada usuario nuevo.

**Cómo crear un usuario nuevo sin contraseña**
+ Seleccione **No establecer una contraseña** en la consola de Amazon Cognito
+ Omita o deje en blanco el parámetro `TemporaryPassword` de su solicitud de API `AdminCreateUser`

**Los usuarios sin contraseña se confirman automáticamente**  
Normalmente, los nuevos usuarios obtienen una contraseña temporal y pasan a un estado `FORCE_CHANGE_PASSWORD` al crearlos. Cuando se crean usuarios sin contraseñas, pasan inmediatamente a un estado `CONFIRMED`. No puede reenviar los códigos de confirmación a estos usuarios en el estado `CONFIRMED`.

**Los mensajes de invitación cambian para los usuarios sin contraseñas.**  
De forma predeterminada, Amazon Cognito envía un [mensaje de invitación](cognito-user-pool-settings-message-customizations.md#cognito-user-pool-settings-user-invitation-message-customization) a los nuevos usuarios que dice `Your username is {userName} and your password is {####}.` Cuando crea usuarios sin contraseña, el mensaje dice `Your username is {userName}.` Personalice el mensaje de invitación para indicar si va a establecer contraseñas para los usuarios. Omita la variable de contraseña `{####}` en los modelos de autenticación sin contraseña.

**No se pueden generar contraseñas automáticamente cuando hay factores sin contraseña disponibles**  
Si ha configurado su grupo de usuarios para que admita el inicio de sesión OTP por correo o teléfono sin contraseña establecida, no podrá generar una contraseña automáticamente. Para cada usuario que vaya a tener una contraseña, debe establecer una contraseña temporal al crear su perfil.

**Los usuarios sin contraseña deben tener valores para todos los atributos obligatorios**  
Al crear un usuario *sin* contraseña, la solicitud solo es válida si el usuario proporciona valores para todos los atributos que ha marcado como obligatorios en el grupo de usuarios. Esto se aplica a cualquier atributo obligatorio, no solo a los atributos de número de teléfono y correo electrónico necesarios para la entrega mediante una OTP.

## Creación de usuarios que proporcionen los valores de los atributos obligatorios más adelante
<a name="how-to-create-user-accounts-thingstoknow-password-restrictions"></a>

Es posible que desee requerir atributos en su grupo de usuarios, pero recopilarlos después de crear los usuarios de forma administrativa, durante la interacción de los usuarios en su aplicación. Los administradores pueden omitir los valores de los atributos obligatorios al crear usuarios *con contraseñas temporales*. No puede omitir los valores de los atributos obligatorios para los usuarios sin contraseña.

Los usuarios a los que les falten valores en los atributos obligatorios y que tengan una contraseña temporal reciben el comando [NEW\$1PASSWORD\$1REQUIRED](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_RespondToAuthChallenge.html#CognitoUserPools-RespondToAuthChallenge-request-ChallengeResponses) al iniciar sesión por primera vez. A continuación, pueden proporcionar un valor para los atributos obligatorios que faltan en el parámetro `requiredAttributes`. Solo puede crear usuarios con contraseñas y sin los atributos necesarios si todos los atributos necesarios son [mutables](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). Los usuarios solo pueden completar el inicio de sesión con desafíos `NEW_PASSWORD_REQUIRED` y valores de atributos obligatorios si los atributos necesarios [se pueden escribir](user-pool-settings-client-apps.md#cognito-user-pools-app-idp-settings-about) desde el cliente de aplicación con el que inician sesión.

Cuando establece una contraseña permanente para un usuario creado por el administrador, su estado cambia a `CONFIRMED` y su grupo de usuarios no les pide una nueva contraseña *ni* los atributos obligatorios la primera vez que inician sesión.

## Crear un nuevo usuario en el Consola de administración de AWS
<a name="creating-a-new-user-using-the-console"></a>

Puede establecer requisitos de contraseña de usuario, configurar los mensajes de invitación y verificación enviados a los usuarios y agregar nuevos usuarios con la consola de Amazon Cognito.

### Establecer una política de contraseñas y habilitar el autorregistro
<a name="set-user-password-policy"></a>

Puede configurar los ajustes para minimizar la complejidad de las contraseñas y determinar si los usuarios pueden registrarse mediante el uso del público APIs en su grupo de usuarios.

**Configurar una política de contraseñas**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home) y elija **User Pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Seleccione el menú **Métodos de autenticación** y busque la **Política de contraseñas**. Elija **Edit** (Editar).

1. Elija un **Password policy mode** (Modo de política de contraseñas) de **Custom** (Personalizado).

1. Elija una **Password minimum length** (Longitud mínima de la contraseña). Para conocer los límites del requisito de longitud de la contraseña, consulte [Cuotas de recursos de grupos de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html#limits-hard).

1. Elija un requisito de **Password complexity** (Complejidad de la contraseña).

1. Elija durante cuánto tiempo debe ser válida la contraseña establecida por los administradores.

1. Elija **Save changes** (Guardar cambios).

**Permitir registro de autoservicio**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home) y elija **User Pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Elija el menú **Registro** y busque **Registro automático**. Seleccione **Edit** (Editar).

1. Elija si desea activar la opción **Enable self-registration** (Habilitar el autorregistro). El registro automático se suele utilizar con los clientes de aplicaciones públicas que necesitan registrar nuevos usuarios en su grupo de usuarios sin distribuir un secreto de cliente o credenciales de API AWS Identity and Access Management (IAM).
**Desactivación del autorregistro**  
Si no se habilita el autorregistro, se deben crear nuevos usuarios mediante acciones de API administrativas con credenciales API de AMI o iniciando sesión con proveedores federados.

1. Seleccione **Save changes (Guardar cambios)**.

### Personalizar mensajes de correo electrónico y SMS
<a name="creating-a-new-user-customize-messages"></a>

**Personalizar mensajes de usuario**

Puede personalizar los mensajes que Amazon Cognito envía a los usuarios cuando los invita a iniciar sesión, cuando se registran para obtener una cuenta de usuario o cuando inician sesión y se les solicita autenticación multifactor (MFA).
**nota**  
Se envía un **Invitation message** (Mensaje de invitación) al crear un usuario en el grupo de usuarios e invitarlo a iniciar sesión. Amazon Cognito envía información de inicio de sesión inicial a la dirección de correo electrónico o el número de teléfono del usuario.  
Se envía un **Verification message** (Mensaje de verificación) cuando un usuario se registra para obtener una cuenta de usuario en el grupo de usuarios. Amazon Cognito envía un código al usuario. Cuando el usuario proporciona el código a Amazon Cognito, verifica su información de contacto y confirma la cuenta para iniciar sesión. Los códigos de verificación son válidos durante 24 horas.  
Se envía un **MFA message** (Mensaje de MFA) cuando se habilita la MFA por SMS en el grupo de usuarios, y un usuario que ha configurado MFA por SMS inicia sesión y se le solicita MFA.

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home) y elija **User pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Elija el menú **Plantillas de mensajes** y seleccione **Mensaje de verificación**, **Mensaje de invitación** o **Mensaje de MFA** y seleccione **Editar**.

1. Personalice los mensajes en función del tipo de mensaje elegido.
**nota**  
Todas las variables de las plantillas de mensajes deben incluirse al personalizar el mensaje. Si, por ejemplo, no se incluye la variable **\$1\$1\$1\$1\$1\$1**, el usuario no tendrá información suficiente para completar la acción de mensaje.  
Para obtener más información, consulte [Plantillas de mensaje](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-message-templates.html).

1. 

   1. **Verification messages** (Mensajes de verificación)

      1. Elija un **Verification type** (Tipo de verificación) para mensajes de **Email** (Correo electrónico). Una verificación de **Code** (Código) envía un código numérico que el usuario debe ingresar. Una verificación por **Link** (Enlace) envía un enlace en el que el usuario puede hacer clic para verificar su información de contacto. El texto de la variable de un mensaje de **Link** (Enlace) se muestra como texto de hipervínculo. Por ejemplo, una plantilla de mensaje que utiliza la variable \$1\$1\$1Click here\$1\$1\$1 se mostrará como [Click here]() (Haga clic aquí) en el mensaje de correo electrónico.

      1. Ingrese un **Email subject** (Asunto del correo electrónico) para los mensajes de **Email** (Correo electrónico).

      1. Ingrese una plantilla personalizada de **Email message** (Mensaje de correo electrónico) para los mensajes de **Email** (Correo electrónico). Puede personalizar esta plantilla con HTML.

      1. Ingrese una plantilla personalizada de **SMS message** (Mensaje SMS) para los **SMS**.

      1. Seleccione **Save changes (Guardar cambios)**.

   1. **Invitation messages** (Mensajes de invitación)

      1. Ingrese un **Email subject** (Asunto del correo electrónico) para los mensajes de **Email** (Correo electrónico).

      1. Ingrese una plantilla personalizada de **Email message** (Mensaje de correo electrónico) para los mensajes de **Email** (Correo electrónico). Puede personalizar esta plantilla con HTML.

      1. Ingrese una plantilla personalizada de **SMS message** (Mensaje SMS) para los **SMS**.

      1. Seleccione **Save changes (Guardar cambios)**.

   1. **MFA messages** (Mensajes MFA)

      1. Ingrese una plantilla personalizada de **SMS message** (Mensaje SMS) para los **SMS**.

      1. Seleccione **Save changes (Guardar cambios)**.

### Creación de un usuario
<a name="creating-a-new-user-using-the-users-tab"></a>

**Creación de un usuario**

Puede crear nuevos usuarios para su grupo de usuarios desde la consola de Amazon Cognito. Normalmente, los usuarios pueden iniciar sesión después de haber establecido una contraseña. Para iniciar sesión con una dirección de correo electrónico, el usuario debe verificar el atributo `email`. Para iniciar sesión con un número de teléfono, el usuario debe verificar el atributo `phone_number`. Para confirmar las cuentas como administrador, también puedes usar la API AWS CLI o crear perfiles de usuario con un proveedor de identidades federado. Para obtener más información, consulte la sección de [referencia de API de Amazon Cognito](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/).

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home) y elija **User pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Seleccione la pestaña **Usuarios** y, a continuación, elija **Crear un usuario**.

1. Revise **User pool sign-in and security requirements** (Requisitos de seguridad e inicio de sesión del grupo de usuarios) para obtener información sobre los requisitos de contraseña, los métodos de recuperación de cuentas disponibles y los atributos de alias para el grupo de usuarios.

1. <a name="admincreateuserwalkthrough-step-invitationmessage"></a>Elija cómo desea enviar un **Invitation message** (Mensaje de invitación). Elija entre mensaje SMS, mensaje de correo electrónico o ambas opciones. Para suprimir el mensaje de invitación, seleccione **No enviar una invitación**.
**nota**  
Para poder enviar mensajes de invitación debe configurar un remitente y una Región de AWS con Amazon Simple Notification Service y Amazon Simple Email Service en el menú **Autenticación** de su grupo de usuarios. Se aplican tarifas de mensajes y de datos al destinatario. Amazon SES le factura por los mensajes de correo electrónico por separado, así como Amazon SNS le factura por los mensajes SMS por separado.

1. Elija un **Username** (Nombre de usuario) para el nuevo usuario.

1. Elija **Create a password** (Crear una contraseña) o bien que lo haga Amazon Cognito seleccionando **Generate a password** (Generar una contraseña). La opción para generar una contraseña no está disponible si el [inicio de sesión sin contraseña](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) está disponible en el grupo de usuarios. Cualquier contraseña temporal debe cumplir con la política de contraseñas del grupo de usuarios.

1. Seleccione **Crear**.

1. Elija el menú **Usuarios** y la entrada **Nombre de usuario** para el usuario. Agregue y edite **User attributes** (Atributos de usuario) y **Group memberships** (Miembros de grupos). Consulta **User event history** (Historial de eventos del usuario).

# Agregar grupos a un grupo de usuarios
<a name="cognito-user-pools-user-groups"></a>

Gracias a la compatibilidad entre los grupos y los grupos de usuarios de Amazon Cognito, se pueden crear y administrar grupos y agregar o eliminar usuarios de grupos. Utilice los grupos para crear recopilaciones de usuarios para administrar sus permisos o representar diferentes tipos de usuarios. Puede asignar una función AWS Identity and Access Management (de IAM) a un grupo para definir los permisos de los miembros de un grupo.

Puede usar grupos para crear un conjunto de usuarios dentro de un grupo de usuarios, cosa que suele hacerse a menudo para establecer los permisos para dichos usuarios. Por ejemplo, puede crear grupos diferentes para los usuarios que son lectores, colaboradores o editores de su sitio web y su aplicación. Con el rol de IAM asociado a un grupo, también puede configurar diferentes permisos para esos grupos distintos con el fin de que solo los colaboradores puedan ingresar contenido en Amazon S3 y que solo los editores puedan publicar contenido mediante una API en Amazon API Gateway.

Amazon Cognito crea un grupo de usuarios para cada OIDC y cada [proveedor de identidad social (](cognito-user-pools-identity-federation.md#cognito-user-pools-identity-federation-how-it-works)IdP) que añada a su grupo de usuarios. SAMl El nombre del grupo tiene el formato `[user pool ID]_[IdP name]`, por ejemplo `us-east-1_EXAMPLE_MYSSO` o `us-east-1_EXAMPLE_Google`. Cada perfil de usuario de IdP único generado automáticamente se agrega automáticamente a este grupo. Los [usuarios vinculados](cognito-user-pools-identity-federation-consolidate-users.md) no se agregan automáticamente a este grupo, pero puede agregar sus perfiles al grupo en un proceso independiente.

Puede crear y administrar grupos en un grupo de usuarios desde la Consola de administración de AWS APIs, la y la CLI. Como desarrollador (con AWS credenciales), puede crear, leer, actualizar, eliminar y enumerar los grupos de un grupo de usuarios. También puede añadir usuarios y eliminarlos de los grupos.

No se aplica ningún cargo adicional por usar grupos dentro de un grupo de usuarios. Para obtener más información, consulte [Precios de Amazon Cognito](https://aws.amazon.com/cognito/pricing/).

## Asignación de roles de IAM a grupos
<a name="assigning-iam-roles-to-groups"></a>

Puede utilizar grupos para controlar los permisos de los recursos mediante un rol de IAM. Los roles de IAM incluyen políticas de confianza y políticas de permisos. La política de [confianza](https://docs.aws.amazon.com/cognito/latest/developerguide/role-trust-and-permissions.html) del rol especifica quién puede usar el rol. Las políticas de [permisos](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies) especifican las acciones y los recursos a los que los miembros del grupo pueden tener acceso. Al crear un rol de IAM, configure la política de confianza del rol para permitir que los usuarios del grupo asuman el rol. En las políticas de permisos del rol, especifique los permisos que desea que tenga el grupo.

Cuando se crea un grupo en Amazon Cognito, se especifica un rol de IAM proporcionando el [ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) del rol. Cuando los miembros del grupo inician sesión con Amazon Cognito, pueden recibir credenciales temporales de los grupos de identidades. Sus permisos están determinados por el rol de IAM asociado.

Los usuarios individuales pueden pertenecer a varios grupos. En su calidad de desarrollador, tiene a disposición las opciones siguientes para elegir de forma automática el rol de IAM cuando un usuario pertenece a varios grupos:
+ Puede asignar valores de prioridad a cada grupo. Se elegirá el grupo que tenga la mejor prioridad (inferior) y se aplicará el rol de IAM que tenga asociado. 
+ La aplicación también puede elegir entre las funciones disponibles al solicitar AWS credenciales para un usuario a través de un grupo de identidades, especificando un ARN de función en el [GetCredentialsForIdentity](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html)`CustomRoleARN`parámetro. El rol de IAM especificado debe coincidir con un rol que esté disponible para el usuario.

## Asignación de valores de prioridad a los grupos
<a name="assigning-precedence-values-to-groups"></a>

Un usuario puede pertenecer a más de un grupo. En los tokens de ID y acceso del usuario, la reclamación `cognito:groups` contiene la lista de todos los grupos a los que pertenece el usuario. La notificación `cognito:roles` contiene la lista de los roles correspondientes a los grupos.

Dado que un usuario puede pertenecer a más de un grupo, se puede asignar a cada grupo un nivel de prioridad. Se trata de un número que no es negativo y que indica la prioridad del grupo en relación con los demás grupos a los que el usuario pertenece en el grupo de usuarios. Cero es la máxima prioridad. Los grupos con los valores de prioridad más bajos prevalecen sobre los grupos con los valores de prioridad más altos o nulos. Si un usuario pertenece a dos o más grupos, se aplica el rol de IAM del grupo con el valor de prioridad más bajo a la reclamación `cognito:preferred_role` del token de ID de usuario.

Dos grupos pueden tener la misma prioridad. Si esto ocurre, ningún grupo prevalece sobre el otro. Si dos grupos con el mismo valor de prioridad tienen el mismo ARN de rol, ese rol se utiliza en la notificación `cognito:preferred_role` en tokens de ID para los usuarios de cada grupo. Si los dos grupos tienen funciones diferentes ARNs, la `cognito:preferred_role` afirmación no se establece en los identificadores de los usuarios.

## Uso de grupos para controlar el permiso con Amazon API Gateway
<a name="using-groups-to-control-permission-with-amazon-api-gateway"></a>

Puede utilizar los grupos de un grupo de usuarios para controlar los permisos con Amazon API Gateway. Los grupos a los que pertenece un usuario están incluidos en el token de ID y el token de acceso de un grupo de usuarios en la reclamación `cognito:groups`. Puede enviar tokens de ID o de acceso con solicitudes a Amazon API Gateway y utilizar un autorizador de grupos de usuarios de Amazon Cognito para una API REST. Para obtener más información, consulte [Control del acceso a una API de REST con grupos de usuarios de Amazon Cognito como autorizador](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) en la [Guía para desarrolladores de API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

También puede autorizar el acceso a una API HTTP de Amazon API Gateway con un autorizador JWT personalizado. Para obtener más información, consulte [Control del acceso a HTTP APIs con autorizadores JWT](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) en la Guía para [desarrolladores de API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/).

## Limitaciones aplicadas a los grupos
<a name="user-pool-user-groups-limitations"></a>

Los grupos de usuarios están sujetos a las siguientes limitaciones:
+ El número de grupos que puede crear está limitado por las [cuotas de servicio de Amazon Cognito](quotas.md).
+ Los grupos no pueden estar anidados.
+ No puede buscar usuarios en un grupo.
+ No se pueden buscar los grupos por nombre, aunque sí puede obtener una lista de ellos.

## Crear un grupo nuevo en el Consola de administración de AWS
<a name="creating-a-new-group-using-the-console"></a>

Utilice el siguiente procedimiento para crear un grupo nuevo.

**Para crear un grupo nuevo**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Grupos** y, a continuación, elija **Crear un grupo**.

1. En la página **Create a group** (Crear un grupo), en **Group name** (Nombre del grupo), escriba un nombre sencillo para el grupo nuevo.

1. Opcionalmente, puede incluir información adicional sobre este grupo en cualquiera de los siguientes campos:
   + **Description** (Descripción): Introduzca detalles sobre para qué se utilizará este nuevo grupo.
   + **Precedence** (Prioridad): Amazon Cognito evalúa y aplica todos los permisos de grupo para un usuario determinado en función de a qué grupo de aquellos a los que pertenece tiene un valor de prioridad inferior. Se elegirá el grupo que tenga la prioridad más baja y se aplicará el rol de IAM que tenga asociado. Para obtener más información, consulte [Asignación de valores de prioridad a los grupos](#assigning-precedence-values-to-groups).
   + **IAM role** (Rol de IAM): Puede asignar un rol de IAM a su grupo cuando necesite controlar los permisos de los recursos. Si va a integrar un grupo de usuarios en un grupo de identidades, el ajuste **IAM role** (Rol de IAM) determina qué rol se asigna en el token de ID del usuario si el grupo de identidades está configurado para elegir el rol a partir del token. Para obtener más información, consulte [Asignación de roles de IAM a grupos](#assigning-iam-roles-to-groups).
   + **Add users to this group** (Añadir usuarios a este grupo): Agregue usuarios existentes como miembros de este grupo después de crearlo.

1. Elija **Create** (Crear) para confirmar.

# Gestión y búsqueda de cuentas de usuario
<a name="how-to-manage-user-accounts"></a>

Los grupos de usuarios pueden contener millones de usuarios. Trabajar con un conjunto de datos de este tamaño es un desafío para los administradores. Amazon Cognito cuenta con herramientas para buscar y modificar los perfiles de usuario. Los principales métodos para encontrar usuarios son el menú **Usuarios** de la consola Amazon Cognito y con. [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) De los métodos que recuperan información sobre los usuarios, estas son las opciones que no tienen un impacto en los costos, a diferencia de, por ejemplo, [AdminGetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminGetUser.html).

Esta sección de la guía contiene información sobre cómo buscar y actualizar perfiles de usuario en un grupo de usuarios.

## Visualización de atributos de los usuarios
<a name="manage-user-accounts-viewing-user-attributes"></a>

Utilice el siguiente procedimiento para ver los atributos de los usuarios en la consola de Amazon Cognito.

**Para ver los atributos de los usuarios**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Elija la pestaña **Usuarios** y seleccione un usuario de la lista.

1. En la página de detalles de los usuarios, en **User attributes** (Atributos de usuario), puede ver qué atributos están asociados al usuario.

## Restablecimiento de la contraseña de un usuario
<a name="manage-user-accounts-reset-user-password"></a>

Utilice el siguiente procedimiento para restablecer la contraseña de un usuario en la consola de Amazon Cognito.

**Para restablecer la contraseña de un usuario**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Elija la pestaña **Usuarios** y seleccione un usuario de la lista.

1. En la página de detalles de los usuarios, elija **Actions** (Acciones), **Reset password** (Restablecer contraseña).

1. En el cuadro de diálogo **Reset password** (Restablecer contraseña), compruebe la información y, cuando esté listo, elija **Reset** (Restablecer).

   Esta acción produce el envío inmediato de un código de confirmación al usuario y deshabilita la contraseña actual de este cambiando el estado del usuario a `RESET_REQUIRED`. El código de **Reset password** (Restablecer contraseña) es válido durante una hora.

## Habilitación, deshabilitación y eliminación de cuentas de usuario
<a name="manage-user-accounts-enable-disable"></a>

Puede eliminar los perfiles de usuario no utilizados o, si desea impedir temporalmente el acceso, deshabilitarlos. Los usuarios pueden eliminar sus propias cuentas, pero solo los administradores del grupo de usuarios pueden habilitar y deshabilitar las cuentas de usuario.

**Efecto de la eliminación**  
Los usuarios no pueden iniciar sesión con las cuentas de usuario eliminadas y, para recuperar el acceso, deben registrarse o crearse de nuevo.

**Efecto de la deshabilitación de cuentas**  
Al deshabilitar una cuenta de usuario, Amazon Cognito invalida automáticamente todas las sesiones autenticadas, desactiva la cuenta de usuario para iniciar sesión y [revoca sus tokens de acceso y actualización](token-revocation.md). Amazon Cognito devuelve un mensaje de error `invalid_request` indicando `User is not enabled` cuando un usuario intenta iniciar sesión en una cuenta que usted ha deshabilitado. Este comportamiento no cambia con la [configuración de divulgación de la existencia del usuario](cognito-user-pool-managing-errors.md) para el cliente de la aplicación. Puede deshabilitar las cuentas de usuario locales y los perfiles locales de las cuentas de usuario federado. Cuando los usuarios inician sesión con un inicio de sesión administrado o con la clásica interfaz de usuario alojada, usted inhabilita su cuenta y ellos intentan iniciar sesión de nuevo en un navegador con una cookie que mantiene su sesión autenticada, Amazon Cognito los redirige a la página de inicio de sesión.

**Efecto de la habilitación de cuentas**  
Los usuarios pueden iniciar sesión en las cuentas inmediatamente después de que usted las habilite. Las cuentas de usuario están habilitadas de forma predeterminada. Los atributos y las contraseñas de los usuarios siguen siendo los mismos que antes de deshabilitar su cuenta. Los tokens que su aplicación haya revocado, tanto si ha desactivado la cuenta de usuario como si ha revocado por separado el token de actualización, siguen sin ser válidos después de habilitar la cuenta de usuario propietaria del token.

------
#### [ Delete a user account (console) ]

**Cómo eliminar una cuenta de usuario**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Usuarios** y seleccione el botón de opciones situado junto al nombre de usuario de la lista.

1. Elija **Eliminar**.

1. Seleccione **Desactivar el acceso de usuarios**.

1. Elija **Eliminar**.

------
#### [ Delete a user account (API) ]

Los usuarios pueden eliminar sus cuentas mediante la operación de access-token-authorized [DeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUser.html)API de autoservicio. A continuación, se muestra un ejemplo de cuerpo de la solicitud `DeleteUser`.

```
{
   "AccessToken": "eyJra456defEXAMPLE"
}
```

Los administradores pueden eliminar las cuentas de usuario mediante la operación de API autorizada por IAM [AdminDeleteUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDeleteUser.html). A continuación, se muestra un ejemplo de cuerpo de la solicitud `AdminDeleteUser`.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ Disable a user account (console) ]

**Cómo deshabilitar una cuenta de usuario**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus credenciales. AWS 

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Usuarios** y un nombre de usuario para uno de los usuarios en la lista.

1. En la página de datos del usuario, elija **Acciones** y **Desactivar el acceso de usuarios**.

1. En el cuadro de diálogo que se creará, seleccione **Desactivar**.

------
#### [ Disable a user account (API) ]

Los administradores pueden deshabilitar las cuentas de usuario mediante la operación de [AdminDisableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html)API autorizada por IAM. A continuación, se muestra un ejemplo de cuerpo de la solicitud `AdminDisableUser`.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------
#### [ Enable a user account (console) ]

**Cómo habilitar una cuenta de usuario**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si se le solicita, introduzca sus credenciales. AWS 

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Usuarios** y un nombre de usuario para uno de los usuarios en la lista.

1. En la página de datos del usuario, elija **Acciones** y **Habilitar el acceso de usuarios**.

1. En el cuadro de diálogo que se creará, seleccione **Habilitar**.

------
#### [ Enable a user account (API) ]

Los administradores pueden habilitar las cuentas de usuario con la operación de [AdminEnableUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html)API autorizada por IAM. A continuación, se muestra un ejemplo de cuerpo de la solicitud `AdminEnableUser`.

```
{
   "Username": "testuser",
   "UserPoolId": "us-west-2_EXAMPLE"
}
```

------

## Búsqueda de atributos de usuario
<a name="manage-user-accounts-searching-user-attributes"></a>

Si ya ha creado un grupo de usuarios, puede realizar búsquedas desde el panel **Users** (Usuarios) de la Consola de administración de AWS. También puede usar la [ListUsers API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) de Amazon Cognito, que acepta un parámetro de **filtro**.

Puede buscar cualquiera de los siguientes atributos estándar. No se pueden buscar los atributos personalizados.
+ username (distingue entre mayúsculas y minúsculas)
+ email
+ phone\$1number
+ name
+ given\$1name
+ family\$1name
+ preferred\$1username
+ cognito:user\$1status (denominado **Status** (Estado) en la consola) (no distingue entre mayúsculas y minúsculas)
+ status (denominado **Enabled** (Habilitado) en la consola) (distingue entre mayúsculas y minúsculas)
+ sub

**nota**  
También puede listar usuarios con un filtro del lado del cliente. El filtro del lado del servidor no coincide con más de 1 atributo. Para la búsqueda avanzada, utilice un filtro del lado del cliente con el parámetro `--query` de la acción `list-users` en el AWS Command Line Interface. Cuando utiliza un filtro del lado del cliente, ListUsers devuelve una lista paginada de cero o más usuarios. Puede recibir varias páginas seguidas sin resultados. Repita la consulta con cada token de paginación devuelto hasta recibir un valor de token de paginación nulo y, a continuación, revise el resultado combinado.  
[Para obtener más información sobre el filtrado del lado del servidor y del lado del cliente, consulte Filtrar los resultados en la Guía del usuario. AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-filter.html) AWS Command Line Interface 

## Búsqueda de usuarios con Consola de administración de AWS
<a name="cognito-user-pools-manage-user-accounts-searching-for-users-using-console"></a>

Si ya ha creado un grupo de usuarios, puede realizar búsquedas desde el panel **Users** (Usuarios) de la Consola de administración de AWS.

Consola de administración de AWS las búsquedas son siempre búsquedas con prefijos («comienza por»).

**Para buscar un usuario en la consola de Amazon Cognito**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Es posible que se le pidan sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Usuarios** e introduzca el nombre de usuario en el campo de búsqueda. Tenga en cuenta que algunos valores de atributo distinguen entre mayúsculas y minúsculas, por ejemplo **Username** (Nombre de usuario).

   También puede encontrar usuarios ajustando el filtro de búsqueda para restringir el ámbito a otras propiedades de usuario, como **Email** (Correo electrónico), **Phone number** (Número de teléfono) o **Last name** (Apellido).

## Búsqueda de usuarios mediante la API `ListUsers`
<a name="cognito-user-pools-searching-for-users-using-listusers-api"></a>

 [Para buscar usuarios desde su aplicación, utilice la API de Amazon CognitoListUsers .](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html) Esta API utiliza los parámetros siguientes: 
+  `AttributesToGet`: serie de cadenas, donde cada cadena es el nombre de un atributo de usuario que debe devolverse por cada usuario en los resultados de búsquedas. Para recuperar todos los atributos, no incluya un parámetro `AttributesToGet` ni solicitud `AttributesToGet` con un valor de la cadena literal `null`.
+  `Filter`: una cadena de filtro con la forma "`AttributeName` `Filter-Type` "`AttributeValue`"". Las comillas dentro de la cadena de filtro deben ir precedidas por una barra oblicua inversa (`\`). Por ejemplo, `"family_name = \"Reddy\""`. Si la cadena de filtro está vacía, `ListUsers` devuelve todos los usuarios del grupo de usuarios. 
  +  `AttributeName`: el nombre del atributo que debe buscarse. Solo puede buscar los atributos de uno en uno. 
**nota**  
Solo puede buscar atributos estándar. No se pueden buscar los atributos personalizados. Esto se debe a que solo se pueden buscar atributos indizados y los atributos personalizados no se pueden indexar.
  +  `Filter-Type`: para una coincidencia exacta, utilice `=`; por ejemplo, `given_name = "Jon"`. Para una coincidencia de prefijo ("comienza con"), utilice `^=`; por ejemplo, `given_name ^= "Jon"`. 
  +  `AttributeValue`: el valor del atributo que debe asociarse para cada usuario.
+  `Limit`: número máximo de usuarios que debe devolverse.
+  `PaginationToken`: un token para obtener más resultados de una búsqueda anterior. Amazon Cognito hace que venza el token de paginación después de una hora.
+  `UserPoolId`: el ID del grupo de usuarios en el que debe realizarse la búsqueda.

Todas las búsquedas no distinguen entre mayúsculas y minúsculas. Los resultados de la búsqueda se ordenan según el atributo designado por la cadena `AttributeName`, en orden ascendente.

## Ejemplos de uso de la API `ListUsers`
<a name="cognito-user-pools-searching-for-users-listusers-api-examples"></a>

En el ejemplo siguiente se devuelven todos los usuarios y se incluyen todos los atributos.

```
{
    "AttributesToGet": null,
    "Filter": "",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

En el ejemplo siguiente se devuelven todos los usuarios cuyos números de teléfono empiezan por "\$11312" y se incluyen todos los atributos.

```
{
    "AttributesToGet": null,
    "Filter": "phone_number ^= \"+1312\"",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

En el ejemplo siguiente se devuelven los 10 primeros usuarios cuyo apellido es "Reddy". Para cada usuario, los resultados de la búsqueda incluyen el nombre del usuario, su número de teléfono y su dirección de correo electrónico. Si hay más de 10 usuarios que coincidan con la búsqueda en el grupo de usuarios, la respuesta incluirá un token de paginación.

```
{
    "AttributesToGet": [
        "given_name", 
        "phone_number", 
        "email"
    ],
    "Filter": "family_name = \"Reddy\"",
    "Limit": 10,
    "UserPoolId": "us-east-1_samplepool"
}
```

Mientras que en el ejemplo anterior se devuelve un token de paginación, en el ejemplo siguiente se devuelven los 10 usuarios siguientes que coincidan con la misma cadena de filtro.

```
{
    "AttributesToGet": [
        "given_name", 
        "phone_number", 
        "email"
    ],
    "Filter": "family_name = \"Reddy\"",
    "Limit": 10,
    "PaginationToken": "pagination_token_from_previous_search",
    "UserPoolId": "us-east-1_samplepool"
}
```

# Contraseñas, recuperación de contraseñas y políticas de contraseñas
<a name="managing-users-passwords"></a>

Todos los usuarios que inician sesión en un grupo de usuarios, incluso los [usuarios federados](cognito-terms.md#terms-federateduser), tienen contraseñas asignadas a sus perfiles de usuario. [Los usuarios locales](cognito-terms.md#terms-localuser) y [los usuarios vinculados](cognito-terms.md#terms-linkeduser) deben proporcionar una contraseña al iniciar sesión. Los usuarios federados no utilizan contraseñas de grupos de usuarios, sino que inician sesión con su proveedor de identidades (IdP). Puede permitir a los usuarios restablecer sus propias contraseñas, restablecer o cambiar las contraseñas como administradores y [establecer políticas](#user-pool-settings-policies) relativas a la complejidad y el historial de las contraseñas.

Amazon Cognito no almacena las contraseñas de los usuarios en texto sin formato. En su lugar, almacena un hash de la contraseña de cada usuario con un salt específico para cada usuario. Por este motivo, no puede recuperar las contraseñas existentes de los perfiles de usuario de los grupos de usuarios. Como práctica recomendada, no guarde en ningún lugar contraseñas de usuario en texto sin formato. Restablezca las contraseñas cuando los usuarios las olviden.

## Restablecimiento y recuperación de la contraseña
<a name="user-pool-password-reset-and-recovery"></a>

Los usuarios se olvidan de las contraseñas. Puede que quiera darles la posibilidad de que ellos mismos restablezcan su propia contraseña o puede que quiera exigir que un administrador restablezca la contraseña en su lugar. Los grupos de usuarios de Amazon Cognito cuentan con opciones para ambos modelos. En esta parte de la guía se aborda la configuración del grupo de usuarios y las operaciones de API necesarias para restablecer las contraseñas.

El funcionamiento [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)de la API y la opción de inicio de sesión gestionado **¿Ha olvidado su contraseña?** envía a los usuarios un código que, cuando confirmen que tienen el código correcto, les da la oportunidad de establecer una nueva contraseña [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html). Se trata del modelo de autoservicio de recuperación de contraseñas.

**Recuperación de usuarios no verificados**  
Puede enviar mensajes de recuperación a los usuarios que hayan verificado su dirección de correo electrónico o número de teléfono. Si no tienen un correo electrónico o un teléfono de recuperación confirmados, el administrador del grupo de usuarios puede marcar su dirección de correo electrónico o número de teléfono como verificados. Edite los **Atributos de usuario** en la consola de Amazon Cognito y seleccione la casilla situada junto a **Marque el número de teléfono como verificado** o **Marque la dirección de email como verificada**. También puedes establecer `email_verified` o como `phone_number_verified` true en una [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)solicitud. En el caso de los nuevos usuarios, la operación de la [ResendConfirmationCode](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ResendConfirmationCode.html)API envía un código nuevo a su dirección de correo electrónico o número de teléfono y estos pueden completar la confirmación y la verificación mediante el autoservicio.

**Restablecimiento de las contraseñas como administrador**  
Las operaciones de [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API [AdminSetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)y las operaciones son los métodos de restablecimiento de contraseñas iniciados por el administrador. `AdminSetUserPassword`establece una contraseña temporal o permanente y `AdminResetUserPassword` envía a los usuarios un código para restablecer la contraseña de la misma manera que. `ForgotPassword`

### Configuración del restablecimiento y la recuperación de contraseñas
<a name="user-pool-password-reset-and-recovery-configure"></a>

Amazon Cognito selecciona automáticamente las opciones de recuperación de la cuenta entre los atributos necesarios y las opciones de inicio de sesión que elija al crear un grupo de usuarios en la consola. Puede modificar esta configuración predeterminada.

El método de MFA preferido del usuario influye en los métodos que este pueda utilizar para recuperar la contraseña. Los usuarios cuya MFA preferida se realice por mensaje de correo electrónico no pueden recibir un código de restablecimiento de contraseña por correo electrónico. Los usuarios cuya MFA preferida se realice por mensaje SMS no pueden recibir un código de restablecimiento de contraseña por SMS.

La configuración de la [recuperación de contraseñas](#user-pool-password-reset-and-recovery) debe ofrecer una opción alternativa para cuando el usuario no pueda utilizar el método de restablecimiento de contraseña preferido. Por ejemplo, puede darse el caso de que sus mecanismos de recuperación tengan el correo electrónico como primera prioridad y la MFA de correo electrónico puede ser una opción en el grupo de usuarios. Si es así, añada la recuperación de cuentas mediante mensajes SMS como segunda opción o utilice las operaciones administrativas de la API para restablecer las contraseñas para esos usuarios.

Amazon Cognito responde a las solicitudes de restablecimiento de contraseñas de usuarios que no disponen de un método de recuperación válido con una respuesta de error `InvalidParameterException`.

**nota**  
Los usuarios no pueden recibir códigos de MFA y de restablecimiento de contraseña en la misma dirección de correo electrónico o número de teléfono. Si usan contraseñas de un solo uso (OTPs) de los mensajes de correo electrónico para MFA, deben usar mensajes SMS para recuperar la cuenta. Si usan OTPs mensajes SMS para MFA, deben usar mensajes de correo electrónico para recuperar la cuenta. En los grupos de usuarios con MFA, es posible que los usuarios no puedan completar la recuperación automática de contraseñas si tienen atributos para su dirección de correo electrónico, pero no un número de teléfono, o si su número de teléfono no tiene una dirección de correo electrónico.  
Para evitar que los usuarios no puedan restablecer sus contraseñas en los grupos de usuarios con esta configuración, defina los atributos `email` y `phone_number` [según sea necesario](user-pool-settings-attributes.md). Si lo prefiere, puede configurar procesos que siempre recopilen y establezcan esos atributos cuando los usuarios se registren o cuando los administradores creen perfiles de usuario. Cuando los usuarios tienen ambos atributos, Amazon Cognito envía automáticamente códigos de restablecimiento de contraseñas al destino que *no* sea el factor de MFA del usuario.

El siguiente procedimiento configura la recuperación automática de cuentas en un grupo de usuarios.

------
#### [ Configure self-service password reset (API/SDK) ]

El `AccountRecoverySetting` parámetro es el parámetro del grupo de usuarios que establece los métodos que los usuarios pueden usar para recuperar su contraseña en las solicitudes de la [ForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ForgotPassword.html)API o cuando seleccionan **¿Ha olvidado su contraseña?** en un inicio de sesión gestionado. `ForgotPassword`envía un código de recuperación a un correo electrónico verificado o a un número de teléfono verificado. El código de recuperación es válido durante una hora. Cuando especifica un [AccountRecoverySetting](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AccountRecoverySettingType.html) para su grupo de usuarios, Amazon Cognito elige el destino de entrega del código en función de la prioridad establecida.

Cuando se define `AccountRecoverySetting` y un usuario tiene la MFA con SMS configurada, el SMS no se puede utilizar como mecanismo de recuperación de la cuenta. La prioridad de esta configuración se determina teniendo en cuenta que `1` representa la prioridad más alta. Amazon Cognito envía una verificación solo a uno de los métodos especificados. En el siguiente ejemplo, `AccountRecoverySetting` establece las direcciones de correo electrónico como destino principal de los códigos de recuperación de cuentas, y se recurre a los mensajes SMS si el usuario no tiene un atributo de dirección de correo electrónico.

```
"AccountRecoverySetting": { 
   "RecoveryMechanisms": [ 
      { 
         "Name": "verified_email",
         "Priority": 1
      },
      { 
         "Name": "verified_phone_number",
         "Priority": 2
      }
   ]
}
```

El valor `admin_only` desactiva la recuperación automática de cuentas y les pide a los usuarios que se pongan en contacto con su administrador para restablecer la contraseña. No se puede utilizar `admin_only` con ningún otro mecanismo de recuperación de la cuenta. El siguiente e

```
"AccountRecoverySetting": { 
   "RecoveryMechanisms": [ 
      { 
         "Name": "admin_only",
         "Priority": 1
      }
   ]
}
```

Si no especifica `AccountRecoverySetting`, Amazon Cognito envía primero el código de recuperación a un número de teléfono verificado y a una dirección de correo electrónico verificada si los usuarios no tienen un atributo de número de teléfono.

Para obtener más información sobre `AccountRecoverySetting`, consulte [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) y [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html).

------
#### [ Configure self-service password reset (console) ]

Configure las opciones de recuperación de cuentas y restablecimiento de contraseñas en el menú **Inicio de sesión** de su grupo de usuarios.

**Cómo configurar la recuperación de cuentas de usuario**

1. Inicie sesión en la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Elija **User Pools** (Grupos de usuarios).

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Seleccione el menú **Inicio de sesión**. Busque la **Recuperación de cuenta de usuario** y seleccione **Editar**

1. Para permitir a los usuarios restablecer sus propias contraseñas, seleccione **Habilitar la recuperación automática de cuentas**.

1. Configure el método de entrega de los códigos de recuperación de contraseñas que el grupo de usuarios envía a los usuarios. En **Método de entrega para los mensajes de recuperación de cuentas de usuario**, seleccione una opción disponible. Como práctica recomendada, elija una opción que tenga un método secundario para el envío de mensajes, como **Correo electrónico si está disponible, de lo contrario, SMS**. Con un método de entrega secundario, Amazon Cognito puede enviar códigos a los usuarios de una forma que les obligue a utilizar un medio de restablecimiento de contraseñas diferente al de la MFA.

1. Seleccione **Guardar cambios**.

------

### Comportamiento de contraseña olvidada
<a name="forgot-password"></a>

En una hora determinada, permitimos que un usuario intente entre 5 y 20 intentos para solicitar o introducir un código de restablecimiento de contraseña como parte de una acción relacionada con la contraseña olvidada y otras acciones. confirm-forgot-password El valor exacto depende de los parámetros de riesgo asociados con las solicitudes. Tenga en cuenta que este comportamiento está sujeto a cambios. 

## Adición de requisitos de contraseña para los grupos de usuarios
<a name="user-pool-settings-policies"></a>

Las contraseñas complejas y seguras son una práctica recomendada de seguridad para los grupos de usuarios. Las contraseñas poco seguras, especialmente en el caso de las aplicaciones que están abiertas a Internet, pueden exponer las credenciales de los usuarios a sistemas que las adivinen e intenten acceder a los datos. Cuanto más compleja sea la contraseña, más difícil será adivinarla. Amazon Cognito cuenta con herramientas adicionales para los administradores preocupados por la seguridad, como la [protección contra amenazas](cognito-user-pool-settings-threat-protection.md#cognito-user-pool-settings-threat-protection.title) y la [AWS WAF web ACLs](user-pool-waf.md#user-pool-waf.title), pero su política de contraseñas es un elemento central de la seguridad de su directorio de usuarios.

Las contraseñas de los usuarios locales de los grupos de usuarios de Amazon Cognito no caducan automáticamente. Como práctica recomendada, registre la hora, la fecha y los metadatos de restablecimiento de las contraseñas de los usuarios en un sistema externo. Con un registro externo de la antigüedad de las contraseñas, su aplicación o un desencadenador de Lambda pueden buscar la antigüedad de la contraseña de un usuario y requerir que se restablezca después de un período de tiempo determinado.

Puede configurar el grupo de usuarios para que la complejidad mínima de la contraseña cumpla los estándares de seguridad. Las contraseñas complejas deben tener una longitud mínima de ocho caracteres. También incluyen una combinación de caracteres numéricos, especiales y en mayúsculas.

Con los niveles de características Essentials o Plus, también puede establecer una política de reutilización de contraseñas. Puede impedir que un usuario restablezca su contraseña por una nueva que coincida con la contraseña actual o cualquiera de las 23 contraseñas anteriores adicionales, de un total de 24 como máximo.

**Para restablecer una política de contraseñas de grupo de usuarios**

1. Cree un grupo de usuarios y vaya al paso **Configurar los requisitos de seguridad**, o acceda a un grupo de usuarios existente y vaya al menú **Métodos de autenticación**.

1. Vaya a **Política de contraseñas**.

1. Seleccione **Modo de política de contraseñas**. **Valores predeterminados de Cognito** configura su grupo de usuarios con la configuración mínima recomendada. También puede elegir una política de contraseñas **personalizada**.

1. Establezca una **Longitud mínima de la contraseña**. Todos los usuarios deben registrarse o crearse con una contraseña cuya longitud sea mayor o igual a este valor. Puede establecer este valor mínimo en 99, pero sus usuarios pueden establecer contraseñas de hasta 256 caracteres.

1. Configure las reglas de complejidad de las contraseñas en **Requisitos de contraseña**. Elija los tipos de caracteres (números, caracteres especiales, letras mayúsculas y minúsculas) que desee incluir, uno como mínimo, en la contraseña de cada usuario.

   Puede exigir al menos uno de los siguientes caracteres en las contraseñas. Una vez que Amazon Cognito compruebe que las contraseñas contienen los caracteres mínimos necesarios, las contraseñas de los usuarios pueden contener caracteres adicionales de cualquier tipo hasta alcanzar la longitud máxima de la contraseña.
   + Letras del alfabeto [latino básico](https://en.wikipedia.org/wiki/ISO_basic_Latin_alphabet) en mayúsculas y minúsculas
   + Números
   + Los siguientes caracteres especiales.

     ```
     ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~ ` = + - 
     ```
   + Caracteres sin espacios al principio ni al final.

1. Establezca un valor para **Contraseñas temporales establecidas por los administradores que caducan en**. Transcurrido este periodo, un nuevo usuario que haya creado en la consola de Amazon Cognito o con `AdminCreateUser` no podrá iniciar sesión ni establecer una contraseña nueva. Después de iniciar sesión con su contraseña temporal, sus cuentas de usuario nunca caducan. Para actualizar la duración de la contraseña en la API de grupos de usuarios de Amazon Cognito, defina un valor para [TemporaryPasswordValidityDays ](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_PasswordPolicyType.html#CognitoUserPools-Type-PasswordPolicyType-TemporaryPasswordValidityDays)su solicitud [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)de [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API.

1. Establezca un valor para **Impedir el uso de contraseñas anteriores**, si está disponible. Para utilizar esta característica, elija el [nivel de características](cognito-sign-in-feature-plans.md) Essentials o Plus en el grupo de usuarios. El valor de este parámetro es el número de contraseñas anteriores que no deben ser iguales a la nueva contraseña cuando un usuario restablece esta última.

Para restablecer el acceso de una cuenta de usuario caducada, realice una de las siguientes acciones:
+ Envíe una nueva contraseña temporal y restablezca el período de caducidad con una solicitud de [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html)API que se haya `MessageAction` establecido en. `RESEND`
+ Elimine el perfil de usuario y cree uno nuevo.
+ Genera un nuevo código de confirmación en una solicitud de [AdminResetUserPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html)API.

# Importación de usuarios a un grupo de usuarios
<a name="cognito-user-pools-import-users"></a>

Existen dos formas de importar o migrar usuarios del directorio de usuarios o de la base de datos de usuarios a los grupos de usuarios Amazon Cognito. Puede migrar usuarios cuando inician sesión por primera vez mediante Amazon Cognito con un desencadenador de Lambda para la migración de usuarios. Con este método, los usuarios pueden seguir usando sus contraseñas y no es necesario restablecerlas tras la migración al grupo de usuarios. También puede migrar los usuarios de forma masiva cargando un archivo CSV que contiene los atributos del perfil de usuario de todos los usuarios. En las secciones siguientes se describen estos dos métodos.

**Más recursos**
+ [Approaches for migrating users to Amazon Cognito user pools](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)
+ [AWS Re:inForce 2023 - Migración a Amazon Cognito](https://www.youtube.com/watch?v=OkDj9uXWwCc)

**Topics**
+ [Importación de usuarios con un desencadenador de Lambda para la migración de usuarios](cognito-user-pools-import-using-lambda.md)
+ [Importación de usuarios en grupos de usuarios desde un archivo CSV](cognito-user-pools-using-import-tool.md)

# Importación de usuarios con un desencadenador de Lambda para la migración de usuarios
<a name="cognito-user-pools-import-using-lambda"></a>

Con este enfoque, puede migrar sin problemas usuarios desde el directorio de usuarios existente a grupos de usuarios cuando un usuario inicia sesión con la aplicación o solicita un restablecimiento de la contraseña por primera vez. Agregue una función [Migración del desencadenador de Lambda del usuario](user-pool-lambda-migrate-user.md) a su grupo de usuarios, y este recibe metadatos sobre los usuarios que intentan iniciar sesión y devuelve información del perfil de usuario de un origen de identidad externo. Para obtener detalles y un ejemplo de código sobre este desencadenador de Lambda, incluidos los parámetros de solicitud y respuesta, consulte [Parámetros del desencadenador de Lambda para migrar usuarios](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration).

Antes de comenzar el proceso de migración de usuarios, cree una función de Lambda para migrar usuarios en su Cuenta de AWS y defina la función de Lambda como el desencadenador de migración del usuario en el grupo de usuarios. Agregue una política de autorización a su función de Lambda que permita acceder únicamente a la entidad principal de la cuenta del servicio de Amazon Cognito, `cognito-idp.amazonaws.com`, para invocar a la función de Lambda y solo en el contexto de su propio grupo de usuarios. Para obtener más información, consulte [Uso de políticas basadas en recursos para Lambda de AWS Lambda (políticas de funciones de Lambda)](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html). 

**Proceso de inicio de sesión**

1. El usuario abre la aplicación e inicia sesión con la API de grupos de usuarios de Amazon Cognito o el inicio de sesión administrado. Para obtener más información sobre cómo facilitar el inicio de sesión con Amazon APIs Cognito, consulte. [Integración de la autenticación y la autorización de Amazon Cognito con aplicaciones web y móviles](cognito-integrate-apps.md)

1. La aplicación envía el nombre de usuario y la contraseña a Amazon Cognito. Si su aplicación tiene una interfaz de inicio de sesión personalizada que creó con un AWS SDK, debe usar [InitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)o [AdminInitiateAuth](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminInitiateAuth.html)con el `USER_PASSWORD_AUTH` flujo o. `ADMIN_USER_PASSWORD_AUTH` Cuando la aplicación utiliza uno de estos flujos, el SDK envía la contraseña al servidor.
**nota**  
Antes de agregar un desencadenador de migración de usuarios, active el flujo `USER_PASSWORD_AUTH` o `ADMIN_USER_PASSWORD_AUTH` en la configuración del cliente de la aplicación. Debe utilizar estos flujos en lugar del flujo predeterminado `USER_SRP_AUTH`. Amazon Cognito debe enviar una contraseña a la función de Lambda para que pueda verificar la autenticación de su usuario en el otro directorio. Un SRP oculta la contraseña de usuario de la función de Lambda.

1. Amazon Cognito comprueba si el nombre de usuario enviado coincide con un nombre de usuario o un alias del grupo de usuarios. Puede configurar la dirección de correo electrónico, el número de teléfono o el nombre de usuario preferido como alias en el grupo de usuarios. Si el usuario no existe, Amazon Cognito envía parámetros, incluidos el nombre de usuario y la contraseña, a la función [Migración del desencadenador de Lambda del usuario](user-pool-lambda-migrate-user.md).

1. La función [Migración del desencadenador de Lambda del usuario](user-pool-lambda-migrate-user.md) comprueba o autentica al usuario con el directorio o la base de datos de usuarios existente. La función devuelve los atributos de usuario que Amazon Cognito almacena en el perfil del usuario en el grupo de usuarios. Puede devolver un parámetro `username` solo si el nombre de usuario enviado coincide con un atributo de alias. Si desea que los usuarios puedan seguir usando las contraseñas existentes, la función establece el atributo `finalUserStatus` en `CONFIRMED` en la respuesta de Lambda. Su aplicación debe devolver todos los parámetros `"response"` mostrados en [Parámetros del desencadenador de Lambda para migrar usuarios](user-pool-lambda-migrate-user.md#cognito-user-pools-lambda-trigger-syntax-user-migration).
**importante**  
No registre todo el objeto de evento de solicitud en el código de Lambda de migración de usuarios. Este objeto de evento de solicitud incluye la contraseña del usuario. Si no desinfectas los registros, las contraseñas aparecen en los registros. CloudWatch 

1. Amazon Cognito crea el perfil de usuario en el grupo de usuarios y devuelve los tokens al cliente de aplicación.

1. La aplicación admite los tokens, acepta la autenticación de usuarios y procede con el contenido solicitado.

Después de migrar a los usuarios, utilice `USER_SRP_AUTH` para iniciar sesión. El protocolo Secure Remote Password (SRP) no envía la contraseña a través de la red y ofrece beneficios de seguridad con respecto al flujo `USER_PASSWORD_AUTH` utilizado durante la migración.

Si se producen errores durante la migración, incluidos problemas con el dispositivo del cliente o con la red, la aplicación recibe respuestas de error de la API de grupos de usuarios de Amazon Cognito. Cuando esto ocurre, es posible que Amazon Cognito cree o no la cuenta de usuario en el grupo de usuarios. El usuario debería intentar iniciar sesión de nuevo. Si el inicio de sesión falla repetidamente, intente restablecer la contraseña del usuario con el flujo de recuperación de contraseñas olvidadas de la aplicación. 

El flujo de recuperación de contraseñas olvidadas también invoca a la función [Migración del desencadenador de Lambda del usuario](user-pool-lambda-migrate-user.md) con un origen de eventos `UserMigration_ForgotPassword`. Dado que el usuario no envía una contraseña cuando solicita un restablecimiento de contraseña, Amazon Cognito no incluye ninguna contraseña en caso de que se envíe a la función de Lambda. La función solo puede buscar al usuario en el directorio de usuarios existente y devolver atributos para agregarlos al perfil de usuarios en el grupo de usuarios. Cuando la función completa la invocación y devuelve su respuesta a Amazon Cognito, el grupo de usuarios envía un código de restablecimiento de contraseña por correo electrónico o SMS. En su aplicación, solicite al usuario su código de confirmación y una nueva contraseña y, a continuación, envíe esa información a Amazon Cognito en una solicitud de [ConfirmForgotPassword](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ConfirmForgotPassword.html)API. Puede también utilizar páginas integradas para el flujo de contraseña olvidada en el inicio de sesión administrado.

**Recursos adicionales**
+ [Approaches for migrating users to Amazon Cognito user pools](https://aws.amazon.com/blogs/security/approaches-for-migrating-users-to-amazon-cognito-user-pools/)

# Importación de usuarios en grupos de usuarios desde un archivo CSV
<a name="cognito-user-pools-using-import-tool"></a>

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](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passwordless) 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 por correo electrónico o SMS (OTPs) 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](#cognito-user-pools-using-import-tool-password-reset).

También puede establecer las contraseñas de sus usuarios con una solicitud a la API [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html) que establezca el parámetro `Permanent` en `true`. La importación de archivos CSV no contribuye a los usuarios activos (MAUs) que se facturan mensualmente en tu grupo de usuarios. Sin embargo, sí se generan operaciones de restablecimiento de contraseñas. MAUs 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 Amazon CloudWatch Logs en la consola AWS Identity and Access Management (IAM).

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

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

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

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

1. Se utiliza CloudWatch para comprobar el registro de eventos.

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

**Más recursos**
+ [Arquitectura de referencia de exportación de perfiles de usuario de Cognito](https://aws.amazon.com/solutions/implementations/cognito-user-profiles-export-reference-architecture/) para exportar cuentas de usuario entre grupos de usuarios

**Topics**
+ [Crear la función de IAM de CloudWatch registros](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role)
+ [Creación del archivo CSV de importación de usuarios](#cognito-user-pools-using-import-tool-csv-header)
+ [Creación y ejecución del trabajo de importación del grupo de usuarios de Amazon Cognito](#cognito-user-pools-creating-import-job)
+ [Ver los resultados de importación del grupo de usuarios en la CloudWatch consola](#cognito-user-pools-using-import-tool-cloudwatch)
+ [Obligación de que los usuarios importados restablezcan sus contraseñas](#cognito-user-pools-using-import-tool-password-reset)

## Crear la función de IAM de CloudWatch registros
<a name="cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role"></a>

Si utiliza la CLI o la API de Amazon Cognito, debe crear un rol de CloudWatch IAM. El siguiente procedimiento describe cómo crear un rol de IAM que Amazon Cognito pueda usar para escribir los resultados del trabajo CloudWatch de importación en 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 la función de IAM de CloudWatch registros para la importación de grupos de usuarios (API)AWS CLI**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) 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.

   1. En la pantalla **Add permissions** (Agregar permisos), elija **Create policy** (Crear política) e inserte la siguiente declaración de política. *REGION*Reemplácelo por el Región de AWS de su grupo de usuarios, por ejemplo`us-east-1`. *ACCOUNT*Sustitúyalo por tu Cuenta de AWS ID, 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/*"
                  ]
              }
          ]
      }
      ```

------

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

1. Seleccione la pestaña **Relaciones de confianza**.

1. Elija **Editar la política de confianza**.

1. 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"
               }
           ]
       }
   ```

------

1. Elija **Actualizar política**. 

1. 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
<a name="cognito-user-pools-using-import-tool-csv-header"></a>

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](#cognito-user-pools-using-import-tool-formatting-csv-file). 

### Descarga del encabezado del archivo CSV (consola)
<a name="cognito-user-pools-using-import-tool-downloading-csv-header-console"></a>

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

**Para descargar el encabezado de archivo CSV**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Es posible que se le pidan sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Usuarios**.

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

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

### Descarga del encabezado del archivo CSV (AWS CLI)
<a name="cognito-user-pools-using-import-tool-downloading-csv-header-using-cli"></a>

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 el siguiente comando CLI, donde *USER\$1POOL\$1ID* se encuentra el identificador del grupo de usuarios al que va a 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
<a name="cognito-user-pools-using-import-tool-formatting-csv-file"></a>

 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](user-pool-settings-attributes.md).
+ 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\$1verified** o **phone\$1number\$1verified**
    + 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\$1verified** o **phone\$1number\$1verified**. 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\$1number** como un atributo verificado automáticamente, el valor **phone\$1number\$1verified** 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](signing-up-users-in-your-app.md#allowing-users-to-sign-up-and-confirm-themselves).
  + **email** (si **email\$1verified** es `true`)
  + **phone\$1number** (si **phone\$1number\$1verified** 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 (\$1). 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 de la **fecha de nacimiento**, si están presentes, deben estar en ese formato **mm/dd/yyyy**. Esto significa, por ejemplo, que la fecha de nacimiento 1 de febrero de 1985 debe codificarse como **02/01/1985**.
+ El campo **cognito:mfa\$1enabled** 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\$1at** (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
<a name="cognito-user-pools-creating-import-job"></a>

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 el AWS Command Line Interface ()AWS CLI.

**Topics**
+ [Importación de usuarios desde un archivo CSV (consola)](#cognito-user-pools-using-import-tool-console)
+ [Importación de usuarios (AWS CLI)](#cognito-user-pools-using-import-tool-cli)

### Importación de usuarios desde un archivo CSV (consola)
<a name="cognito-user-pools-using-import-tool-console"></a>

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. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home). Es posible que se le pidan sus AWS credenciales.

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Usuarios**.

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

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

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

   1. 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 [Crear la función de IAM de CloudWatch registros](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role).

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

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

1. 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 puedes enviar una solicitud de [StartUserImportJob](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_StartUserImportJob.html)API desde un AWS SDK.

1. 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 información, selecciona **Ver los CloudWatch registros para obtener más información** y consulta cualquier problema en la consola de CloudWatch registros.

### Importación de usuarios (AWS CLI)
<a name="cognito-user-pools-using-import-tool-cli"></a>

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
<a name="cognito-user-pools-using-import-tool-cli-creating-user-import-job"></a>

Después de crear el archivo CSV, cree un trabajo de importación de usuarios ejecutando el siguiente comando CLI, donde *JOB\$1NAME* es el nombre que va a elegir para el trabajo, *USER\$1POOL\$1ID* es el ID del grupo de usuarios del grupo de usuarios al que se agregarán los nuevos usuarios y *ROLE\$1ARN* es el ARN de rol que recibió: [Crear la función de IAM de CloudWatch registros](#cognito-user-pools-using-import-tool-cli-cloudwatch-iam-role) 

```
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 *PRE\$1SIGNED\$1URL* valor 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.

**Example 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
<a name="cognito-user-pools-using-import-tool-cli-status-values-for-user-import-job"></a>

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
<a name="cognito-user-pools-using-import-tool-cli-uploading-csv-file"></a>

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
<a name="cognito-user-pools-using-import-tool-cli-describing-user-import-job"></a>

Para obtener una descripción del trabajo de importación de usuarios, utilice el siguiente comando, donde *USER\$1POOL\$1ID* está el ID del grupo de usuarios y *JOB\$1ID* el ID del trabajo que se devolvió 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"
```

**Example 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\$1SIGNED\$1URL* es la URL en la que cargó el archivo CSV. *ROLE\$1ARN*Es el ARN del rol de CloudWatch registros que recibió al crear el rol.

#### Visualización de la lista de trabajos de importación de usuarios
<a name="cognito-user-pools-using-import-tool-cli-listing-user-import-jobs"></a>

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
```

**Example 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 *PAGINATION\$1TOKEN* cadena que sigue al segundo trabajo indica que hay resultados adicionales para este comando de lista. 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
<a name="cognito-user-pools-using-import-tool-cli-starting-user-import-job"></a>

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.

**Example 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
<a name="cognito-user-pools-using-import-tool-cli-stopping-user-import-job"></a>

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"
```

**Example 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
    }
}
```

## Ver los resultados de importación del grupo de usuarios en la CloudWatch consola
<a name="cognito-user-pools-using-import-tool-cloudwatch"></a>

Puedes ver los resultados de tu trabajo de importación en la CloudWatch consola de Amazon.

**Topics**
+ [Visualización de los resultados](#cognito-user-pools-using-import-tool-viewing-the-results)
+ [Interpretación de los resultados](#cognito-user-pools-using-import-tool-interpreting-the-results)

### Visualización de los resultados
<a name="cognito-user-pools-using-import-tool-viewing-the-results"></a>

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. Inicia sesión en Consola de administración de AWS y abre la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleccione **Logs** (Registros).

1. 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`.

1. Elija el log de el trabajo de importación de usuarios que acaba de ejecutar. El nombre del registro tiene el formato*JOB\$1ID*/*JOB\$1NAME*. 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
<a name="cognito-user-pools-using-import-tool-interpreting-the-results"></a>

Los usuarios importados correctamente tienen 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á:
+ El rol de Amazon CloudWatch Logs no se puede asumir, 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
<a name="cognito-user-pools-using-import-tool-password-reset"></a>

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.

1. 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](authentication.md).

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.

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

1. 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`.

   1. 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](signing-up-users-in-your-app.md).

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

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

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

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

# Uso de atributos de usuario
<a name="user-pool-settings-attributes"></a>

Los atributos son fragmentos de información de usuarios individuales, como su nombre, la dirección de correo electrónico o su número de teléfono, que ayudan a identificarlos. Los grupos de usuarios nuevos tienen un conjunto de *atributos estándar* predeterminados. También puede añadir atributos personalizados a la definición de su grupo de usuarios en Consola de administración de AWS. En este tema se describen estos atributos en detalle y se le ofrecen consejos sobre cómo configurar el grupo de usuarios.

No almacene toda la información de los usuarios en atributos. Por ejemplo, guarda los datos de los usuarios que cambien con frecuencia, como las puntuaciones en juegos o las estadísticas de uso, en un almacén de datos independiente, como Amazon Cognito Sync o Amazon DynamoDB.

Desinfecte las entradas de los valores de cadena de atributos de usuario antes de enviarlos a su grupo de usuarios. Un método para analizar los valores de los atributos de usuario propuestos es emplear un desencadenador de Lambda, como [Antes del registro](user-pool-lambda-pre-sign-up.md).

**nota**  
Algunos documentos y estándares hacen referencia a los atributos como *miembros*.

**Topics**
+ [Atributos estándar](#cognito-user-pools-standard-attributes)
+ [Nombres de usuario y nombres de usuario preferidos](#user-pool-settings-usernames)
+ [Personalización de los atributos de inicio de sesión](#user-pool-settings-aliases)
+ [Custom attributes (Atributos personalizados)](#user-pool-settings-custom-attributes)
+ [Permisos y ámbitos de los atributos](#user-pool-settings-attribute-permissions-and-scopes)

## Atributos estándar
<a name="cognito-user-pools-standard-attributes"></a>

Amazon Cognito asigna a todos los usuarios un conjunto de atributos estándar en función de la [OpenID Connect specification](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). De forma predeterminada, los valores de atributo estándar y personalizados pueden tener un máximo de 2048 caracteres, aunque algunos valores de atributo tienen restricciones de formato. 

Los atributos estándar son:
+ `name`
+ `family_name`
+ `given_name`
+ `middle_name`
+ `nickname`
+ `preferred_username`
+ `profile`
+ `picture`
+ `website`
+ `gender`
+ `birthdate`
+ `zoneinfo`
+ `locale`
+ `updated_at`
+ `address`
+ `email`
+ `phone_number`
+ `sub`

A excepción de `sub`, los atributos estándar son opcionales de forma predeterminada para todos los usuarios. Para que un atributo sea obligatorio, durante el proceso de creación del grupo de usuarios, seleccione la**Obligatorio**La casilla de verificación situada junto al atributo. Amazon Cognito asigna un valor de identificador de usuario único al atributo `sub` de cada usuario. Solo se pueden verificar los atributos **email** y **phone\$1number**.

Los atributos estándar tienen propiedades predefinidas que puede ver en el `SchemaAttributes` parámetro de una [respuesta de la DescribeUserPool API](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html#API_DescribeUserPool_ResponseSyntax). Puede establecer valores personalizados para estas propiedades de atributo, como el tipo de datos, la mutabilidad o las restricciones de longitud. Para modificar las propiedades de los atributos estándar, defina sus valores personalizados en el [parámetro CreateUserPool Schema](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-Schema). En este parámetro también debe configurar los atributos necesarios. Las propiedades de los atributos estándar no se pueden modificar al crear grupos de usuarios en la consola de Amazon Cognito.

**nota**  
 Cuando un atributo estándar se marca como **Required** (Obligatorio), el usuario no puede registrarse, salvo que indique un valor para el atributo. Para crear usuarios y no proporcionar valores para los atributos obligatorios, los administradores pueden usar la [AdminCreateUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminCreateUser.html)API. Después de crear un grupo de usuarios, no puede cambiar un atributo de obligatorio a no obligatorio y viceversa.Detalles de atributos estándar y restricciones de formato

**birthdate**  
El valor debe ser una fecha válida de 10 caracteres en el formato YYYY-MM-DD.

**correo electrónico**  
Los usuarios y los administradores pueden verificar los valores de las direcciones de correo electrónico.  
Un administrador con Cuenta de AWS los permisos adecuados puede cambiar la dirección de correo electrónico del usuario y también marcarla como verificada. Marca una dirección de correo electrónico como verificada con la [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API o el comando [admin-update-user-attributes](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-user-attributes.html) AWS Command Line Interface (AWS CLI). Este comando permite al administrador cambiar el atributo `email_verified` a `true`. También puede editar un usuario en el menú **Usuarios** de la consola de Amazon Cognito para marcar una dirección de correo electrónico como verificada.  
El valor debe ser una [cadena de dirección de correo electrónico válida](https://datatracker.ietf.org/doc/html/rfc3696#section-3) que siga el formato de correo electrónico estándar con el símbolo @ y el dominio, con una longitud máxima de 2048 caracteres.

**phone\$1number**  
Si la autenticación multifactor (MFA) por SMS está activa, el usuario debe proporcionar un número de teléfono. Para obtener más información, consulte [Adición de MFA a un grupo de usuarios.](user-pool-settings-mfa.md).  
Los usuarios y los administradores pueden verificar los valores de números de teléfono.  
Un administrador con Cuenta de AWS los permisos adecuados puede cambiar el número de teléfono del usuario y también marcarlo como verificado. Marca un número de teléfono como verificado con la [AdminUpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html)API o el [admin-update-user-attributes](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/admin-update-user-attributes.html) AWS CLI comando. Este comando permite al administrador cambiar el atributo `phone_number_verified` a `true`. También puede editar un usuario en el menú **Usuarios** de la consola de Amazon Cognito para marcar un número de teléfono como verificado.  
Los números de teléfono deben cumplir con las reglas de formato siguientes: deben comenzar por un signo más (**\$1**) seguido inmediatamente por el código de país. Un número de teléfono solo puede contener el signo **\$1** y dígitos. Elimine cualquier otro carácter dentro del número de teléfono como, por ejemplo, paréntesis, espacios o guiones (**-**) antes de enviar el valor al servicio. Por ejemplo, un número de teléfono de Estados Unidos debe tener este formato: **\$114325551212**.

**preferred\$1username**  
Puede seleccionar `preferred_username` según sea necesario o como alias, pero no ambas opciones. Si `preferred_username` se trata de un alias, puedes realizar una solicitud a la operación de la [UpdateUserAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserAttributes.html)API y añadir el valor del atributo después de confirmar al usuario.

**sub**  
Indexe y busque los usuarios en función del atributo `sub`. El atributo `sub` es un identificador de usuario único dentro de cada grupo de usuarios. Los usuarios pueden cambiar atributos como `phone_number` y `email`. El atributo `sub` tiene un valor fijo. Para obtener más información sobre cómo encontrar a los usuarios, consulte [Gestión y búsqueda de cuentas de usuario](how-to-manage-user-accounts.md).

### Ver atributos obligatorios
<a name="how-to-edit-standard-attributes"></a>

Utilice el siguiente procedimiento para ver los atributos obligatorios de un grupo de usuarios determinado.

**nota**  
No puede cambiar los atributos obligatorios una vez que se haya creado el grupo de usuarios.

**Para ver los atributos obligatorios**

1. Vaya a [Amazon Cognito](https://console.aws.amazon.com/cognito/home) en. Consola de administración de AWS Si la consola se lo pide, introduzca sus credenciales. AWS 

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Registro**.

1. Consulte en la sección **Atributos obligatorios** qué atributos son obligatorios en el grupo de usuarios.

## Nombres de usuario y nombres de usuario preferidos
<a name="user-pool-settings-usernames"></a>

El valor `username` es un atributo independiente y no es el mismo que el del atributo `name`. Cada usuario tiene un atributo `username`. Amazon Cognito genera automáticamente un nombre de usuario para los usuarios federados. Debe proporcionar un atributo `username` para crear un usuario local en el directorio de Amazon Cognito. Después de crear un usuario, no puede cambiar el valor del atributo `username`.

Los desarrolladores pueden utilizar el atributo `preferred_username` para dar a los usuarios un nombre de usuario que estos puedan cambiar. Para obtener más información, consulte [Personalización de los atributos de inicio de sesión](#user-pool-settings-aliases).

Si la aplicación no exige un nombre de usuario, no tiene que pedir al usuario que proporcione uno. La aplicación puede crear un nombre de usuario único para los usuarios en segundo plano. Esto es útil si, por ejemplo, quiere que los usuarios se registren e inicien sesión con una dirección de correo electrónico y una contraseña. Para obtener más información, consulte [Personalización de los atributos de inicio de sesión](#user-pool-settings-aliases).

El `username` debe ser único en el grupo de usuarios. Si bien los valores `username` pueden volver a utilizarse, solo es posible hacerlo después de haberse eliminado y ya no se estén usando. Para obtener información sobre las restricciones de cadena de los `username` atributos, consulta la propiedad *username* de una solicitud de [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username)API.

## Personalización de los atributos de inicio de sesión
<a name="user-pool-settings-aliases"></a>

Al crear un grupo de usuarios, puede configurar los *atributos de nombre de usuario* si desea que los usuarios puedan registrarse e iniciar sesión con una dirección de correo electrónico o un número de teléfono como nombre de usuario. También puede establecer *atributos de alias* para dar a los usuarios la opción de incluir varios atributos cuando se registren y, a continuación, iniciar sesión con un nombre de usuario, un nombre de usuario preferido, una dirección de correo electrónico o un número de teléfono.

**importante**  
Una vez que se haya creado el grupo de usuarios, no se podrá cambiar esta opción.

### Cómo elegir entre atributos de alias y atributos de nombre de usuario
<a name="user-pool-settings-aliases-settings"></a>


| Su requisito | Atributos de alias | Atributos de nombre de usuario | 
| --- |--- |--- |
| Los usuarios tienen varios atributos de inicio de sesión | Sí¹ | No² | 
| Los usuarios deben verificar la dirección de correo electrónico o el número de teléfono antes de poder iniciar sesión con ellos | Sí | No | 
| Registra a los usuarios con direcciones de correo electrónico o números de teléfono duplicados y evita UsernameExistsException errores³ | Sí | No | 
| Puede asignar el mismo valor de atributo de dirección de correo electrónico o número de teléfono a más de un usuario | Sí⁴ | No | 

¹ Los atributos de inicio de sesión disponibles son: nombre de usuario, dirección de correo electrónico, número de teléfono y nombre de usuario preferido.

² Pueden iniciar sesión con la dirección de correo electrónico o con el número de teléfono.

³ El grupo de usuarios no genera errores `UsernameExistsException` cuando los usuarios se registran con direcciones de correo electrónico o números de teléfono potencialmente duplicados, pero sin nombre de usuario. Este comportamiento es independiente de **Evite errores de existencia del nombre de usuario**, que se aplica a las operaciones de inicio de sesión, pero no a las de registro.

⁴ Solo el último usuario que haya verificado el atributo podrá iniciar sesión con él.

#### Opción 1: múltiples atributos de inicio de sesión (atributos de alias)
<a name="user-pool-settings-aliases-settings-option-1"></a>

Un atributo es un *alias* cuando los usuarios tienen un nombre de usuario, pero también pueden iniciar sesión con ese atributo. Cree los alias si quiere que los usuarios tengan la opción de elegir entre el nombre de usuario y otros valores de atributos en el campo de nombre de usuario del formulario de inicio de sesión. El atributo `username` es un valor fijo que los usuarios no pueden cambiar. Si marca un atributo como alias, los usuarios pueden iniciar sesión con dicho atributo en vez de usar el nombre de usuario. Los atributos de dirección de correo electrónico, número de teléfono y nombre de usuario preferido pueden marcarse como alias. Por ejemplo, si el correo electrónico y el teléfono se seleccionan como alias de un grupo de usuarios, los usuarios de dicho grupo de usuarios pueden iniciar sesión utilizando el nombre de usuario, la dirección de correo electrónico o el número de teléfono, junto con la contraseña.

Para elegir los atributos de alias, seleccione **User name** (Nombre de usuario) y al menos una opción de inicio de sesión adicional al crear su grupo de usuarios.

**nota**  
Cuando configura el grupo de usuarios para que no tenga en cuenta el uso de mayúsculas o minúsculas, un usuario puede usar minúsculas o mayúsculas al registrarse o iniciar sesión con su alias. Para obtener más información, consulte la [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)referencia de la *API de grupos de usuarios de Amazon Cognito*.

Si selecciona la dirección de correo electrónico como alias, Amazon Cognito no aceptará un nombre de usuario que coincida con un formato de dirección de correo electrónico válido. Del mismo modo, si selecciona el número de teléfono como alias, Amazon Cognito no aceptará un nombre de usuario para ese grupo de usuarios que coincida con un formato de número de teléfono válido.

**nota**  
Los valores de alias tienen que ser únicos en un grupo de usuarios. Si se configura un alias para una dirección de correo electrónico o un número de teléfono, el valor proporcionado puede estar en estado verificado solo en una cuenta. Durante el registro, si el usuario proporciona una dirección de correo electrónico o un número de teléfono como valor de alias y otro usuario ya ha utilizado ese valor de alias, el registro se realiza correctamente. No obstante, cuando el usuario intente confirmar la cuenta con ese correo electrónico (o ese número de teléfono) y especifique el código válido, devolverá un error `AliasExistsException`. El error indica al usuario que ya existe una cuenta con ese correo electrónico (o ese número de teléfono). En este punto, el usuario puede desistir de crear una cuenta nueva e intentar restablecer la contraseña de la cuenta antigua. Si el usuario sigue creando la cuenta nueva, la aplicación debe llamar a la API de `ConfirmSignUp` con la opción `forceAliasCreation`. `ConfirmSignUp` con `forceAliasCreation` pasa el alias de la cuenta anterior a la cuenta recién creada y marca el atributo como no verificado en la cuenta anterior.

Los números de teléfono y las direcciones de correo electrónico pasan a ser alias activos de los usuarios únicamente cuando estos verifican los números de teléfono y las direcciones de correo electrónico. Recomendamos que elija la verificación automática de las direcciones de correo electrónico y los números de teléfono si los usa como alias.

Elija atributos de alias para evitar errores `UsernameExistsException` en los atributos de dirección de correo electrónico y número de teléfono cuando sus usuarios se registren.

Active el atributo `preferred_username` para que el usuario pueda cambiar el nombre de usuario que utiliza para iniciar sesión mientras su valor de atributo `username` no cambie. Si desea habilitar esta experiencia de usuario, envíe el nuevo valor de `username` como `preferred_username` y elija `preferred_username` como alias. Esto permitirá a los usuarios iniciar sesión con el valor nuevo que han especificado. Si se ha seleccionado `preferred_username` como alias, el usuario puede proporcionar el valor solo cuando confirma la cuenta. Este valor no se puede proporcionar en el momento de registro.

Cuando el usuario se registra con un nombre de usuario, usted puede elegir si puede iniciar sesión con uno o más de los alias siguientes.
+ Dirección de correo electrónico verificada
+ Número de teléfono verificado
+ Nombre de usuario preferido

Los usuarios pueden cambiar estos alias después de registrarse.

**importante**  
Si el grupo de usuarios admite el inicio de sesión con alias y desea autorizar o buscar a un usuario, no lo identifique por ninguno de sus atributos de inicio de sesión. El identificador de usuario de valor fijo `sub` es el único indicador coherente de la identidad del usuario.

Incluya los siguientes pasos al crear el grupo de usuarios para que los usuarios puedan iniciar sesión con un alias.

------
#### [ Phone number or email address (console) ]

Debe configurar la dirección de correo electrónico y el número de teléfono como atributos de alias al crear un grupo de usuarios.

**Cómo crear un grupo de usuarios con los alias de los nombres de usuario en la consola de Amazon Cognito**

1. Diríjase a [Amazon Cognito](https://console.aws.amazon.com/cognito/home) en la Consola de administración de AWS. Si la consola se lo pide, introduzca sus credenciales. AWS 

1. Cree un nuevo grupo de usuarios con el botón **Introducción** o **Crear grupo de usuarios**.

1. Elija la configuración de la aplicación en **Defina su aplicación**.

1. En **Configurar opciones**, en **Opciones para los identificadores de inicio de sesión**, seleccione la casilla junto a **Nombre de usuario** y, al menos, una de las otras opciones, **Correo electrónico** y **Número de teléfono**.

1. Ponga los atributos de su alias como **Atributos necesarios para el inicio de sesión**. En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios.

1. En **Agregar una URL de retorno**, configure una URL de devolución de llamada de la aplicación para redirigirla tras abrir sesión con el inicio de sesión administrado.

1. Seleccione **Crear**.

------
#### [ Phone number or email address (API/SDK) ]

Cree un nuevo grupo de usuarios con la operación de la [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API. Configure el parámetro `AliasAttributes` como se muestra. Puede eliminar la entrada `email` si solo quiere alias de números de teléfono o eliminar la entrada `phone_number` si solo quiere alias de direcciones de correo electrónico.

```
"AliasAttributes": [
   "email",
   "phone_number"
],
```

------
#### [ Preferred username (API/SDK) ]

La consola de Amazon Cognito crea grupos de usuarios sin `preferred_username` como alias. Para crear grupos de usuarios con un `preferred_username` alias, configure grupos de usuarios con solicitudes de [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)API en un AWS SDK. Para permitir la creación de los atributos de nombre de usuario preferentes en el registro, configure `preferred_username` como atributo obligatorio. En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. *Puede* configurar `preferred_username` como atributo obligatorio en la consola de Amazon Cognito, pero esto no significa que esté disponible como alias.

**Configuración como alias**  
Configure `preferred_username` como un alias en el parámetro `AliasAttributes` de una solicitud `CreateUserPool`, como se muestra a continuación. Elimine de la lista los valores que no desee utilizar como atributos de alias.

```
"AliasAttributes": [
   "email",
   "phone_number",
   "preferred_username"
],
```

**Configuración como obligatorio**  
En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. Configure `preferred_username` según se requiera en el `SchemaAttributes` parámetro de una [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)solicitud.

Para establecer el nombre de usuario preferente como atributo obligatorio, configúrelo como se muestra a continuación. El siguiente ejemplo modifica el esquema predeterminado de `preferred_username` para configurarlo como obligatorio. Otros parámetros del esquema, como `AttributeDataType` (cuyo valor predeterminado es `string`) y `StringAttributeConstraints` (cuyo valor predeterminado tiene entre 1 y 99 caracteres de longitud) asumen valores predeterminados.

```
"Schema": [
   {
      "Name": "preferred_username",
      "Required": true
   }
]
```

------

#### Opción 2: dirección de correo electrónico o número de teléfono como atributo de inicio de sesión (atributos de nombre de usuario)
<a name="user-pool-settings-aliases-settings-option-2"></a>

Puede elegir si el usuario solo puede registrarse con una dirección de correo electrónico, solo con un número de teléfono o con cualquiera de estas dos opciones cuando este se registra con una dirección de correo electrónico o un número de teléfono como nombre de usuario. 

Para elegir los atributos de nombre de usuario, no seleccione **Nombre de usuario** como opción de inicio de sesión cuando cree el grupo de usuarios.

El correo electrónico o el número de teléfono deben ser únicos y no pueden estar siendo utilizados por otro usuario. No se tiene que verificar. Después de que el usuario se haya registrado con un correo electrónico o un número de teléfono, no podrá crear una cuenta con el mismo correo electrónico o con el mismo número de teléfono, solo podrá reutilizar la cuenta existente (y restablecer la contraseña si es necesario). El usuario solo puede reutilizar la cuenta existente y restablecer la contraseña de la cuenta, si esto fuera necesario. No obstante, el usuario puede cambiar la dirección de correo electrónico o el número de teléfono por otro nuevo. Si la dirección de correo electrónico o el número de teléfono no se están usando, pasará a ser el nuevo nombre de usuario.

Al seleccionar tanto la dirección de correo electrónico como el número de teléfono como atributos de nombre de usuario, los usuarios pueden iniciar sesión con uno u otro, incluso si proporcionan valores para ambos atributos. El nombre de usuario de inicio de sesión se basa en el valor que se introduce en el `Username` parámetro. [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html#CognitoUserPools-SignUp-request-Username)

**nota**  
Si un usuario se registra con una dirección de correo electrónico como nombre de usuario, puede cambiarlo por otra dirección de correo electrónico, pero no por un número de teléfono. Si se registra con un número de teléfono, puede cambiar el nombre de usuario por otro número de teléfono, pero no por una dirección de correo electrónico.

Siga estos pasos a la hora de crear el grupo de usuarios para configurar el registro y el inicio de sesión con una dirección de correo electrónico o con un número de teléfono.

------
#### [ Username attributes (console) ]

El siguiente procedimiento crea un grupo de usuarios con dirección de correo electrónico o número de teléfono en los atributos de nombre de usuario. La diferencia en el proceso de los atributos de username en la consola de Amazon Cognito es que no se establece también el **nombre de usuario** como atributo de inicio de sesión.

**Cómo crear un grupo de usuarios con atributos de nombres de usuario en la consola de Amazon Cognito**

1. Diríjase a [Amazon Cognito](https://console.aws.amazon.com/cognito/home) en la Consola de administración de AWS. Si la consola se lo pide, introduzca sus credenciales. AWS 

1. Cree un nuevo grupo de usuarios con el botón **Introducción** o **Crear grupo de usuarios**.

1. Elija la configuración de la aplicación en **Defina su aplicación**.

1. En **Configurar opciones**, en **Opciones para los identificadores de inicio de sesión**, seleccione sus atributos de nombre de usuario: **Correo electrónico**, **Número de teléfono** o ambos. Deje **Nombre de usuario** sin marcar.

1. Como práctica recomendada, seleccione los atributos de su nombre de usuario como **Atributos necesarios para el inicio de sesión**. En el formulario de registro del inicio de sesión administrado, Amazon Cognito pide a los nuevos usuarios que proporcionen valores para los atributos obligatorios. Si no establece los atributos de su nombre de usuario como obligatorios, Amazon Cognito no solicitará a los nuevos usuarios que proporcionen valores para ellos. En ese escenario, debe configurar la aplicación para que recopile y envíe las direcciones de correo electrónico o los números de teléfono de cada usuario antes de que puedan iniciar sesión.

1. En **Agregar una URL de retorno**, configure una URL de devolución de llamada de la aplicación para redirigirla tras abrir sesión con el inicio de sesión administrado.

1. Seleccione **Crear**.

------
#### [ Username attributes (API/SDK) ]

En una [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)solicitud, configure el `UsernameAttributes` parámetro como se muestra. Para permitir el inicio de sesión solo con nombres de usuario de direcciones de correo electrónico, ponga solo `email` en esta lista. Para permitir el inicio de sesión únicamente con nombres de usuario de números de teléfono, ponga solo `phone_number`. Este parámetro anula el nombre de usuario como opción de inicio de sesión.

```
"UsernameAttributes": [ 
   "email",
   "phone_number"
],
```

------

Al configurar los atributos del nombre de usuario, puede realizar solicitudes de [SignUp](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SignUp.html)API que incluyan una dirección de correo electrónico o un número de teléfono en el `username` parámetro. A continuación, puede ver el comportamiento de la operación de la API `SignUp` de código con los atributos de nombre de usuario.
+ Si la cadena `username` tiene un formato de correo electrónico válido (como `user@example.com`), el grupo de usuarios rellena automáticamente el atributo `email` del usuario con el valor `username`.
+ Si la cadena `username` tiene un formato de número de teléfono válido (como `+12065551212`), el grupo de usuarios rellena automáticamente el atributo `phone_number` del usuario con el valor `username`.
+ Si el formato de cadena `username` no es un formato de dirección de correo electrónico o de número de teléfono, la API de `SignUp` genera una excepción.
+ Si la cadena `username` contiene una dirección de correo electrónico o un número de teléfono que ya se está usando, la API de `SignUp` genera una excepción.
+ La API `SignUp` rellena el atributo `username` con un [UUID](cognito-terms.md#terms-uuid) para el usuario. Este UUID tiene el mismo valor que la notificación `sub` en el token de identidad de usuario.

Puede utilizar una dirección de correo electrónico o un número de teléfono en lugar del nombre de usuario en todas las operaciones APIs, excepto en la [ListUsers](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_ListUsers.html)operación. En las solicitudes de API `ListUsers`, puede especificar un `Filter` de `email` o `phone_number`. Si filtra por `username`, debe proporcionar el nombre de usuario del UUID, no la dirección de correo electrónico ni el número de teléfono.

## Custom attributes (Atributos personalizados)
<a name="user-pool-settings-custom-attributes"></a>

Puede añadir hasta 50 atributos personalizados a un grupo de usuarios. Puede especificar la longitud mínima o máxima de los atributos personalizados. Sin embargo, la longitud máxima de ningún atributo personalizado puede superar los 2048 caracteres. El nombre de un atributo personalizado debe coincidir con el patrón de expresión regular que se describe en el `Name` parámetro de [SchemaAttributeType](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_SchemaAttributeType.html).

**Cada atributo personalizado incluye las siguientes características:**
+ Puede definirlo como cadena, número, booleano o un objeto `DateTime`. Amazon Cognito escribe valores de atributos personalizados en el token de ID solo como cadenas.
**nota**  
En la consola de Amazon Cognito, solo puede añadir atributos personalizados de los tipos de datos de cadena y número. Las opciones adicionales, como los tipos de datos booleanos y de `DateTime` atributos, solo están disponibles en las solicitudes de `SchemaAttributes` propiedad [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html)y [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html)API.
+ No puede exigir que los usuarios proporcionen un valor para el atributo.
+ No puede eliminarlo ni cambiarlo después de agregarlo al grupo de usuarios.
+ La longitud de caracteres del nombre de atributo se encuentra dentro del límite aceptable por parte de Amazon Cognito. Para obtener más información, consulte [Cuotas en Amazon Cognito](quotas.md).
+ Puede ser *mutable* o *inmutable*. Solo se puede escribir un valor en un atributo inmutable la primera vez que se crea un usuario. Puede cambiar el valor de un atributo mutable si el cliente de la aplicación tiene permiso de escritura para el atributo. Para obtener más información, consulte [Permisos y ámbitos de los atributos](#user-pool-settings-attribute-permissions-and-scopes).

**nota**  
En el código y en la configuración de reglas para [Uso del control de acceso basado en roles](role-based-access-control.md), los atributos personalizados han de llevar el prefijo `custom:` para diferenciarse de los atributos estándar.

También puedes añadir *atributos de desarrollador* al crear grupos de usuarios, en la `SchemaAttributes` propiedad de. [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html) Los atributos del desarrollador tienen un prefijo `dev:`. Solo puede modificar los atributos de desarrollador de un usuario con AWS credenciales. Los atributos de desarrollador son una característica antigua que Amazon Cognito sustituyó por permisos de lectura-escritura del cliente de la aplicación.

Utilice el siguiente procedimiento para crear una en un almacén de claves personalizado.

**Para añadir un atributo personalizado con la consola**

1. Vaya a [Amazon Cognito](https://console.aws.amazon.com/cognito/home) en. Consola de administración de AWS Si la consola se lo pide, introduzca sus credenciales. AWS 

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Elija el menú **Registro** y, en la pestaña **Atributos personalizados**, elija **Agregar atributos personalizados**.

1. En la página**Agregar atributos personalizados**, proporcione los siguientes detalles sobre el nuevo atributo:
   + Escriba un **Name** (nombre).
   + Seleccione **Type** (tipo), ya sea **String** (cadena) o **Number** (número).
   + Escriba una longitud de cadena o un valor numérico **Min** (mínima).
   + Escriba una longitud de cadena o un valor numérico **Max** (máximo).
   + Seleccione **Mutable** (Mutable) si desea dar permiso a los usuarios para cambiar el valor de un atributo personalizado después de establecer el valor inicial.

1. Seleccione **Save changes (Guardar cambios)**.

## Permisos y ámbitos de los atributos
<a name="user-pool-settings-attribute-permissions-and-scopes"></a>

Puede establecer permisos de lectura y escritura para cada atributo de usuario para cada una de sus aplicaciones de cliente. Esto permite controlar el acceso del que dispone cualquier aplicación para leer y modificar cada atributo que se almacene para los usuarios. Por ejemplo, puede tener un atributo personalizado que indique si el usuario es cliente de pago o no. Es posible que sus aplicaciones puedan ver este atributo, pero no cambiarlo directamente. Por lo tanto, puede actualizar el atributo mediante una herramienta administrativa o un proceso de fondo. Los permisos para atributos de usuario se pueden configurar desde la consola de Amazon Cognito, la API de Amazon Cognito o la AWS CLI. De forma predeterminada, los nuevos atributos personalizados no están disponibles hasta que defina permisos de lectura y escritura para ellos. De forma predeterminada, cuando crea un nuevo cliente de aplicación, concede a la aplicación permisos de lectura y escritura para todos los atributos estándar y personalizados. Para limitar la aplicación a solo la cantidad de información que necesita, asigne permisos específicos a los atributos de la configuración del cliente de la aplicación.

Como práctica recomendada, especifique los permisos de lectura y escritura de los atributos al crear el cliente de aplicación. Concédale a este acceso al conjunto mínimo de atributos de usuario que son necesarios para que funcione la aplicación.

**nota**  
[DescribeUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolClient.html)solo devuelve valores para `ReadAttributes` y `WriteAttributes` cuando configuras los permisos del cliente de la aplicación distintos de los predeterminados.

**Para actualizar los permisos de los atributos (Consola de administración de AWS)**

1. Vaya a [Amazon Cognito](https://console.aws.amazon.com/cognito/home) en. Consola de administración de AWS Si la consola se lo pide, introduzca sus credenciales. AWS 

1. Elija **User Pools** (Grupos de usuarios).

1. Elija en la lista un usuario existente.

1. Seleccione el menú **Clientes de aplicación** y seleccione un cliente de aplicación de la lista.

1. En la pestaña **Permisos de atributos**, elija **Editar**.

1. En la página **Edit attribute read and write permissions** (Editar permisos de lectura y escritura de atributos), configure los permisos de lectura y escritura y, a continuación, elija **Save changes** (Guardar cambios).

Repita estos pasos para cada cliente de aplicación que utilice el atributo personalizado.

Por cada cliente de aplicación, puede marcar los atributos como de lectura o escritura. Esto es cierto para los atributos estándar y los atributos personalizados. La aplicación puede recuperar el valor de los atributos que marque como legibles y puede establecer o modificar el valor de los atributos que marque como que admiten la escritura. Si la aplicación intenta establecer un valor para un atributo que no está autorizada a escribir, Amazon Cognito devuelve el mensaje. `NotAuthorizedException` [GetUser](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_GetUser.html)las solicitudes incluyen un token de acceso con una reclamación del cliente de la aplicación; Amazon Cognito solo devuelve valores de los atributos que el cliente de la aplicación puede leer. El token de ID de usuario de una aplicación solo contiene afirmaciones que corresponden a los atributos legibles. Todos los clientes de la aplicación pueden escribir los atributos necesarios para el grupo de usuarios. Solo puede establecer el valor de un atributo en una solicitud de la API de grupos de usuarios de Amazon Cognito si también proporciona un valor para los atributos obligatorios que aún no tienen un valor.

Los atributos personalizados tienen características distintas para permisos de lectura y escritura. Puede crearlos como mutables o inmutables para el grupo de usuarios y puede configurarlos como atributos de lectura o escritura para cualquier cliente de la aplicación.

Un atributo personalizado inmutable se puede actualizar una vez, durante la creación del usuario. Puede rellenar un atributo inmutable con los siguientes métodos.
+ `SignUp`: un usuario se registra en un cliente de la aplicación que tiene acceso de escritura a un atributo personalizado inmutable. Proporcionan un valor para ese atributo.
+ Inicio de sesión con un IdP externo: un usuario inicia sesión en un cliente de la aplicación que tiene acceso de escritura a un atributo personalizado inmutable. La configuración del grupo de usuarios para su IdP tiene una regla para asignar una notificación proporcionada a un atributo inmutable. Esto es posible, pero no es práctico, ya que el usuario solo podrá iniciar sesión una vez. En los intentos de inicio de sesión posteriores, Amazon Cognito lo rechazará debido a la regla de asignación a un atributo en el que ya no se podrá escribir.
+ `AdminCreateUser`: usted proporciona un valor para un atributo inmutable.

### Permisos de atributos con ámbitos
<a name="user-pool-settings-attribute-scope-based-permissions"></a>

En los grupos de usuarios que configure con un AWS SDK o un CDK, la API REST o la AWS CLI, puede configurar el acceso de lectura o escritura del cliente de la aplicación con el ámbito del OIDC. `oidc:profile` `oidc:profile` otorga acceso de lectura o escritura a los siguientes atributos estándar:
+ `name`
+ `family_name`
+ `given_name`
+ `middle_name`
+ `nickname`
+ `preferred_username`
+ `profile`
+ `picture`
+ `website`
+ `gender`
+ `birthdate`
+ `zoneinfo`
+ `locale`

Esta lista contiene los atributos estándar de OIDC menos `email`, `phone_number`, `sub` y `address`, según la definición que figura en la [sección 2.4 de la especificación de OIDC](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes). Para obtener información sobre los ámbitos que puede asignar a los clientes de la aplicación, consulte [Ámbitos, M2M y servidores de recursos](cognito-user-pools-define-resource-servers.md).

Para configurar el cliente de la aplicación para que escriba en los atributos incluidos en el `oidc:profile` ámbito, defina el valor de [WriteAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-WriteAttributes)to`oidc:profile`, además de cualquier otro atributo que desee permitir que la aplicación modifique, en una solicitud [CreateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html)o [UpdateUserPoolClient](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolClient.html)a la API. Del mismo modo, para conceder acceso de lectura a estos atributos, añade `oidc:profile` el valor de [ReadAttributes](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html#CognitoUserPools-CreateUserPoolClient-request-ReadAttributes).

Puede cambiar los permisos y los alcances de los atributos después de crear el grupo de usuarios.