Contraseñas, recuperación de contraseñas y políticas de contraseñas - Amazon Cognito

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.

Contraseñas, recuperación de contraseñas y políticas de contraseñas

Todos los usuarios que inician sesión en un grupo de usuarios, incluso los usuarios federados, tienen contraseñas asignadas a sus perfiles de usuario. Los usuarios locales y los usuarios vinculados 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 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

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.

Mediante la operación de la API ForgotPassword y la opción de inicio de sesión administrado ¿Ha olvidado la contraseña? se envía al usuario un código; cuando el usuario confirma que tiene el código correcto, tiene la oportunidad de establecer una nueva contraseña con ConfirmForgotPassword. 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 puede establecer email_verified o phone_number_verified en verdadero en una solicitud AdminUpdateUserAttributes. Para los nuevos usuarios, la operación de la API ResendConfirmationCode envía un nuevo código a su dirección de correo electrónico o número de teléfono; entonces, pueden completar la confirmación y la verificación del autoservicio.

Restablecimiento de las contraseñas como administrador

Las operaciones de API AdminSetUserPassword y AdminResetUserPassword son los métodos de restablecimiento de contraseña 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 del mismo modo que con ForgotPassword.

Configuración del restablecimiento y la recuperación de contraseñas

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 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 (OTP) desde los mensajes de correo electrónico para la MFA, deben usar mensajes SMS para recuperar la cuenta. Si usan OTP desde los mensajes SMS para la 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. 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 parámetro AccountRecoverySetting es el parámetro del grupo de usuarios que establece los métodos que los usuarios pueden utilizar para recuperar su contraseña en las solicitudes de la API ForgotPassword o cuando seleccionan ¿Ha olvidado su contraseña? en el inicio de sesión administrado. ForgotPassword envía un código de recuperación a una dirección de correo electrónico o un número de teléfono verificados. El código de recuperación es válido durante una hora. Cuando especifica un AccountRecoverySetting 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 y UpdateUserPool.

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.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

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

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

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

  7. Seleccione Guardar cambios.

Comportamiento de contraseña olvidada

En una hora determinada, permitimos entre 5 y 20 intentos para que un usuario solicite o introduzca un código de restablecimiento de contraseña como parte de las acciones forgot-password (contraseña olvidada) y confirm-forgot-password (confirmar contraseña olvidada). 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

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 que quieren priorizar la seguridad, como la protección contra amenazas y las ACL web de AWS WAF, pero la política de contraseñas que implante será el elemento fundamental de la seguridad en el 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.

  2. Vaya a Política de contraseñas.

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

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

  5. 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 en mayúsculas y minúsculas

    • Números

    • Los siguientes caracteres especiales.

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

  6. 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 los grupos de usuarios de Amazon Cognito, defina un valor para TemporaryPasswordValidityDays en la solicitud de la API CreateUserPoolUpdateUserPool.

  7. 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 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 la API AdminCreateUser donde MessageAction se haya establecido en RESEND.

  • Elimine el perfil de usuario y cree uno nuevo.

  • Genere un nuevo código de confirmación en una solicitud de la API AdminResetUserPassword.