Actualizaciones de FedCM: Prueba de origen para la reautenticación automática

Presentamos algunas actualizaciones de FedCM, incluida una nueva prueba de origen para la reautenticación automática.

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 es una API específica que permite que el navegador comprenda el contexto en el que el RP y el IdP intercambian información, informan al usuario sobre los niveles de información y privilegio que se comparten y evitan abusos no deseados.

Actualizaciones

Hay algunas actualizaciones en la implementación de FedCM de Chrome:

Para ver todas las actualizaciones anteriores de la API, consulta las actualizaciones de la API de Federated Credential Management.

La versión más reciente de FedCM incluye una nueva función de reautenticación automática que permite reautenticar a los usuarios automáticamente cuando regresan después de la autenticación inicial mediante FedCM. La reautenticación automática está disponible como una prueba de origen a partir de Chrome 112.

Reautenticación automática

Actualmente, después de que un usuario crea una cuenta federada en un RP con un IdP a través de FedCM, la próxima vez que visita el sitio web, debe seguir los mismos pasos en la interfaz de usuario. Es decir, deben confirmar explícitamente y volver a autenticarse para continuar con el flujo de acceso. Como uno de los principales objetivos de FedCM es evitar el seguimiento encubierto, esta experiencia del usuario (UX) tiene sentido antes de que el usuario cree la cuenta federada, pero se vuelve innecesaria y engorrosa después de que la haya completado 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 haya confirmado. Por eso, Chrome presenta 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" para abreviar) vuelve a autenticar a los usuarios automáticamente (cuando los RP aceptan) cuando regresan 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.

El RP puede solicitar la reautenticación automática llamando a navigator.credentials.get() con autoReauthn: true.

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
    // NOTE: We are exploring different API options to expose this
    // functionality here:
    // https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
    // You should expect that, as a result of the origin trial, we'll
    // learn more from developers and browser vendors what works best here.
    autoReauthn: true, // default to false
  },
});

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 de manera global ni para el RP.
  • El usuario utilizó solo una cuenta 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.

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 se reautentica de forma automática en un RP con FedCM

Probar

Para probar la reautenticación automática de FedCM de forma local, activa una marca de Chrome chrome://flags#fedcm-auto-re-authn en Chrome 112 o versiones posteriores.

Para realizar pruebas, puedes restablecer el período de inactividad de 10 minutos quitando los datos del navegador.

  1. Navega a chrome://history.
  2. En el cuadro del historial de búsqueda, ingresa el origen de la parte restringida.
  3. Haz clic en el ícono de tres puntos ⋮ y selecciona Quitar del historial.
  4. Reinicia Chrome.

Participar en la prueba de origen

También puedes habilitar la función en tu sitio web si te unes a la prueba de origen de terceros disponible desde Chrome 112 hasta Chrome 114.

Las pruebas de origen te permiten probar funciones nuevas y enviar comentarios sobre su usabilidad, practicidad y eficacia a la comunidad de estándares de la Web. Para obtener más información, consulta la Guía sobre las pruebas de origen para desarrolladores web. Si desea registrarse en esta o en otra prueba de origen, visite la página de registro.

Si deseas registrarte para la prueba de origen de terceros y activar la función en terceros, haz lo siguiente:

  1. Ve a la página de registro de la prueba de origen.
  2. Haz clic en el botón Registrar y completa el formulario para solicitar un token
  3. Ingresa el origen de entrega como Origen web.
  4. Marca Coincidencias de terceros para insertar el token con JavaScript en otros orígenes.
  5. Haga clic en Enviar.
  6. Incorpora el token emitido en un tercero.

Para incorporar el token a un tercero, agrega el siguiente código a la biblioteca de JavaScript o al SDK que se entrega desde el origen del sitio web registrado.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

Reemplaza TOKEN_GOES_HERE por tu propio token.

Interactúa y comparte comentarios

Si tienes comentarios o problemas durante las pruebas, puedes compartirlos en crbug.com en el componente Blink>Identity>FedCM.

Foto de Alex Perz en Unsplash