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
- 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 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 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.
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:
- Sair do canal frontal do OpenID Connect
- Gerenciamento de sessões do OpenID Connect
- Renovação de token em segundo plano baseada em iframe
- Widgets de login baseados em iframe
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.
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 ao armazenamento
dos 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:
- Você é um provedor de identidade (IdP).
- Você é afetado pelas restrições de cookies de terceiros.
- 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 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 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
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 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 do RP e uma política de privacidade, se 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 como a autenticação 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 > Fazer login com terceiros e mude a configuração.
Para o Chrome no computador, acesse
chrome://settings/content/federatedIdentityApi
.
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 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 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:
- CORS: estamos dialogando com a Apple e a Mozilla para melhorar a especificação de buscas do FedCM.
- API de vários IdPs: estamos analisando maneiras de oferecer suporte a vários IdPs para que eles coexistam de forma cooperativa no seletor de contas da FedCM.
- API Status de login do IdP: a Mozilla identificou um problema de ataque de tempo, e estamos procurando maneiras de um IdP notificar proativamente o navegador sobre o status de login do usuário para mitigar o problema. (atualização)
- Fazer login na API do IdP: para oferecer suporte a vários cenários, quando um usuário não está logado no IdP, o navegador fornece uma interface para que o usuário faça login sem sair do RP.
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 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 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 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
- GitHub: leia a explicação, faça perguntas e acompanhe a discussão.
- Suporte para desenvolvedores: faça perguntas e participe das discussões no repositório de suporte para desenvolvedores do Sandbox de privacidade.
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.