Saltar al contenido principal

Política de contraseñas

Logto aplica la política de contraseñas de diferentes maneras según cómo se cree o actualice la contraseña:

Configurar la política de contraseñas​

Para nuevos usuarios o usuarios que están actualizando su contraseña, puedes establecer una política de contraseñas para exigir requisitos de fortaleza. Visita Consola > Seguridad > Política de contraseñas para configurar los ajustes de la política de contraseñas.

  1. Longitud mínima de la contraseña: Establece el número mínimo de caracteres requeridos para la contraseña. (NIST sugiere usar al menos 8 caracteres)
  2. Tipos mínimos de caracteres requeridos: Establece el número mínimo de tipos de caracteres requeridos para la contraseña. Los tipos de caracteres disponibles son:
    1. Letras mayúsculas: (A-Z)
    2. Letras minúsculas: (a-z)
    3. Números: (0-9)
    4. Caracteres especiales: (!"#$%&'()\*+,-./:;<>=?@[]^\_`|{}~ )
  3. Comprobación de historial de brechas: Activa esta opción para rechazar contraseñas que hayan sido expuestas previamente en filtraciones de datos. (Impulsado por Have I Been Pwned)
  4. Comprobación de repetición: Activa esta opción para rechazar contraseñas que contengan caracteres repetitivos. (por ejemplo, "11111111" o "password123")
  5. Comprobación de información del usuario: Activa esta opción para rechazar contraseñas que contengan información del usuario como nombre de usuario, dirección de correo electrónico o número de teléfono.
  6. Palabras personalizadas: Proporciona una lista de palabras personalizadas (no distingue mayúsculas de minúsculas) que deseas rechazar en la contraseña.

Expiración de contraseñas​

La expiración de contraseñas requiere que los usuarios restablezcan su contraseña después de un número determinado de días. También puedes hacer que la contraseña de un usuario específico expire manualmente, por ejemplo, cuando sabes que ha sido filtrada.

La política solo se comprueba después de que el usuario introduce la contraseña correcta en el inicio de sesión por contraseña. Los usuarios que inician sesión con un código de verificación, inicio de sesión social, SSO o una passkey no se ven afectados.

Activar la expiración de contraseñas​

Ve a Consola > Seguridad > Política de contraseñas y busca la tarjeta Expiración de contraseñas:

  1. Activa Habilitar expiración de contraseñas.
  2. Establece el Período de validez de la contraseña (días), entre 1 y 9999 días.
  3. Guarda los cambios.

El interruptor permanece deshabilitado hasta que la experiencia de inicio de sesión tenga al menos un método de olvidé mi contraseña (correo electrónico o teléfono) con un conector funcional, ya que los usuarios solo pueden restablecer una contraseña expirada a través de ese flujo. Por la misma razón, mientras la política esté habilitada, no puedes eliminar el último conector de correo electrónico o SMS que admita el olvido de contraseña. Si tu registro no requiere una dirección de correo electrónico o número de teléfono, algunos usuarios pueden no tener forma de recibir un código de restablecimiento, así que considera solicitar uno en el registro.

Logto registra cuándo se estableció o cambió por última vez la contraseña de un usuario. Cuando esa contraseña tiene la misma antigüedad que el período de validez, el siguiente inicio de sesión por contraseña del usuario se bloquea hasta que la restablezca. Los usuarios sin fecha registrada de cambio de contraseña se miden desde el momento en que habilitaste la política, por lo que activarla no expira la contraseña de todos a la vez. Desactivar y volver a activar la política restablece este tiempo de inicio.

Cuando el usuario establece una nueva contraseña, ya sea a través de olvidé mi contraseña, la Account API o la Management API, la antigüedad de la contraseña se reinicia y cualquier expiración manual se borra.

Expirar manualmente la contraseña de un usuario​

Cuando la política de expiración de contraseñas está habilitada, puedes obligar a un usuario específico a restablecer su contraseña en su próximo inicio de sesión:

Si la política no está habilitada, la API devuelve 400 con el código de error sign_in_experiences.password_expiration_not_enabled, y el botón Expirar en la Consola está deshabilitado.

Un caso común es una contraseña que se sabe que ha sido filtrada. Expirarla hace que el usuario demuestre que posee su dirección de correo electrónico o número de teléfono con un código de verificación antes de poder establecer una nueva contraseña e iniciar sesión de nuevo. Si solo quieres expirar contraseñas manualmente y no forzar la rotación regular para todos los usuarios, habilita la política con un período de validez largo, como 3650 días.

Expirar una contraseña no cierra la sesión del usuario en las sesiones existentes. Para cortar el acceso de inmediato, también revoca las sesiones activas del usuario y las aplicaciones de terceros autorizadas.

Qué ven los usuarios finales​

Cuando un usuario inicia sesión con una contraseña expirada, después de introducir la contraseña correcta, la página de inicio de sesión muestra un modal con el mensaje "Tu contraseña ha expirado y debe ser restablecida antes de que puedas iniciar sesión." Al hacer clic en Restablecer contraseña, el usuario es dirigido al flujo de olvidé mi contraseña con su identificador ya rellenado. Después de verificar con un código enviado a su correo electrónico o teléfono y establecer una nueva contraseña, puede iniciar sesión de nuevo.

Si construyes tu propia interfaz de inicio de sesión con la Experience API, la solicitud de verificación de contraseña falla con el código de error password.expired (HTTP 422). Maneja este error enviando al usuario a tu flujo de restablecimiento de contraseña.

Comprobación de cumplimiento de contraseñas​

Después de actualizar la política de contraseñas en Logto, los usuarios existentes aún pueden iniciar sesión con sus contraseñas actuales. Solo las cuentas recién creadas deberán seguir la política actualizada.

Para aplicar una seguridad más fuerte, puedes usar la API POST /api/sign-in-exp/default/check-password para comprobar si la contraseña de un usuario cumple con la política actual definida en la experiencia de inicio de sesión predeterminada. Si no la cumple, puedes solicitar al usuario que actualice su contraseña con un flujo personalizado usando la Account API.

Gestionar usuarios Registro e inicio de sesión

Configuración de cuenta por Account API

Diseña tu política de contraseñas