Compatibilidad con la reautenticación automática en FedCM

Chrome admite la reautenticación automática en FedCM

La API de Federated Credential Management (FedCM) es una API web para la federación de identidades que preserva la privacidad. Con la federación de identidades, un RP (grupo de confianza) se basa en un IdP (proveedor de identidad) para proporcionarle al usuario una cuenta sin requerir un nombre de usuario ni una contraseña nuevos.

FedCM permite que el navegador comprenda el contexto en el que el RP y el IdP intercambian información. Informa al usuario sobre la información y los niveles de privilegios que se comparten y evita abusos no deseados. FedCM está disponible en Chrome desde la versión 108.

En Chrome 115, FedCM será compatible con la reautenticación automática, lo que mejora las experiencias del usuario y permite una reautenticación más optimizada en el RP después del consentimiento inicial.

Reautenticación automática

Actualmente, después de un usuario crea una cuenta federada en un RP con un IdP a través de la API de FedCM, la próxima vez que visite el sitio web deberá seguir los mismos pasos en la interfaz de usuario. Esto significa que el usuario deberá volver a confirmar de forma explícita y manual para volver a autenticarse y continuar con el flujo de acceso.

Si bien la experiencia explícita del usuario tiene sentido antes de que el usuario cree la cuenta federada para evitar el seguimiento (que es uno de los objetivos principales de FedCM), resulta innecesariamente engorrosa después de que el usuario la haya realizado una vez: después de que el usuario otorga permiso para permitir la comunicación entre el RP y el IdP, no hay ningún beneficio de privacidad o seguridad para aplicar otra confirmación explícita del usuario para algo que ya confirmó. Por eso, presentamos una UX más optimizada que los RP pueden elegir para sus usuarios recurrentes.

La reautenticación automática de FedCM (“reautenticación automática” en la forma abreviada) puede permitir que los usuarios vuelvan a autenticarse automáticamente, cuando regresen después de su autenticación inicial con FedCM. “La autenticación inicial” significa que el usuario crea una cuenta o accede al sitio web del RP presionando el botón “Continuar como...” en el diálogo de acceso de FedCM por primera vez en la misma instancia del navegador.

Un diálogo que el usuario presiona para crear una cuenta o autenticarse.
Un diálogo que el usuario presiona para crear una cuenta o autenticarse.

Elige una opción para la reautenticación automática

Si bien presentamos la reautenticación automática para proporcionar una mejor UX y alinearse con la especificación, la experiencia del usuario predeterminada será diferente sin ningún cambio en el código. Con la reautenticación automática disponible, el navegador cambia su comportamiento según la opción que selecciones en la opción mediation que los desarrolladores proporcionan con navigator.credentials.get().

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
  },
  mediation: 'optional', // this is the default
});

mediation es una propiedad en la API de Credential Management, se comporta de la misma manera que para PasswordCredential y FederatedCredential, y también es compatible parcialmente con PublicKeyCredential. La propiedad acepta los siguientes cuatro valores:

  • 'required': Siempre requiere una mediación para continuar, por ejemplo, hacer clic en el botón "Continuar" en la IU. Elige esta opción si se espera que tus usuarios otorguen permiso de manera explícita cada vez que necesiten autenticación.
  • 'optional'(opción predeterminada): Reautenticación automática si es posible; si no es posible, requiere una mediación. Te recomendamos que elijas esta opción en la página de acceso.
  • 'silent': La reautenticación automática si es posible. De lo contrario, falla sin solicitar una mediación. Te recomendamos que elijas esta opción en páginas que no sean la página de acceso dedicada, pero en las que quieras mantener a los usuarios conectados, por ejemplo, una página de artículo en un sitio web de envíos o una página de artículo en un sitio web de noticias.
  • 'conditional': Se usa para WebAuthn y no está disponible para FedCM en este momento.

Con esta llamada, la reautenticación automática ocurre en las siguientes condiciones:

  • FedCM está disponible para su uso. Por ejemplo, el usuario no inhabilitó FedCM a nivel global ni para el RP en la configuración.
  • El usuario usó una sola cuenta con la API de FedCM para acceder al sitio web en este navegador.
  • El usuario accedió al IdP con esa cuenta.
  • La reautenticación automática no se realizó en los últimos 10 minutos.
  • El RP no llamó a navigator.credentials.preventSilentAccess() después del acceso anterior.

Cuando se cumplen las condiciones anteriores, se inicia un intento de volver a autenticar automáticamente al usuario en cuanto se invoca el navigator.credentials.get() de FedCM.

Un usuario que se reautentica automáticamente a través de FedCM.

Aplica la mediación con preventSilentAccess()

Volver a autenticar a los usuarios de forma automática inmediatamente después de que salen de sus cuentas no sería una muy buena experiencia del usuario. Es por eso que FedCM tiene un período de inactividad de 10 minutos después de una reautenticación automática para evitar este comportamiento. Esto significa que la reautenticación automática ocurre, como máximo, una vez cada 10 minutos, a menos que el usuario vuelva a acceder en un plazo de 10 minutos. La parte restringida debe llamar a navigator.credentials.preventSilentAccess() para solicitar de manera explícita al navegador que inhabilite la reautenticación automática cuando un usuario salga de ella, por ejemplo, con un clic en el botón Salir.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

Los usuarios pueden inhabilitar la reautenticación automática en la configuración

Los usuarios pueden inhabilitar la reautenticación automática en el menú de configuración:

  • En la versión de Chrome para computadoras de escritorio, ve a chrome://password-manager/settings > Acceder automáticamente.
  • En Chrome para Android, abre Configuración > Administrador de contraseñas > presiona un engranaje en la esquina superior derecha > Acceso automático.

Si inhabilitas el botón de activación, el usuario podrá inhabilitar por completo el comportamiento de reautenticación automática. Esta configuración se almacena y sincroniza en todos los dispositivos si el usuario accede a una Cuenta de Google en la instancia de Chrome y la sincronización está habilitada.

Compartir comentarios

Si estás probando FedCM, puedes compartir tus comentarios o cualquier problema que encuentres en crbug.com en el componente "Blink>Identity>FedCM".

Foto de Noah Samuel Franz en Unsplash