Actualizaciones de la API de Federated Credential Management

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

¿A quiénes están dirigidas estas actualizaciones?

Estas actualizaciones son para ti en los siguientes casos:

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

Si eres nuevo en esta API o aún no la has probado, lee la introducción a la API de Federated Credential Management.

Registro de cambios

Para mantenerte al tanto de los cambios de la API de FedCM, consulta nuestro blog o el 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 para mostrar solo las cuentas coincidentes del usuario.

Chrome 122 (enero de 2024)

Chrome 121 (diciembre de 2023)

  • La condición de flexibilización para activar la reautenticación automática de FedCM:
    • La función de reautenticació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 active el reautenticación automático. Esta condición se introdujo en un principio para mitigar el riesgo de que los rastreadores aparenten ser proveedores de identidad (IdP) y engañan al navegador para que reautentique automáticamente 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 RP. La FedCM proporciona solo un subconjunto de las funciones posibles a través de cookies de terceros, por lo que, si la herramienta de seguimiento ya tiene acceso a cookies de terceros en el contexto de RP, el acceso a la 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á a partir de Chrome 121. Decidimos flexibilizar la restricción de la condición para tratar a un usuario como recurrente: si las cookies de terceros están 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 y 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, cuando hizo clic en el botón Continuar como) antes, se lo considerará 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 reclama que el usuario creó una cuenta en el RP con anterioridad.

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 de FedCM. Con este cambio, la marca chrome://flags/#fedcm-without-third-party-cookies ya no es necesaria para habilitar FedCM cuando se bloquean las cookies de terceros.
    • API de Error: La API de Error notifica al usuario mostrando una IU del navegador con la información del error proporcionada por el IdP.
    • API de Auto-Selected Flag: La API de Auto-Selected Flag comparte si se obtuvo un permiso explícito del usuario cuando se presiona el botón Continuar como con el IdP y el RP, cada vez que se produce un reautenticación automático 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 de IdP y RP.

Chrome 117 (septiembre de 2023)

Chrome 116 (agosto de 2023)

  • Se agregó compatibilidad con las siguientes tres funciones en Chrome 116:
    • API deLogin Hint: Especifica una 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 dentro de un iframe.
    • API de RP Context: Usa un título diferente de “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 del 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 su autenticación inicial con FedCM. Esto mejora las experiencias de los usuarios 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 de iframe de origen cruzado para FedCM. El incorporador debe especificar Permissions-Policy identity-credentials-get 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 bloquear las cookies de terceros para probar la funcionalidad de FedCM en Chrome. Obtén 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 del IdP” ahora se llama “archivo de configuración” en el documento. No se requieren cambios en la implementación.
  • Se cambió el nombre del 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ó por adelantado 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, por lo demás, 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 de manifiesto en lugar de la ruta de acceso de 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 grupo restringido 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 CSP connect-src en el documento.

Recursos