Una API web para la federación de identidades que preserva la privacidad.
¿Qué es FedCM?
FedCM (Administración de credenciales federadas) es un enfoque que preserva la privacidad de los servicios de identidad federada (como "Acceder con…") que no depende de cookies de terceros ni redireccionamientos de navegación.
Estado de implementación
- Estado de la plataforma Chrome
- FedCM se envió en Chrome 108.
- La propuesta de FedCM está disponible para el debate público.
- FedCM todavía no es compatible con otros navegadores.
- Mozilla está implementando un prototipo para Firefox y Apple expresó su apoyo general y su interés en trabajar en conjunto en la propuesta de FedCM.
En el futuro, planeamos presentar una serie de funciones nuevas en función de los comentarios que recibimos de los proveedores de identidad (IdP), las partes de confianza (RP) y los proveedores de navegadores. Si bien esperamos que los proveedores de identidad adopten FedCM, ten en cuenta que esta es una API que aún se encuentra en desarrollo activo.
Para minimizar los desafíos de implementar cambios que no son retrocompatibles, tenemos dos recomendaciones para los proveedores de identidad:
- Suscríbete a nuestro boletín informativo, en el que te enviaremos actualizaciones a medida que la API evolucione.
- Recomendamos a los proveedores de ID que distribuyan la API de FedCM con SDK de JavaScript mientras la API madura y que desalienten a los proveedores de RP a alojar sus propios SDK. Esto garantizará que las IdP puedan realizar cambios a medida que evoluciona la API, sin tener que pedirles a todos sus partes de confianza que vuelvan a implementarla.
¿Por qué necesitamos FedCM?
En la última década, la identidad federada ha desempeñado un papel fundamental en la elevación de la barra de la autenticación en la Web, en términos de confiabilidad, facilidad de uso (por ejemplo, acceso único sin contraseña) y seguridad (por ejemplo, mayor resistencia a los ataques de phishing y de uso excesivo de credenciales) en comparación con los nombres de usuario y las contraseñas por sitio.
Con la federación de identidades, un RP (entidad de confianza) depende de un IdP (proveedor de identidad) para proporcionarle al usuario una cuenta sin requerir un nombre de usuario ni una contraseña nuevos.
Lamentablemente, se está abusando de los mecanismos en los que se basa la identidad federada (iframes, redireccionamientos y cookies) para hacer un seguimiento de los usuarios en la Web. Como el usuario-agente no puede diferenciar entre la federación de identidades y el seguimiento, las mitigaciones para los diversos tipos de abuso dificultan la implementación de la federación de identidades.
La API de Federated Credential Management (FedCM) proporciona una abstracción específica del caso de uso para los flujos de identidad federada en la Web, ya que expone un diálogo mediado por el navegador que permite a los usuarios elegir cuentas de los proveedores de identidades para acceder a sitios web.
La FedCM es un recorrido de varios pasos para mejorar la identidad en la Web. En el primer paso, nos enfocamos en reducir el impacto de las restricciones de cookies de terceros en la identidad federada (consulta la sección de planificación para obtener más información).
¿Qué esperamos que se vea afectado?
A través del esfuerzo de la comunidad y de nuestra investigación, descubrimos que hay algunas integraciones relacionadas con la agregación de identidades que se ven afectadas por las restricciones de cookies de terceros:
- Salida del canal frontal de OpenID Connect
- Administración de sesiones de OpenID Connect
- Renovación de tokens en segundo plano basada en iframes
- Widgets de acceso basados en iframes
El primer objetivo de FedCM es reducir el impacto de las restricciones de cookies de terceros en la integración de identidades, y estas son las áreas que esperamos que se vean afectadas. Si hay casos de uso adicionales que no se mencionan, puedes participar y compartir comentarios.
FedCM como indicador de confianza para otras APIs
Además de controlar la identidad federada, FedCM también funciona como un indicador de confianza para otras APIs de Privacy Sandbox.
A partir de Chrome 131, la API de acceso a almacenamiento (SAA) usa FedCM como un indicador de confianza. Esta integración es útil para los sitios web que dependen de FedCM para la autenticación y del SAA para permitir que los iframes de origen cruzado accedan al almacenamiento necesario.
Cuando un usuario se autentica con FedCM, con la habilitación del RP, el contenido de la AC incorporado en el sitio web del RP puede llamar al método requestStorageAccess()
para obtener acceso de almacenamiento automáticamente a sus propias cookies de nivel superior sin necesidad de una solicitud adicional del usuario. El permiso se otorgará automáticamente solo mientras el usuario haya accedido con FedCM y el estado de acceso de FedCM esté activo. Para obtener más detalles, lee la documentación de la API de Storage Access.
¿Quiénes deberían usar FedCM?
Esperamos que FedCM te resulte útil solo si se cumplen todas estas condiciones:
- Eres un proveedor de identidad (IdP).
- Te afectan las restricciones de cookies de terceros.
- Tus RP son sitios de terceros. Si tus RP son sitios relacionados de forma significativa, es posible que te resulte más conveniente usar los conjuntos de sitios web relacionados.
Eres un IdP
FedCM requiere la asistencia de un proveedor de identidad. Una parte de confianza no puede usar FedCM de forma independiente. Si eres un RP, puedes pedirle a tu IdP que te proporcione instrucciones.
Te afectan las restricciones de cookies de terceros
Solo debes usar FedCM si tu integración actual se ve afectada por las restricciones de cookies de terceros.
Si no sabes si tu identidad federada seguirá funcionando cuando las cookies de terceros no estén disponibles, puedes bloquear las cookies de terceros en Chrome para probar el efecto en un sitio web.
Si no hay un impacto detectable en tu federación de identidades sin cookies de terceros, puedes seguir usando tu integración actual sin FedCM.
Si no sabes qué verificar, obtén más información sobre las funciones conocidas que se espera que afecten las restricciones de cookies de terceros.
Tus RP son de terceros
Si eres un proveedor de identidad cuyos RP tienen una relación propia con el proveedor de identidad, es posible que los conjuntos de sitios web relacionados sean una mejor opción. Los conjuntos de sitios web relacionados (RWS) son una forma para que una organización declare relaciones entre sitios, de modo que los navegadores permitan el acceso limitado de cookies de terceros para fines específicos. Esto permite que las cookies de terceros funcionen entre conjuntos de sitios relacionados de manera significativa, incluso cuando las cookies de terceros están restringidas.
¿Cómo interactuarán los usuarios con FedCM?
El objetivo principal de FedCM es mitigar el impacto de las restricciones de las cookies de terceros. Los usuarios pueden habilitar o inhabilitar FedCM en la configuración del usuario de Chrome.
FedCM está diseñado para no depender de protocolos y ofrece las siguientes funciones relacionadas con la autenticación.
Mira nuestra demostración para ver cómo funciona.
Cómo acceder a una parte de confianza
Cuando el usuario llegue al sitio web de la parte de confianza (RP), aparecerá un diálogo de acceso de FedCM si el usuario accedió al IdP.
Si el usuario no tiene una cuenta en la RP con el IdP, aparece un diálogo de registro con texto de divulgación adicional, como las condiciones del servicio de la RP y una política de privacidad, si se proporcionan.
El usuario puede completar el acceso presionando Continuar como…. Si se realiza correctamente, el navegador almacena el hecho de que el usuario creó una cuenta federada en la RP con la AC.
Se espera que los RP funcionen en navegadores que no admitan FedCM. Los usuarios deben poder usar un proceso de acceso existente que no sea de FedCM. Obtén más información sobre cómo funciona el acceso en el FedCM.
Configuración para habilitar o inhabilitar FedCM
Los usuarios pueden habilitar o inhabilitar FedCM en la configuración de Chrome para Android. Ve a Configuración > Configuración del sitio > Acceso de terceros y, luego, cambia el botón de activación.
Para hacer lo mismo en Chrome para computadoras, puede ir a chrome://settings/content/federatedIdentityApi
.
Período de inactividad de la solicitud
Si el usuario cierra la IU de forma manual, se agregará una entrada temporalmente a la IU de configuración y la IU no se mostrará en el mismo sitio web durante un período. La IU se volverá a habilitar después del período, pero la duración se expandirá de forma exponencial en los cierres consecutivos. Por ejemplo, en Chrome:
Cantidad de veces consecutivas que estuvo cerrado | Período en el que se suprime la solicitud de FedCM |
---|---|
1 | Dos horas |
2 | Un día |
3 | Una semana |
4 o más | Cuatro semanas |
Es posible que otros navegadores definan sus propios períodos de inactividad diferentes.
Los usuarios pueden volver a habilitar FedCM en la RP de forma manual. Para ello, deben ir a la página de configuración o hacer clic en la IU de PageInfo (un ícono de candado junto a la barra de URL) y restablecer el permiso.
Hoja de ruta
Estamos trabajando para implementar varios cambios en FedCM. Consulta Actualizaciones para obtener más detalles.
- Registro de cambios: Actualizaciones de la API de Federated Credential Management.
Sabemos que aún queda trabajo por hacer, incluidos los problemas que escuchamos de los proveedores de IdP, RP y navegadores. Creemos que sabemos cómo resolver estos problemas:
- Compatibilidad con iframes de origen cruzado: Los proveedores de identidad pueden llamar a FedCM desde un iframe de origen cruzado (actualización).
- Botón personalizado: Los IdPs pueden mostrar la identidad de un usuario recurrente en el botón de acceso desde un iframe de origen cruzado que pertenece al IdP (actualización).
- Extremo de las métricas: Proporciona métricas de rendimiento a los IdP.
Además, hay problemas sin resolver que estamos explorando de forma activa, incluidas propuestas específicas que estamos evaluando o prototipando:
- CORS: Estamos dialogando con Apple y Mozilla para asegurarnos de mejorar las especificaciones de las recuperaciones de FedCM.
- API de varios IdP: Estamos explorando formas de admitir varios IdP para que coexistan de forma cooperativa en el selector de cuentas de FedCM.
- API de estado de acceso de IdP: Mozilla identificó un problema de ataque de tiempo y estamos explorando formas en que un IdP pueda notificar de forma proactiva al navegador el estado de acceso del usuario para mitigar el problema. (actualización)
- Accede a la API de IdP: Para admitir varias situaciones, cuando un usuario no accede al IdP, el navegador proporciona una IU para que el usuario acceda sin salir de la RP.
Por último, creemos que aún hay aspectos que se deben abordar, según los comentarios de Mozilla, Apple y los revisores de la TAG. Estamos trabajando para evaluar las mejores soluciones para estas preguntas abiertas:
- Mejorar la comprensión del usuario y la coincidencia de la intención: Como señaló Mozilla, nos gustaría seguir explorando diferentes formulaciones de UX y áreas de la plataforma, así como criterios de activación.
- Atributos de identidad y divulgación selectiva: Como nuestros revisores de la etiqueta de privacidad señalaron, nos gustaría proporcionar un mecanismo para compartir de forma selectiva más o menos atributos de identidad (como correos electrónicos, intervalos de edad, números de teléfono, etcétera).
- Aumento de las propiedades de privacidad: Como Mozilla sugirió en su posición sobre estándares, nos gustaría seguir explorando mecanismos para ofrecer mejores garantías de privacidad, como la ceguera de la IdP y los identificadores dirigidos.
- Relación con WebAuthn: Como sugirió Apple, nos entusiasma ver el progreso de las llaves de acceso y trabajar para proporcionar una experiencia coherente entre FedCM, contraseñas, WebAuthn y WebOTP.
- Estado de acceso: Como sugirió Apple con la API de estado de acceso de los CGA de privacidad, compartimos la intuición de que el estado de acceso del usuario es una información útil que puede ayudar a los navegadores a tomar decisiones fundamentadas. Nos entusiasma ver qué oportunidades surgen a partir de esto. (actualización)
- Empresas y educación: Como se indica claramente en el CG de FedID, todavía hay muchos casos de uso que FedCM no cubre bien y en los que nos gustaría trabajar, como la salida del canal frontal (la capacidad de un IdP para enviar una señal a los RP para salir) y la compatibilidad con SAML.
- Relación con mDL, VC, etcétera: Sigue trabajando para comprender cómo se integran en FedCM, por ejemplo, con la API de Mobile Document Request.
Usa la API de FedCM
Para usar FedCM, necesitas un contexto seguro (HTTPS o localhost) en el IdP y en el RP en Chrome.
Para integrar FedCM, debes crear un archivo conocido, un archivo de configuración y extremos para la lista de cuentas, la emisión de aserciones y, de manera opcional, los metadatos del cliente. Desde allí, FedCM expone las APIs de JavaScript que los RP pueden usar para acceder con el IdP.
Para obtener información sobre cómo usar la API de FedCM, consulta la Guía para desarrolladores de FedCM.
Interactúa y comparte comentarios
- GitHub: Lee la explicación, plantea problemas y sigue el debate.
- Asistencia para desarrolladores: Haz preguntas y únete a los debates en el repositorio de asistencia para desarrolladores de Privacy Sandbox.
Cumplimiento de las leyes de privacidad en línea
El uso de FedCM, ya sea como IdP o RP, implica el almacenamiento de información en el equipo terminal de un usuario o el acceso a la información que ya está almacenada en él, por lo que es una actividad sujeta a las leyes de privacidad en línea del Espacio Económico Europeo (EEE) y el Reino Unido, que generalmente requieren el consentimiento del usuario. Es tu responsabilidad determinar si el uso de FedCM es estrictamente necesario para proporcionar un servicio en línea que el usuario solicitó de forma explícita y, por lo tanto, está exento del requisito de consentimiento. Para obtener más información, te recomendamos que leas nuestras Preguntas frecuentes sobre el cumplimiento relacionado con la privacidad de Privacy Sandbox.