Compatibilidad con la reautenticación automática en FedCM

Chrome admite la reautoautenticación 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 (tercero de confianza) depende de un IdP (proveedor de identidad) para proporcionarle al usuario una cuenta sin requerir un nombre de usuario y una contraseña nuevos.

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

En Chrome 115, FedCM admite la reautorización automática, lo que mejora la experiencia del usuario y permite una reautorización más optimizada para la RP después del consentimiento inicial.

Reautenticación automática

Actualmente, después de que un usuario crea una cuenta federada en un RP con un proveedor de identidad 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 del usuario explícita tiene sentido antes de que el usuario haya creado la cuenta federada para evitar el seguimiento (que es uno de los objetivos principales del FedCM), es 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 reconoció anteriormente. Por eso, presentamos una UX más optimizada que los RPs pueden elegir para sus usuarios recurrentes.

La autoautenticación de FedCM ("autoautenticación" en resumen) puede permitir que los usuarios se vuelvan a autenticar automáticamente cuando regresen después de su autenticación inicial con FedCM. "La autenticación inicial" aquí 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.

Es un diálogo en el que el usuario presiona para crear una cuenta o autenticarse.
Es un diálogo en el que el usuario presiona para crear una cuenta o autenticarse.

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

Si bien presentamos la reautorización automática para proporcionar una mejor UX y alinearnos con la especificación, la experiencia del usuario predeterminada será diferente sin ningún cambio de código. Con la reautorizació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 de forma parcial 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 los usuarios otorguen permiso de forma explícita cada vez que necesiten autenticarse.
  • 'optional'(predeterminado): Reautorización automática si es posible, requiere una mediación si no es así. Te recomendamos que elijas esta opción en la página de acceso.
  • 'silent': Si es posible, realiza la reautorización automática y, de lo contrario, falla de forma silenciosa sin requerir mediación. Recomendamos elegir esta opción en las páginas que no sean la página de acceso dedicada, pero en las que desees que los usuarios permanezcan en sus cuentas, por ejemplo, una página de artículos en un sitio web de noticias o una página de artículos en un sitio web de envíos.
  • 'conditional': Se usa para WebAuthn y no está disponible para FedCM en este momento.

Con esta llamada, la reautorización automática se produce en las siguientes condiciones:

  • FedCM está disponible para su uso. Por ejemplo, el usuario no inhabilitó FedCM de forma global ni para la RP en la configuración.
  • El usuario usó solo una cuenta con la API de FedCM para acceder al sitio web en este navegador.
  • El usuario accedió al IdP con esa cuenta.
  • La reautorizació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 apenas se invoca navigator.credentials.get() de FedCM.

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

Aplica la mediación con preventSilentAccess()

La autenticación automática de los usuarios inmediatamente después de que salgan de sus cuentas no sería una experiencia del usuario muy buena. Es por eso que FedCM tiene un período de inactividad de 10 minutos después de una reautorización automática para evitar este comportamiento. Esto significa que la reautorización automática se produce como máximo una vez cada 10 minutos, a menos que el usuario vuelva a acceder en ese plazo. La RP debe llamar a navigator.credentials.preventSilentAccess() para solicitar de forma explícita al navegador que inhabilite la reautorización automática cuando un usuario salga de la RP de forma explícita, por ejemplo, haciendo clic en un botón de salida.

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

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

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

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

Si inhabilitas el botón de activación, el usuario puede inhabilitar por completo el comportamiento de la reautorización automática. Este parámetro de configuración se almacena y sincroniza en todos los dispositivos si el usuario accedió 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