Actualizaciones de la API de Federated Credential Management

La API de Federated Credential Management se envía en Chrome 108, pero se espera que siga evolucionando. No hay cambios rotundos planificados.

¿Para quién son estas actualizaciones?

Estas actualizaciones son para ti en los siguientes casos:

  • Tienes un IdP que usa la API de Federated Credential Management.
  • Eres un IdP o RP y estás interesado en extender la API para que se adapte a tu caso de uso (p.ej., observaste o participaste en los debates sobre el repositorio de CG de FedID y deseas comprender los cambios realizados en la API).
  • Eres proveedor de navegadores y quieres ponerte al día con el estado de la implementación de la API.

Si es la primera vez que usas esta API o aún no has experimentado con ella, lee la introducción a la API de Federated Credential Management.

Registro de cambios

Para mantenerte al tanto de los cambios en la API de FedCM, suscríbete a nuestro boletín informativo.

Chrome 125 (abril de 2024)

Chrome 123 (febrero de 2024)

  • Se agregó compatibilidad con la API de Domain Hint. La API de Domain Hint permite que los RP especifiquen una propiedad domainHint en una llamada a la API de FedCM a fin de mostrar solo las cuentas coincidentes para el usuario.

Chrome 122 (enero de 2024)

Chrome 121 (diciembre de 2023)

  • La condición relajada para activar la reautenticación automática de FedCM:
    • La función de reautenticación automática de FedCM solo se activa cuando el usuario regresa. Esto significa que el usuario debe acceder al RP mediante FedCM una vez en cada instancia del navegador para que se pueda activar la reautenticación automática. Esta condición se introdujo inicialmente para mitigar el riesgo de rastreadores que simulan ser un proveedor de identidad (IdP) y engañan al navegador para que autentique de forma automática a un usuario sin su conocimiento o consentimiento. Sin embargo, este diseño no puede garantizar el beneficio de privacidad si el rastreador tiene acceso a cookies de terceros en el contexto de la RP. FedCM proporciona solo un subconjunto de las capacidades posibles a través de cookies de terceros, por lo que, si el rastreador ya tiene acceso a cookies de terceros en el contexto de la RP, el acceso a FedCM no presenta ningún riesgo de privacidad adicional.
      Dado que hay usos legítimos de cookies de terceros y relajar la condición mejoraría la UX, este comportamiento cambiará respecto de Chrome 121. Decidimos flexibilizar la restricción de la condición para tratar a un usuario como recurrente: si hay cookies de terceros disponibles para el IdP en el contexto de RP, Chrome confiará en la declaración del IdP sobre el estado de la cuenta del usuario especificado a través de la lista approved_clients y activará la reautenticación automática si corresponde. Las cookies de terceros pueden estar disponibles a través de la configuración del usuario, las políticas empresariales, la heurística (Safari, Firefox, Chrome) y otras APIs de plataformas web (como la API de Storage Access). Ten en cuenta que, cuando el IdP pierda el acceso a las cookies de terceros en el futuro, si un usuario nunca otorgó permiso explícitamente en la IU de FedCM (por ejemplo, haciendo clic en el botón Continuar como) antes, se seguirá tratando como un usuario nuevo.
      No es necesario que los desarrolladores realicen ninguna acción. Ten en cuenta que el flujo de reautenticación automática podría activarse más con este cambio si el IdP tiene acceso a cookies de terceros y declara que el usuario creó una cuenta en el RP en el pasado.

Chrome 120 (noviembre de 2023)

  • Se agregó compatibilidad con las siguientes tres funciones en Chrome 120:
    • API de estado de acceso: La API de estado de acceso es un mecanismo en el que un sitio web, en especial un IdP, informa al navegador el estado de acceso del usuario. Con esta API, el navegador puede reducir las solicitudes innecesarias al IdP y mitigar posibles ataques de tiempo. La API de estado de acceso es un requisito para FedCM. Con este cambio, ya no se requiere la marca chrome://flags/#fedcm-without-third-party-cookies para habilitar FedCM cuando se bloquean las cookies de terceros.
    • API de Error: La API de Error notifica al usuario con una IU del navegador con la información de error proporcionada por el IdP.
    • API de marcas de selección automática: La API de marcas de selección automática comparte si se adquirió un permiso de usuario explícito presionando el botón Continuar como con el IdP y el RP, cada vez que se produce una reautenticación automática o se produce una mediación explícita. El uso compartido solo ocurre después de que se otorga el permiso del usuario para la comunicación del IdP y el RP.

Chrome 117 (septiembre de 2023)

Chrome 116 (agosto de 2023)

  • Se agregó compatibilidad con las siguientes tres funciones en Chrome 116:
    • API de Sugerencia de acceso: Especifica la cuenta de usuario preferida para acceder.
    • API de User Info: Recupera la información del usuario recurrente para que el proveedor de identidad (IdP) pueda renderizar un botón de acceso personalizado en un iframe.
    • API de RP Context: Usa un título que no sea "Acceder" en el diálogo de FedCM.
  • La prueba de origen para la API de estado de acceso de IdP está disponible. Obtén más información en Actualizaciones de FedCM: API de estado de acceso de IdP, Sugerencia de acceso y mucho más.

Chrome 115 (junio de 2023)

  • Se agregó compatibilidad con la reautenticación automática, que permite a los usuarios volver a autenticarse automáticamente cuando regresan después de la autenticación inicial mediante FedCM. Esto mejora las experiencias del usuario y permite una reautenticación más optimizada en la parte restringida después del consentimiento inicial. Obtén más información sobre la reautenticación automática de FedCM.

Chrome 110 (febrero de 2023)

  • Para el extremo de aserción de ID, los IdP deben verificar el encabezado Origin (en lugar del encabezado Referer) para ver si el valor coincide con el origen del ID de cliente.
  • Ya está disponible la compatibilidad con iframes de origen cruzado para FedCM. El insertador debe especificar el objeto identity-credentials-get de Permissions-Policy para permitir la API de FedCM en el iframe de origen cruzado incorporado. Puedes consultar un ejemplo del iframe de origen cruzado.
  • Se agregó una nueva función experimental de Chrome: chrome://flags/#fedcm-without-third-party-cookies. Con esta marca, puedes probar la funcionalidad de FedCM en Chrome al bloquear las cookies de terceros. Obtenga más información en la documentación de FedCM.

Chrome 108 (octubre de 2022)

  • El "manifiesto de nivel superior" ahora se denomina "archivo conocido" en el documento. No se requieren cambios en la implementación.
  • El “manifiesto de IdP” ahora se llama “archivo de configuración” en el documento. No se requieren cambios de implementación.
  • Se cambia el nombre del id_token_endpoint en el "archivo de configuración" por id_assertion_endpoint.
  • Las solicitudes al IdP ahora incluyen un encabezado Sec-Fetch-Dest: webidentity en lugar de un encabezado Sec-FedCM-CSRF: ?1.

Chrome 105 (agosto de 2022)

  • Se agregó información de seguridad importante al documento. El proveedor de identidad (IdP) debe verificar si el encabezado Referer coincide con el origen en el que se registró el RP con anticipación en el extremo del token de ID.
  • Se cambia el nombre del manifiesto de nivel superior de /.well-known/fedcm.json a /.well-known/web-identity, y la URL especificada en provider_urls debe incluir el nombre del archivo.
  • Los métodos login(), logout() y revoke() en instancias de FederatedCredential ya no están disponibles.
  • La API de Federated Credential Management ahora usa un nuevo tipo IdentityCredential en lugar de FederatedCredential. Esto se puede usar para la detección de atributos, pero es un cambio prácticamente invisible.
  • Mueve la funcionalidad de acceso de una combinación de navigator.credentials.get() y FederatedCredential.prototype.login() a navigator.credentials.get().
  • El extremo de revocación en el manifiesto ya no está vigente.
  • Usa un campo identity en lugar de un campo federated para las llamadas a navigator.credentials.get().
  • url ahora es configURL y debe ser la URL completa del archivo JSON de manifiesto, en lugar de la ruta de acceso para una llamada a navigator.credentials.get().
  • nonce ahora es un parámetro opcional para navigator.credentials.get().
  • hint ya no está disponible como opción para navigator.credentials.get().
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104 (junio de 2022)

Chrome 103 (mayo de 2022)

  • Admite entornos de escritorio.
  • Admite la configuración por RP en computadoras de escritorio.
  • El extremo de metadatos del cliente ahora es opcional. En este extremo, la URL de la política de privacidad también es opcional.
  • Se agregó una advertencia sobre el uso de la CSP connect-src en el documento.

Recursos