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 (em inglês), em que enviaremos atualizações à medida que a API evoluir.
  • Incentivamos os IdPs a distribuir a API FedCM usando SDKs do JavaScript enquanto a API estiver em desenvolvimento e a desencorajar os RPs de hospedar os SDKs com auto-hospedagem. Isso garante que os IdPs possam fazer alterações à medida que a API evolui, sem precisar pedir que todas as partes confiáveis façam a reimplantação.

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 federação de identidade se baseia (iframes, redirecionamentos e cookies) estão sendo usados de forma indevida para rastrear usuários na Web. Como o user agent 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.

Um usuário está fazendo login em um RP usando o FedCM.

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. Confira as áreas que esperamos serem afetadas. Se houver outros casos de uso não listados, você pode participar e compartilhar feedback.

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. As restrições de cookies de terceiros foram afetadas.
  3. Seus RPs são sites de terceiros. Se suas RPs forem sites significativamente relacionados, você poderá ser mais bem atendido pelos 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 apenas se sua 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 o 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 interagirão 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

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

Quando o usuário acessa o site da parte confiável (RP, na sigla em inglês), uma caixa de diálogo de login do FedCM aparece se o usuário estiver conectado ao IdP.

Se o usuário não tiver uma conta na parte restrita com o IdP, uma caixa de diálogo de inscrição será mostrada com outros textos de divulgação, como os Termos de Serviço e uma Política de Privacidade da 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. Saiba mais sobre como o login funciona no FedCM.

Configurações para ativar ou desativar o FedCM

Os usuários podem ativar ou desativar o FedCM nas configurações do Chrome no Android. Acesse Configurações > Configurações do site > Login de terceiros e mude a opção.

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

Eles podem fazer o mesmo para o Chrome no computador acessando chrome://settings/content/federatedIdentityApi.

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

Período de espera do comando

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 fechados consecutivos 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 desempenho para IdPs.

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 da TAG. Estamos avaliando as melhores soluções para as seguintes 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 a WebAuthn: conforme sugerido pela Apple, estamos muito entusiasmados com o progresso das chaves de acesso e com o trabalho de fornecer uma experiência coerente e coesa entre FedCM, Passwords, WebAuthn e WebOTP.
  • Status de login: como a Apple sugeriu com a API 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 vai 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 do sistema) e suporte para SAML.
  • Relação com mDLs/VCs/etc.: continue trabalhando para entender como elas 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 integrar com o FedCM, você precisa criar um arquivo de configuração 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 de um 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, geralmente exigindo 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.