Uma API da Web para a federação de identidade que preserva a privacidade.
O que é FedCM?
O Gerenciamento de credenciais federadas (FedCM, na sigla em inglês) é uma abordagem que preserva a privacidade para serviços de identidade federada (como "Fazer login com..."). Os usuários podem fazer login em sites sem compartilhar informações pessoais com o serviço de identidade ou o site.
Status da implementação
- Status da plataforma do Chrome
- O FedCM foi lançado no Chrome 108.
- A proposta do FedCM (link em inglês) está aberta para discussão pública.
- O FedCM ainda não é compatível com outros navegadores.
- O Mozilla está implementando um protótipo para o Firefox, e a Apple expressou suporte geral e interesse em trabalhar em conjunto na proposta do FedCM.
No futuro, planejamos introduzir vários recursos novos com base no feedback que recebemos de provedores de identidade (IdP), partes confiáveis (RP) e fornecedores de navegadores. Esperamos que os provedores de identidade adotem a FedCM, mas saiba que ela ainda é uma API em desenvolvimento ativo e que mudanças incompatíveis com versões anteriores devem ser feitas até o quarto trimestre de 2023.
Para minimizar os desafios da implantação de alterações incompatíveis com versões anteriores, temos duas recomendações para provedores de identidade:
- Inscreva-se na nossa newsletter, que enviaremos atualizações conforme a API evolui.
- Incentivamos os IdPs a distribuir a API FedCM usando SDKs JavaScript enquanto a API está em desenvolvimento e desencorajar as RPs de SDKs de 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 reimplantem.
Por que precisamos da FedCM?
Na última década, a federação de identidade desempenhou um papel central na melhoria da 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 preenchimento de credenciais) em comparação com nomes de usuário e senhas por site.
Com a federação de identidade, uma RP (parte confiável) depende de um IdP (provedor de identidade) para fornecer uma conta ao usuário sem exigir um novo nome de usuário e senha.
Infelizmente, os mecanismos em que a federação de identidade dependia (iframes, redirecionamentos e cookies) estão sofrendo abusos para rastrear usuários na Web. Como o user agent não consegue diferenciar a federação de identidade e o rastreamento, as mitigações para os vários tipos de abuso dificultam a implantação da federação de identidades.
A API Federated Credential Management (FedCM) fornece uma abstração específica do caso de uso para fluxos de identidade federada na Web, expondo uma caixa de diálogo mediada pelo navegador que permite aos usuários escolher contas de IdPs para fazer login em sites.
A FedCM é uma jornada de várias etapas para melhorar a identidade na Web. Na primeira etapa, o foco é reduzir o impacto da desativação de cookies de terceiros sobre a identidade federada. Consulte a seção "Roteiro" para ver mais algumas etapas.
O que esperamos que seja afetado?
Por meio do esforço da comunidade e da nossa pesquisa, descobrimos que algumas integrações relacionadas à federação de identidade são afetadas pela descontinuação de cookies de terceiros:
- Saída do OpenID Connect Front-Channel
- Gerenciamento de sessão do OpenID Connect
- Renovação de token em segundo plano baseado em iframe
- Widgets de login com base em iframe
O primeiro objetivo da FedCM é reduzir o impacto da descontinuação dos cookies de terceiros na federação de identidade. Confira uma lista de áreas que podem ser afetadas. Se houver outros casos de uso que não estão listados, recomendamos que você interaja e compartilhe feedback.
Quem deve usar a FedCM?
Esperamos que a FedCM seja útil para você apenas se todas as condições a seguir forem aplicáveis:
- Você é um provedor de identidade (IdP).
- A desativação dos cookies de terceiros vai afetar você.
- Suas partes restritas são sites de terceiros. Se as partes restritas forem sites significativamente relacionados, pode ser mais fácil atender você pelos conjuntos de sites relacionados.
Você é um IdP
A FedCM requer suporte de um provedor de identidade. Uma parte confiável não pode usar o FedCM de maneira independente. Se você for um RP, poderá pedir que o IdP forneça instruções.
Você foi afetado pela desativação dos cookies de terceiros
Só use o FedCM se a integração atual for afetada pela desativação dos cookies de terceiros.
Caso você não tenha certeza se a federação de identidade continuará funcionando após a desativação dos cookies de terceiros do Chrome, 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, continue usando a integração atual sem o FedCM.
Se não tiver certeza do que verificar, leia mais sobre os recursos conhecidos que serão afetados pela desativação.
Sua parte restrita é de terceiros
Se você é um provedor de identidade com RPs que têm um relacionamento próprio com o IdP, esperamos que os conjuntos de sites relacionados sejam uma opção melhor. Os conjuntos de sites relacionados (RWS, na sigla em inglês) são uma maneira de uma organização declarar relações entre sites, para que os navegadores permitam acesso limitado a cookies de terceiros para fins específicos. Isso permite que cookies de terceiros funcionem entre conjuntos de sites relacionados, mesmo após a descontinuação.
Como os usuários vão interagir com a FedCM?
Atualmente, o foco principal da FedCM é mitigar o impacto da desativação 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
Quando o usuário acessa o site da parte confiável (RP), uma caixa de diálogo de login do FedCM aparece se ele estiver conectado ao IdP.
Se o usuário não tiver uma conta na RP com o IdP, uma caixa de diálogo de inscrição será exibida com um texto de divulgação adicional, como os Termos de Serviço da RP e uma política de privacidade, se eles forem fornecidos.
O usuário pode concluir o login tocando em Continuar como.... Se bem-sucedido, o navegador armazenará o fato de que o usuário criou uma conta federada na RP com o IdP.
Espera-se que as RPs funcionem em navegadores que não oferecem suporte ao FedCM. Os usuários devem poder usar um processo de login que não seja do FedCM. Saiba mais sobre como funciona o login na FedCM.
Configuração para ativar ou desativar a FedCM
Os usuários podem ativar ou desativar a FedCM nas configurações do Chrome no Android. Acesse Configurações > Configurações do site > Login de terceiros e mude o botão.
![Ative o FedCM nas configurações do Chrome em dispositivos móveis ativando o login de terceiros](https://developers.google.cn/static/privacy-sandbox/assets/images/enable-fedcm-chrome-sett-acb36abf28b59.jpg?authuser=5&hl=pt-br)
Eles podem fazer o mesmo no Chrome no computador, acessando
chrome://settings/content/federatedIdentityApi
.
![Ative o FedCM nas configurações do Chrome no computador ativando o login de terceiros](https://developers.google.cn/static/privacy-sandbox/assets/images/enable-fedcm-chrome-sett-ebbf4834f6f21.png?authuser=5&hl=pt-br)
Roteiro
Estamos trabalhando para conseguir uma série de mudanças na FedCM.
Várias atualizações já foram aplicadas com base no feedback. Também é esperado que continue evoluindo até o quarto trimestre de 2023, pelo menos, para se estabilizar. Consulte Atualizações para mais detalhes.
- Registro de alterações: atualizações da API Federated Credential Management.
Há algumas coisas que sabemos que ainda precisam ser feitas, incluindo problemas que encontramos de IdPs, RPs e fornecedores de navegadores. Acreditamos que sabemos como resolver esses problemas:
- Suporte a iframe de origem cruzada: os IdPs podem chamar o FedCM dentro de um iframe de origem cruzada (update).
- 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 que pertence ao IdP (update).
- Endpoint de métricas: fornece métricas de desempenho para IdPs.
Além disso, há questões não resolvidas que estamos explorando ativamente, incluindo propostas específicas que estamos avaliando ou prototipando:
- CORS: estamos conversando com a Apple e o Mozilla para garantir a melhoria da especificação das buscas da FedCM.
- API de vários IdPs: estamos explorando maneiras de oferecer suporte a vários IdPs para coexistir de forma cooperativa no seletor de contas da FedCM.
- API IdP Sign-in Status: o Mozilla identificou um problema de ataque temporário, e estamos explorando maneiras de um IdP notificar o navegador sobre o status de login do usuário para reduzir o problema. (atualização)
- Fazer login na API IdP: para oferecer suporte a vários cenários, quando um usuário não está conectado ao IdP, o navegador fornece uma IU para que o usuário faça login sem sair da RP.
Por fim, ainda há coisas que acreditamos que ainda precisam ser feitas, com base no feedback dos Mozilla, Apple e revisores de TAG. Estamos trabalhando para avaliar as melhores soluções para essas perguntas em aberto:
- Melhorar a compreensão do usuário e a intenção de correspondência: conforme o Mozilla analisou, queremos continuar explorando diferentes formulações de UX e áreas superficiais, bem como os critérios de acionamento.
- Atributos de identidade e divulgação seletiva: conforme explicado pelos Revisores de 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.
- Aumentando as propriedades de privacidade: conforme sugerido pelo Mozilla neste link, queremos continuar explorando mecanismos para oferecer melhores garantias de privacidade, como a invisibilidade do IdP e identificadores direcionados.
- Relação com a WebAuthn: conforme sugerido pela Apple, estamos muito animados para conferir o progresso das chaves de acesso e trabalhar para fornecer uma experiência coerente e coesa entre FedCM, senhas, WebAuthn e WebOTP.
- Status do login: como a Apple sugeriu com a API Login Status do Privacy CG, 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 fundamentadas e estamos animados para ver quais oportunidades surgem desse. (atualização)
- Empresas e educação: como está claro no FedID CG, ainda há muitos casos de uso que não são bem atendidos pelo FedCM em que gostaríamos de trabalhar, como a saída do canal frontal (a capacidade de um IdP enviar um sinal para RPs para sair) e suporte para SAML.
- Relação com mDLs/VCs/etc: continue trabalhando para entender como elas se encaixam na FedCM, por exemplo, com a API Mobile Document Request.
Como usar a API FedCM
Você precisa de um contexto seguro (HTTPS ou localhost) no IdP e na RP no Chrome para usar o FedCM.
Para integrar com o FedCM, você precisa criar um arquivo bem conhecido, um arquivo de configuração e endpoints para a lista de contas, emissão de declaração e, opcionalmente, metadados do cliente. A partir daí, o FedCM expõe APIs JavaScript que as RPs podem usar para fazer login com o IdP.
Para aprender a usar a API da FedCM, confira o guia do desenvolvedor da FedCM.
Interaja e compartilhe feedback
- GitHub: leia a explicação, avise problemas e acompanhe a discussão.
- Suporte para desenvolvedores: faça perguntas e participe de discussões no repositório de suporte para desenvolvedores do Sandbox de privacidade.
Conformidade com as leis de privacidade eletrônica
O uso da FedCM, seja como um IdP ou RP, envolve o armazenamento de informações no equipamento do terminal de um usuário ou o acesso às informações já armazenadas nele e, portanto, é uma atividade sujeita às leis de privacidade eletrônica no Espaço Econômico Europeu (EEE) e no Reino Unido que geralmente exige o consentimento do usuário. É sua responsabilidade determinar se o uso da FedCM é estritamente necessário para fornecer um serviço on-line explicitamente solicitado pelo usuário e, portanto, isento do requisito de consentimento. Para saber mais, leia as Perguntas frequentes sobre compliance relacionadas à privacidade do Sandbox de privacidade.