Visão geral da API Federated Credential Management

Uma API da Web para federação de identidade que preserva a privacidade.

O que é FedCM?

O FedCM (gerenciamento de credenciais federadas) é uma abordagem que preserva a privacidade dos serviços de identidade federada (como "Fazer login com...") que não depende de cookies de terceiros ou redirecionamentos de navegação.

Status da implementação

No futuro, planejamos lançar vários novos recursos com base no feedback que recebemos de provedores de identidade (IdPs), partes confiáveis (RPs) e fornecedores de navegadores. Esperamos que os provedores de identidade adotem o FedCM, mas ele ainda é uma API em desenvolvimento ativo.

Para minimizar os desafios da implantação de mudanças incompatíveis com versões anteriores, temos duas recomendações para provedores de identidade:

  • Inscreva-se na nossa newsletter para receber atualizações à medida que a API evolui.
  • Recomendamos que os IdPs distribuam a API FedCM usando SDKs JavaScript enquanto a API está sendo desenvolvida e que os RPs não hospedem SDKs por conta própria. Isso vai garantir que os IdPs possam fazer alterações conforme a API evolui, sem precisar pedir que todas as partes confiáveis sejam reimplantadas.

Por que precisamos do FedCM?

Na última década, a federação de identidade desempenhou um papel central no aumento do nível de autenticação na Web em termos de confiabilidade, facilidade de uso (por exemplo, login único sem senha) e segurança (por exemplo, maior resistência a ataques de phishing e de preenchimento de credenciais) em comparação com os nomes de usuário e as senhas por site.

Com a federação de identidade, uma parte confiável (RP, na sigla em inglês) depende de um provedor de identidade (IdP, na sigla em inglês) para fornecer ao usuário uma conta sem exigir um novo nome de usuário e senha.

Infelizmente, os mecanismos em que a identidade federada se baseia (iframes, redirecionamentos e cookies) estão sendo usados de forma indevida para rastrear usuários na Web. Como o agente do usuário não consegue diferenciar a federação de identidade do rastreamento, as mitigações para os vários tipos de abuso dificultam a implantação da federação de identidade.

A API Federated Credential Management (FedCM) fornece uma abstração específica para casos de uso de fluxos de identidade federada na Web, expondo uma caixa de diálogo mediada pelo navegador que permite que os usuários escolham contas de provedores de identidade para fazer login em sites.

O FedCM é uma jornada com várias etapas para melhorar a identidade na Web. Na primeira etapa, estamos focados em reduzir o impacto das restrições de cookies de terceiros na identidade federada. Consulte a seção do roadmap para saber mais.

O que esperamos que seja afetado?

Com o esforço da comunidade e nossa pesquisa, descobrimos que há algumas integrações relacionadas à federação de identidade que são afetadas pelas restrições de cookies de terceiros:

O objetivo principal do FedCM é reduzir o impacto das restrições de cookies de terceiros na federação de identidade, e estas são as áreas que esperamos que sejam afetadas. Se houver outros casos de uso não listados, você pode participar e compartilhar feedback.

FedCM como um indicador de confiança para outras APIs

Além de processar a identidade federada, o FedCM também serve como um indicador de confiança para outras APIs do Sandbox de privacidade.

A partir do Chrome 131, a API Storage Access (SAA) usa o FedCM como um indicador de confiança. Essa integração é útil para sites que dependem do FedCM para autenticação e do SAA para permitir que iframes entre origens acessem o armazenamento necessário.

Quando um usuário faz a autenticação com o FedCM, com a ativação do RP, o conteúdo do IdP incorporado ao site do RP pode chamar o método requestStorageAccess() para receber automaticamente o acesso de armazenamento aos próprios cookies de nível superior sem precisar de uma solicitação do usuário. A permissão só será concedida automaticamente enquanto o usuário estiver conectado com o FedCM e o estado de login do FedCM estiver ativo. Leia a documentação da API Storage Access para mais detalhes.

Quem deve usar o FedCM?

A FedCM só será útil para você se todas estas condições forem aplicáveis:

  1. Você é um provedor de identidade (IdP).
  2. Você é afetado pelas restrições de cookies de terceiros.
  3. Seus RPs são sites de terceiros. Se os RPs forem sites relacionados, talvez seja melhor usar os conjuntos de sites relacionados.

Você é um IdP

O FedCM requer suporte de um provedor de identidade. Uma parte confiável não pode usar o FedCM de forma independente. Se você for um RP, peça ao seu provedor de identidade para fornecer instruções.

Você é afetado pelas restrições de cookies de terceiros

Use o FedCM somente se a integração atual for afetada pelas restrições de cookies de terceiros.

Se você não tiver certeza se a federação de identidade vai continuar funcionando quando os cookies de terceiros não estiverem disponíveis, teste o efeito em um site bloqueando cookies de terceiros no Chrome.

Se não houver impacto detectável na federação de identidade sem cookies de terceiros, você poderá continuar usando a integração atual sem a FedCM.

Se você não souber o que verificar, leia mais sobre os recursos conhecidos que as restrições de cookies de terceiros devem afetar.

Seus RPs são de terceiros

Se você for um provedor de identidade com RPs que têm uma relação primária com o IdP, os conjuntos de sites relacionados podem ser uma opção melhor. Conjuntos de sites relacionados (RWS, na sigla em inglês) são uma maneira que organizações têm para declarar relações entre sites para que os navegadores permitam o acesso limitado de cookies de terceiros para fins específicos. Isso permite que os cookies de terceiros funcionem entre conjuntos de sites relacionados, mesmo quando eles são restritos.

Como os usuários vão interagir com o FedCM?

O foco principal do FedCM é reduzir o impacto das restrições de cookies de terceiros. Os usuários podem ativar ou desativar o FedCM nas configurações do usuário do Chrome.

O FedCM foi projetado para ser independente de protocolo e oferece as seguintes funcionalidades relacionadas à autenticação.

Confira nossa demonstração para saber como funciona.

Fazer login em uma parte confiável

O FedCM tem dois modos de interface:

Modo passivo. O modo passivo não exige interação do usuário para que o comando FedCM apareça. Quando o usuário acessa o site da parte confiável (RP), uma caixa de diálogo de login do FedCM pode aparecer quando navigator.credentials.get() é chamado e o usuário faz login no IdP.

Um usuário faz login em um RP usando o FedCM no modo passivo.

Modo ativo. No modo ativo, é necessária uma interação do usuário (como um clique no botão) para acionar um comando do FedCM.

Um usuário faz login em um RP usando o FedCM no modo ativo.

Se o usuário não tiver uma conta no RP com o IdP, uma caixa de diálogo de inscrição vai aparecer com um texto de divulgação adicional, como os termos de serviço e a política de privacidade do RP, se eles forem fornecidos.

O usuário pode concluir o login tocando em Continuar como.... Se for bem-sucedido, o navegador armazena o fato de que o usuário criou uma conta federada no RP com o IdP.

Espera-se que os RPs funcionem em navegadores que não oferecem suporte ao FedCM. Os usuários precisam poder usar um processo de login que não seja do FedCM em tais navegadores. Saiba como o login funciona no FedCM.

Configurações para ativar ou desativar o FedCM

Os usuários podem ativar ou desativar o FedCM no modo passivo. Isso não afeta o modo ativo, porque a solicitação de login é iniciada por um gesto do usuário, e o navegador precisa ajudar os usuários a concluir o fluxo de login.

Computador

Os usuários podem ativar ou desativar o FedCM para o Chrome no computador em chrome://settings/content/federatedIdentityApi.

Ative o FedCM nas configurações do Chrome no computador ativando o login de terceiros.

Android

Para ativar ou desativar o FedCM no Chrome para Android, os usuários podem acessar as Configurações do Chrome > Configurações do site > Login de terceiros e mudar o interruptor.

Ative o FedCM nas configurações do Chrome no dispositivo móvel ativando o login de terceiros.

Período de espera do prompt

Se o usuário fechar a interface manualmente, uma entrada será adicionada temporariamente à interface de configurações, e a interface não será mostrada no mesmo site por um período. A interface será reativada após o período, mas a duração será expandida exponencialmente em fechamentos consecutivos. Por exemplo, no Chrome:

Tempos consecutivos fechados Período em que a solicitação do FedCM é suprimida
1 Duas horas
2 Um dia
3 Uma semana
4+ Quatro semanas

Outros navegadores podem definir períodos de tempo de espera diferentes.

Os usuários podem reativar o FedCM no RP manualmente acessando a página de configurações ou clicando na IU do PageInfo (um ícone de cadeado ao lado da barra de URL) e redefinindo a permissão.

Roteiro

Estamos trabalhando para fazer várias mudanças no FedCM. Consulte Atualizações para mais detalhes.

  • Registro de alterações: atualizações da API Federated Credential Management.

Sabemos que ainda há algumas coisas a serem feitas, incluindo problemas que ouvimos de provedores de identidade, provedores de RP e navegadores. Acreditamos que sabemos como resolver esses problemas:

  • Suporte a iframes de origem cruzada: os provedores de identidade podem chamar o FedCM em um iframe de origem cruzada (atualização).
  • Botão personalizado: os IdPs podem mostrar a identidade de um usuário recorrente no botão de login em um iframe de origem cruzada pertencente ao IdP (atualização).
  • Endpoint de métricas: fornece métricas de performance para provedores de identidade.

Além disso, há problemas não resolvidos que estamos analisando ativamente, incluindo propostas específicas que estamos avaliando ou criando protótipos:

Por fim, há coisas que ainda precisam ser feitas com base no feedback da Mozilla, Apple e revisores do TAG. Estamos avaliando as melhores soluções para essas perguntas abertas:

  • Melhorar a compreensão do usuário e a correspondência da intenção: como Mozilla observou, queremos continuar explorando diferentes formulações de UX e áreas de superfície, bem como critérios de acionamento.
  • Atributos de identidade e divulgação seletiva: conforme observado pelos revisores do TAG, queremos oferecer um mecanismo para compartilhar seletivamente mais ou menos atributos de identidade (como e-mails, faixas etárias, números de telefone etc.).
  • Aumento das propriedades de privacidade: como a Mozilla sugeriu em sua posição de padrões, queremos continuar explorando mecanismos para oferecer melhores garantias de privacidade, como a cegueira de IdP e identificadores direcionados.
  • Relação com o WebAuthn: como sugerido pela Apple, estamos muito felizes em ver o progresso das chaves de acesso e em trabalhar para oferecer uma experiência coerente e coerente entre FedCM, senhas, WebAuthn e WebOTP.
  • Status de login: como a Apple sugeriu com a API de status de login da CG de privacidade, compartilhamos a intuição de que o status de login do usuário é uma informação útil que pode ajudar os navegadores a tomar decisões informadas. Estamos animados para ver as oportunidades que isso pode gerar. (atualização)
  • Empresas e educação: como fica claro no FedID CG, ainda há muitos casos de uso que não são bem atendidos pelo FedCM e com os quais gostaríamos de trabalhar, como sair do front-channel (a capacidade de um IdP enviar um sinal para RPs para sair) e suporte a SAML.
  • Relação com mDLs/VCs/etc: continue trabalhando para entender como eles se encaixam no FedCM, por exemplo, com a API Mobile Document Request.

Usar a API FedCM

Você precisa de um contexto seguro (HTTPS ou localhost) no IdP e no RP no Chrome para usar o FedCM.

Para fazer a integração com o FedCM, você precisa criar um arquivo conhecido, um arquivo de configuração e endpoints para a lista de contas, a emissão de declarações e (opcionalmente) os metadados do cliente. A partir daí, o FedCM expõe APIs JavaScript que os RPs podem usar para fazer login com o IdP.

Para saber como usar a API FedCM, consulte o guia para desenvolvedores da FedCM.

Engajamento e compartilhamento de feedback

Conformidade com as leis de privacidade eletrônica

O uso do FedCM, seja como um IdP ou um RP, envolve o armazenamento de informações no equipamento terminal do usuário ou o acesso a informações já armazenadas nele. Portanto, é uma atividade sujeita às leis de privacidade eletrônica no Espaço Econômico Europeu (EEE) e no Reino Unido, que geralmente exigem o consentimento do usuário. É sua responsabilidade determinar se o uso do FedCM é estritamente necessário para fornecer um serviço on-line solicitado explicitamente pelo usuário e, portanto, isento do requisito de consentimento. Para mais informações, leia nossas Perguntas frequentes sobre compliance relacionadas à privacidade do Sandbox de privacidade.