Redirecciona una solicitud a /.well-known/change-password
a la URL de cambio de contraseñas
Configura un redireccionamiento de /.well-known/change-password
a la página de cambio de contraseña
de tu sitio web. Esto permitirá que los administradores de contraseñas naveguen
a los usuarios directamente a esa página.
Introducción
Como ya debes saber, las contraseñas no son la mejor manera de administrar las cuentas. Afortunadamente, existen tecnologías emergentes, como WebAuthn, y técnicas, como contraseñas de un solo uso, que nos ayudan a acercarnos a un mundo sin contraseñas. Sin embargo, estas tecnologías aún se están desarrollando y la situación no cambiará rápidamente. Muchos desarrolladores necesitarán trabajar con contraseñas durante, al menos, los próximos años. Mientras esperamos que las tecnologías y técnicas emergentes se conviertan en comunes, al menos podemos hacer que las contraseñas sean más fáciles de usar.
Una buena manera de hacerlo es ofrecer una mejor asistencia para los administradores de contraseñas.
Cómo ayudan los administradores de contraseñas
Los administradores de contraseñas pueden integrarse en los navegadores o proporcionarse como apps de terceros. Pueden ayudar a los usuarios de varias maneras:
Autocompleta la contraseña para el campo de entrada correcto: Algunos navegadores pueden encontrar la entrada correcta de forma heurística, incluso si el sitio web no está optimizado para este propósito. Los desarrolladores web pueden ayudar a los administradores de contraseñas anotando etiquetas de entrada HTML de forma correcta.
Evitar la suplantación de identidad (phishing): Como los administradores de contraseñas recuerdan dónde se registró la contraseña, la contraseña se puede autocompletar solo en las URL adecuadas y no en los sitios web de suplantación de identidad (phishing).
Generar contraseñas únicas y seguras: Debido a que el administrador de contraseñas genera y almacena directamente contraseñas únicas y seguras, los usuarios no necesitan recordar un solo carácter.
Generar y autocompletar contraseñas con un administrador de contraseñas ya ofreció un buen servicio en la Web, pero teniendo en cuenta su ciclo de vida, actualizar las contraseñas siempre que sea necesario es tan importante como generarlas y autocompletarlas. Para aprovecharlo correctamente, los administradores de contraseñas están agregando una nueva función:
Detecta contraseñas vulnerables y sugiere su actualización: Los administradores de contraseñas pueden detectar contraseñas que se vuelven a usar, analizar su entropía y debilidad, o incluso detectar contraseñas potencialmente filtradas o que se sabe que no son seguras en fuentes como Have I Been Pwned.
Un administrador de contraseñas puede advertir a los usuarios sobre contraseñas problemáticas. Sin embargo, se presentan muchos inconvenientes cuando se les pide que naveguen desde la página principal a una página de cambio de contraseña, además de seguir el proceso real de cambio de contraseña (que varía de un sitio a otro). Sería mucho más fácil si los administradores de contraseñas pudieran llevar al usuario directamente a la URL de cambio de contraseña. Aquí es donde una URL conocida para cambiar contraseñas se vuelve útil.
Mediante la reserva de una ruta de URL conocida que redireccione al usuario a la página de cambio de contraseña, el sitio web puede redireccionar con facilidad a los usuarios al lugar correcto para cambiar sus contraseñas.
Configura "una URL conocida para cambiar contraseñas".
.well-known/change-password
se propone como una URL conocida para cambiar contraseñas. Lo único que debes hacer es configurar tu servidor para que redireccione las solicitudes de .well-known/change-password
a la URL de cambio de contraseña de tu sitio web.
Por ejemplo, supongamos que tu sitio web es https://example.com
y la URL de cambio de contraseña es https://example.com/settings/password
. Solo deberás configurar tu servidor para que redireccione una solicitud de https://example.com/.well-known/change-password
a https://example.com/settings/password
. Eso es todo. Para el redireccionamiento, usa el código de estado HTTP
302 Found
, 303 See
Other
o 307
Temporary Redirect
.
También puedes publicar código HTML en tu URL .well-known/change-password
con una etiqueta <meta>
mediante http-equiv="refresh"
.
<meta http-equiv="refresh" content="0;url=https://example.com/settings/password">
Revisa el código HTML de la página para cambiar la contraseña
El objetivo de esta función es ayudar a que el ciclo de vida de la contraseña del usuario sea más fluido. Puedes realizar dos acciones para permitir que el usuario actualice su contraseña sin inconvenientes:
- Si el formulario de cambio de contraseña necesita la contraseña actual, agrega
autocomplete="current-password"
a la etiqueta<input>
para ayudar al administrador de contraseñas a autocompletarla. - Para el campo de contraseña nueva (en muchos casos, son dos campos para garantizar que el usuario haya ingresado correctamente la contraseña nueva), agrega
autocomplete="new-password"
a la etiqueta<input>
para ayudar al administrador de contraseñas a sugerir una contraseña generada.
Obtén más información en Prácticas recomendadas para el formulario de acceso.
Cómo se usan en el mundo real
Ejemplos
Gracias a la implementación de Safari de Apple, /.well-known/change-password
ya está disponible en algunos sitios web importantes desde hace un tiempo:
Pruébalas y haz lo mismo por la tuya.
Compatibilidad del navegador
Una URL conocida para cambiar contraseñas es compatible con Safari desde 2019. El administrador de contraseñas de Chrome comenzará a ser compatible a partir de la versión 86 (que está programada para el lanzamiento estable a fines de octubre de 2020), y es posible que sigan otros navegadores basados en Chromium. Firefox considera que vale la pena implementarlo, pero no indicó que planea hacerlo a partir de agosto de 2020.
Comportamiento del administrador de contraseñas de Chrome
Observemos cómo el administrador de contraseñas de Chrome trata las contraseñas vulnerables.
El administrador de contraseñas de Chrome puede buscar contraseñas filtradas. Cuando navegas a about://settings/passwords
, los usuarios pueden ejecutar la opción Revisar contraseñas en las contraseñas almacenadas y ver una lista de contraseñas que se recomiendan para la actualización.
Si haces clic en el botón Cambiar contraseña junto a una contraseña que se recomienda actualizar, el navegador hará lo siguiente:
- Abre la página de cambio de contraseña del sitio web si
/.well-known/change-password
se configuró correctamente. - Abre la página principal del sitio web si
/.well-known/change-password
no está configurado y Google no conoce el resguardo.
200 OK
, incluso si /.well-known/change-password
no existe?Los administradores de contraseñas intentan determinar si un sitio web admite una URL conocida para cambiar contraseñas enviando una solicitud a /.well-known/change-password
antes de reenviar a un usuario a esta URL. Si la solicitud muestra 404 Not Found
, es obvio que la URL no está disponible, pero una respuesta 200 OK
no significa necesariamente que la URL esté disponible, ya que hay algunos casos extremos:
- Un sitio web que se renderiza en el servidor muestra el mensaje "No se encontró" cuando no hay contenido, sino con
200 OK
. - Un sitio web que se renderiza en el servidor responde con
200 OK
cuando no hay contenido después de redireccionar a la página "No se encontró". - Una app de una sola página responde con la shell mediante
200 OK
y procesa la página "No encontrado" en el cliente cuando no hay contenido.
En estos casos extremos, se redireccionará a los usuarios a la página “No se encontró”, lo que generará confusión.
Es por eso que se propone un mecanismo estándar para determinar si el servidor está configurado para responder con 404 Not Found
cuando realmente no hay contenido, mediante la solicitud de una página aleatoria. En realidad, la URL también está reservada: /.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200
.
Por ejemplo, Chrome usa esta ruta de URL para determinar con anticipación si puede esperar una URL de cambio de contraseña adecuada de /.well-known/change-password
.
Cuando implementes /.well-known/change-password
, asegúrate de que tu servidor muestre 404 Not Found
para cualquier contenido que no exista.
Comentarios
Si tienes algún comentario sobre la especificación, informa un problema en el repositorio de especificaciones.
Recursos
- Una URL conocida para cambiar contraseñas
- Detecta la confiabilidad de los códigos de estado HTTP
- Prácticas recomendadas para el formulario de acceso
Foto de Matthew Brodeur en Unsplash