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 se planificaron cambios rotundos.

¿Para quiénes son estas actualizaciones?

Estas actualizaciones son para ti si cumples con los siguientes requisitos:

  • Eres un IdP que usa la API de Federated Credential Management.
  • Eres una AC o un RP y te interesa extender la API para que se adapte a tu caso de uso (p.ej., observaste o participaste en los debates del repositorio de CG de FedID y quieres comprender los cambios realizados en la API.
  • Eres proveedor de un navegador y quieres ponerte al día con el estado de implementación de la API.

Si es la primera vez que usas esta API o aún no la probaste, 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, consulta nuestro blog o el boletín informativo.

Chrome 132 (noviembre de 2024)

Chrome 131 (octubre de 2024)

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 a los RP especificar una propiedad domainHint en una llamada a la API de FedCM para mostrar solo las cuentas coincidentes del usuario.

Chrome 122 (enero de 2024)

Chrome 121 (diciembre de 2023)

  • La condición relajada para activar la reautorización automática de FedCM:
    • La función de reautorización automática en FedCM solo se activa cuando el usuario regresa. Esto significa que el usuario debe acceder a la RP con FedCM una vez en cada instancia del navegador, antes de que se pueda activar la reautorización automática. Esta condición se introdujo inicialmente para mitigar el riesgo de que los servicios de seguimiento traten de hacerse pasar por un proveedor de identidad (IdP) y engañen al navegador para que vuelva a autenticar automáticamente a un usuario sin su conocimiento o consentimiento. Sin embargo, este diseño no puede garantizar el beneficio de privacidad si el servicio de seguimiento tiene acceso a cookies de terceros en el contexto de la RP. El FedCM solo proporciona un subconjunto de las capacidades posibles a través de las cookies de terceros, por lo que, si el servicio de seguimiento ya tiene acceso a las cookies de terceros en el contexto del RP, el acceso al FedCM no presenta ningún riesgo adicional de privacidad.
      Dado que hay usos legítimos de las cookies de terceros y relajar la condición mejoraría la UX, este comportamiento cambiará a partir de Chrome 121. Decidimos relajar la restricción de la condición para tratar a un usuario como un usuario que regresa: si las cookies de terceros están disponibles para el IdP en el contexto del RP, Chrome confiará en la declaración del IdP sobre el estado de la cuenta del usuario especificada a través de la lista approved_clients y activará la reautorización automática si corresponde. Las cookies de terceros pueden estar disponibles a través de la configuración del usuario, las políticas de la empresa, las heurísticas (Safari, Firefox, Chrome) y otras APIs de plataformas web (como la API de acceso al almacenamiento). Ten en cuenta que, cuando la AC pierda el acceso a las cookies de terceros en el futuro, si un usuario nunca otorgó permiso de forma explícita en la IU de FedCM (por ejemplo, haciendo clic en el botón Continuar como), se lo seguirá considerando un usuario nuevo.
      No se requiere ninguna acción del desarrollador. Ten en cuenta que el flujo de reautorización automática podría activarse más con este cambio si la AC tiene acceso a cookies de terceros y afirma que el usuario creó una cuenta en la RP en el pasado.

Chrome 120 (noviembre de 2023)

  • Se agregó compatibilidad con las siguientes tres funciones en Chrome 120:
    • API de Login Status: La API de Login Status es un mecanismo en el que un sitio web, en especial un IdP, informa al navegador el estado de acceso de su usuario. Con esta API, el navegador puede reducir las solicitudes innecesarias al IdP y mitigar los posibles ataques de sincronización. La API de Login Status 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 bloquea una cookie de terceros.
    • API de Error: La API de Error notifica al usuario mostrándole una IU del navegador con la información de error que proporciona el IdP.
    • API de Auto-Selected Flag: La API de Auto-Selected Flag comparte si se adquirió un permiso de usuario explícito presionando el botón Continuar como con la AC y la RP, cada vez que se produce una reautorización automática o una mediación explícita. El uso compartido solo se produce después de que se otorga permiso al usuario para la comunicación entre la AC y la RP.

Chrome 117 (septiembre de 2023)

Chrome 116 (agosto de 2023)

  • Se agregó compatibilidad con las siguientes tres funciones en Chrome 116:
    • API de Login Hint: Especifica una cuenta de usuario preferida para acceder.
    • API de User Info: Recupera la información del usuario que regresa para que el proveedor de identidad (IdP) pueda renderizar un botón de acceso personalizado dentro de un iframe.
    • API de Contexto de RP: Usa un título diferente de "Acceder" en el diálogo de FedCM.
  • La prueba de origen para la API de IdP Sign-In Status 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 autenticación automática, que permite que los usuarios se vuelvan a autenticar automáticamente cuando regresan después de su autenticación inicial con FedCM. Esto mejora la experiencia del usuario y permite una reautorización más optimizada en la RP después de la autenticación inicial. Obtén más información sobre la reautenticación automática de FedCM.

Chrome 110 (febrero de 2023)

  • En el caso del extremo de aserción de ID, las 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 varios orígenes para FedCM. El incorporador debe especificar el elemento identity-credentials-get 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 marca de Chrome chrome://flags/#fedcm-without-third-party-cookies. Con esta marca, puedes probar la funcionalidad de FedCM en Chrome bloqueando las cookies de terceros. Obtén más información en la documentación de FedCM.

Chrome 108 (octubre de 2022)

  • En el documento, el "manifiesto de nivel superior" ahora se llama "archivo conocido". No se requieren cambios en la implementación.
  • El "manifiesto de la AC" ahora se llama "archivo de configuración" en el documento. No se requieren cambios de implementación.
  • Se cambió el nombre de id_token_endpoint en el “archivo de configuración” a 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 que el RP registró 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 componentes, pero, de otro modo, es un cambio en gran medida 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 navigator.credentials.get().
  • url ahora es configURL y debe ser la URL completa del archivo JSON del manifiesto en lugar de la ruta de acceso para una llamada 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 connect-src de CSP en el documento.

Recursos