Actualizaciones de FedCM: API de Multi IdP en computadoras de escritorio, API de Button Mode y paquete de Continuation para Chrome en pruebas de origen de Android

Natalia Markoborodova
Natalia Markoborodova

A partir de Chrome 128, la API de Multi-IdP comenzará una prueba de origen en computadoras, y la API de Button Mode y el paquete de Continuation comenzarán una prueba de origen en Android. Con la función de varios IdP, los desarrolladores pueden especificar un array de varios proveedores de identidad compatibles en una sola llamada a get(). La API de Button Mode agrega una nueva IU. Con la API de Button Mode, los proveedores de identidad pueden usar la API de FedCM incluso si sus usuarios no tienen sesiones de IdP activas en la llamada a la API. El paquete de Continuation consta de la API de Continuation y la API de Parameters, que permiten una experiencia similar a un flujo de autorización de OAuth que incluye un diálogo de permisos proporcionado por IdP. El paquete también incluye otros cambios, como la API de Fields, varios configURL y las etiquetas personalizadas de la cuenta.

Prueba de origen: API de Multi IdP

La función permite que los usuarios elijan una cuenta de un conjunto de IdP admitidos, y los RP se benefician de tasas más altas de acceso y registro. Si el usuario accedió con varios IdP, se le pedirá que acceda al RP mediante uno de los IdP.

Un usuario accede con diferentes IdP mediante la API de varios IdP.

Los IdP se priorizan en función de las cuentas existentes del usuario y sus marcas de tiempo asociadas.

  • Si el usuario ya accedió al RP con un IdP específico (es decir, tiene una "cuenta recurrente"), esos IdP aparecerán primero.
  • Dentro de las cuentas que se devuelven, los IdP se ordenan aún más por la marca de tiempo del uso más reciente, con el IdP que se usó más recientemente en la parte superior de la lista. En algunos casos, es posible que Chrome no tenga datos de marcas de tiempo de una cuenta recurrente. Esto puede deberse a que el usuario accedió antes de que se implementaran los registros de marca de tiempo en FedCM. Estas cuentas se enumeran debajo de las que tienen marcas de tiempo.
  • Si el usuario no tiene cuentas recurrentes con ningún IdP, se respeta el orden proporcionado por la parte restringida.

FedCM permite la reautenticación automática si el desarrollador lo solicita y si hay una sola cuenta recurrente. En el caso de varios IdP, si existen cuentas recurrentes para varios IdP, el usuario no se volverá a autenticar automáticamente. Volver a tener una cuenta es un requisito importante para la reautenticación automática. El navegador solo iniciará la reautenticación automática cuando haya reconocido explícitamente la cuenta. Esto implica que el usuario debe haber usado previamente FedCM con esta cuenta específica en esta parte restringida.

Si el estado de acceso del usuario se configura como desconectado para un IdP, llamar al FedCM no recupera las cuentas de ese IdP. Del mismo modo, si el estado del usuario salió de todos los IdP disponibles, el mensaje de acceso de FedCM no se muestra automáticamente en el modo de widget.

Si se accedió al estado de acceso guardado en el navegador de un IdP, pero la solicitud de recuperación no mostró ninguna cuenta para este IdP (por ejemplo, si la sesión del usuario venció, pero el navegador aún no actualizó el estado de acceso), se muestra la IU que no coincide para el IdP, lo que sugiere al usuario que acceda con el IdP que no coincide.

Cuando el estado de acceso del usuario ya accedió, pero la sesión venció, se muestra la IU que no coincide.

Para obtener más información sobre el estado de acceso, consulta la documentación. Consulta la guía para desarrolladores para obtener más detalles sobre la implementación.

Prueba de origen: API de Multi IdP

Puedes probar la API de varios IdP como usuario en el RP de demostración o como desarrollador que usa Chrome 128 o una versión posterior.

Pruébalo como usuario

Pruébala por tu cuenta como usuario. Asegúrate de lo siguiente:

  • Chrome no está configurado para bloquear mensajes de acceso de terceros en la página: chrome://settings/content/federatedIdentityApi.
  • Accediste a varios IdP de demostración. Sigue las instrucciones que aparecen en la página de demostración.

Ten en cuenta que, para probar el IdP múltiple en sitios cuyo origen no está registrado para la prueba de origen, debes habilitar la marca de función en chrome://flags/#fedcm-multi-idp.

Pruébalo como desarrollador

Si un proveedor de acceso tiene un SDK de JavaScript incorporado en la parte restringida (recomendado), el proveedor puede implementar la llamada a navigator.credentials.get() para habilitar varios IdP, y los desarrolladores de la parte restringida no necesitan cambiar su código. De lo contrario, la parte restringida debe llamar a la API de FedCM.

Para probar los IdP múltiples en una RP, especifica el array de proveedores compatibles de la siguiente manera:

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

El atributo configURL dentro del objeto resultante almacena la URL del archivo de configuración del IdP con el que se autenticó el usuario. El RP puede determinar cómo controlar el token resultante, ya que difiere según el IdP.

Participar en la prueba de origen

Las pruebas de origen te permiten probar funciones nuevas y proporcionar comentarios sobre su usabilidad, practicidad y eficacia. Para obtener más información, consulta Comienza a usar las pruebas de origen.

Para probar la función de varios IdP, regístrate en las pruebas de origen a partir de Chrome 128.

Para probar el IdP múltiple, un RP puede registrar su origen y ejecutar una prueba de origen propia. También es posible que el IdP se registre en una prueba de origen de terceros y tenga disponible la función de IdP múltiple para todas sus RP con los SDKs de JavaScript.

Pasos para participar en la prueba de origen:

  1. Ve a la página de registro de la prueba de origen de la API de varios IdP.
  2. Haz clic en el botón Register y completa el formulario para solicitar un token.
  3. Para registrarte en una prueba de origen propia, ingresa el origen del RP en "Origen web" . En una prueba de origen de terceros, ingresa el origen del SDK de JavaScript del IdP y marca la opción "Coincidencias de terceros" .
  4. Haz clic en Enviar.
  5. Proporciona el token emitido en la página de RP:
    • Para los participantes de pruebas propias de origen:
      • Como una metaetiqueta en <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • Como un encabezado HTTP: Origin-Trial: TOKEN_GOES_HERE
    • Para los participantes de pruebas de origen externos:
      • Proporcionando un token de manera programática

API de Button Mode para Chrome en Android

A partir de la versión 128 de Chrome, la prueba de origen de la API de Button Mode comenzará en Chrome para Android, después de la prueba inicial en computadoras de escritorio. Con la API de Button Mode, los proveedores de identidad pueden usar la API de FedCM incluso si sus usuarios salieron del IdP después de la llamada a la API. El flujo de acceso se inicia mediante un gesto del usuario, lo que refleja mejor la intención del usuario.

En Chrome 128, se presenta una nueva función que permite que los IdP incluyan el ícono del logotipo oficial del RP directamente en la respuesta del extremo de metadatos del cliente. Esto mejora la IU en dispositivos móviles en el modo de botón.

Al igual que el desarrollo de la marca del IdP en el archivo de configuración, los íconos del RP se pueden configurar en el IdP y se muestran en la respuesta de client_metadata_endpoint de la siguiente manera:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
Íconos de logotipos de IdP y RP.
Los íconos de los logotipos del IdP y RP en la IU de divulgación en dispositivos móviles.

Para obtener más información sobre la compatibilidad con los íconos, consulta la documentación para desarrolladores.

Si el usuario aún no accedió, FedCM le solicita que acceda al IdP con el login_url que este proporcionó a través de una pestaña personalizada de Chrome (CCT).

Un usuario accede con el modo de botón en un dispositivo móvil.

Si el usuario vuelve a autenticarse con una cuenta recurrente, no se mostrará la IU de divulgación.

Un usuario accede con una cuenta recurrente. No se muestra la IU de divulgación.

Para registrarte en la prueba de origen, consulta las instrucciones de la API de Button Mode en computadoras de escritorio. Si ya te registraste en la prueba de origen en una computadora de escritorio, la función estará disponible automáticamente en Chrome en Android a partir de Chrome 128.

Paquete de API de Continuation para Chrome en Android

A partir de la versión 128 de Chrome, el paquete de la API de Continuation estará disponible para Chrome en Android como parte de una prueba de origen, después de la prueba inicial en computadoras de escritorio. El paquete consta de varias funciones de FedCM, como la API de Continuation, la API de Parameters, la API de Fields, Varias URL de configuración y Etiquetas de cuenta personalizadas.

La API de Continuation habilita flujos de acceso de varios pasos. La API de Parameters permite pasar parámetros adicionales al IdP. La API de Fields permite que el RP solicite atributos específicos de la cuenta para la IU de divulgación en el diálogo de FedCM. Además, varios configURL admiten varios archivos de configuración para un IdP, y las etiquetas personalizadas de la cuenta permiten que los IdP anoten las cuentas para que los RP puedan filtrarlas por estas etiquetas.

Para obtener más información sobre el paquete de la API de Continuation, consulta la entrada de blog sobre el paquete de la API de Continuation en computadoras de escritorio. Si deseas registrarte en la prueba de origen, sigue estas instrucciones. Si ya te registraste en la prueba de origen en una computadora de escritorio, las funciones estarán disponibles automáticamente en Chrome en Android a partir de Chrome 128.

Interactúa y comparte tus comentarios

Si tienes comentarios o tienes algún problema, puedes informar el problema. Mantendremos actualizada la guía canónica para desarrolladores de FedCM junto con la página de registros de actualización acumulada.