Atualizações da API Federated Credential Management

A API Federated Credential Management é enviada no Chrome 108, mas deve continuar evoluindo. Não há mudanças importantes planejadas.

Para quem são essas atualizações?

Estas atualizações são para você se:

  • Você é um IdP que usa a API Federated Credential Management.
  • Você é um IdP ou RP e tem interesse em estender a API para se adequar ao seu caso de uso. Por exemplo, você tem observado ou participado de discussões no repositório FedID CG e quer entender as mudanças feitas na API.
  • Você é um fornecedor de navegador e quer saber o status da implementação da API.

Se você não conhece essa API ou ainda não a testou, leia a introdução à API Federated Credential Management.

Registro de alterações

Para ficar por dentro das mudanças na API FedCM, confira nosso blog ou a newsletter.

Chrome 131 (outubro de 2024)

Chrome 125 (abril de 2024)

Chrome 123 (fevereiro de 2024)

  • Foi adicionado suporte à API Domain Hint. A API Domain Hint permite que os RPs especifiquem uma propriedade domainHint em uma chamada da API FedCM para mostrar apenas contas correspondentes do usuário.

Chrome 122 (janeiro de 2024)

  • Foi adicionado suporte à API Disconnect. A API Disconnect permite que os RPs desconectem os usuários da conta do provedor de identidade sem depender de cookies de terceiros.
  • A verificação /.well-known/web-identity agora é ignorada quando o RP e o IdP estão no mesmo site.
  • Os recursos secundários agora podem definir um status de login no mesmo site.

Chrome 121 (dezembro de 2023)

  • A condição simplificada para acionar a reautorização automática do FedCM:
    • O recurso de reautorização automática no FedCM só é acionado quando o usuário retorna. Isso significa que o usuário precisa fazer login no RP usando o FedCM uma vez em cada instância do navegador, antes que a reautorização automática possa ser acionada. Essa condição foi inicialmente introduzida para reduzir o risco de rastreadores fingindo ser um provedor de identidade (IDP) e enganar o navegador para que ele faça a reautorização automática de um usuário sem o conhecimento ou consentimento dele. No entanto, esse design não pode garantir o benefício de privacidade se o rastreador tiver acesso a cookies de terceiros no contexto de RP. O FedCM fornece apenas um subconjunto dos recursos possíveis com cookies de terceiros. Portanto, se o rastreador já tiver acesso a cookies de terceiros no contexto do RP, o acesso ao FedCM não apresentará nenhum risco de privacidade adicional.
      Como há usos legítimos de cookies de terceiros e a flexibilização da condição melhoraria a UX, esse comportamento está mudando a partir do Chrome 121. Decidimos relaxar a restrição da condição para tratar um usuário como recorrente: se cookies de terceiros estiverem disponíveis para o IdP no contexto do RP, o Chrome vai confiar na declaração do IdP sobre o status da conta do usuário especificada na lista approved_clients e acionar a autenticação automática se aplicável. Os cookies de terceiros podem estar disponíveis em: configurações do usuário, políticas corporativas, heurísticas (Safari, Firefox, Chrome) e outras APIs de plataforma da Web (como a API Storage Access). Observe que, quando o IdP perder o acesso a cookies de terceiros no futuro, se um usuário nunca tiver concedido permissão explicitamente na interface do FedCM (por exemplo, clicando no botão Continuar como), ele ainda será tratado como um novo usuário.
      Não são necessárias ações do desenvolvedor. O fluxo de reautorização automática pode ser acionado com mais frequência com essa mudança se o IdP tiver acesso a cookies de terceiros e afirmar que o usuário criou uma conta no RP no passado.

Chrome 120 (novembro de 2023)

  • Adição de suporte aos três recursos a seguir no Chrome 120:
    • API de status de login: a API de status de login é um mecanismo em que um site, especialmente um IdP, informa ao navegador o status de login do usuário. Com essa API, o navegador pode reduzir solicitações desnecessárias ao IdP e mitigar possíveis ataques de sincronização. A API Login Status é um requisito para o FedCM. Com essa mudança, a flag chrome://flags/#fedcm-without-third-party-cookies não é mais necessária para ativar o FedCM quando o cookie de terceiros é bloqueado.
    • API Error: a API Error notifica o usuário mostrando uma interface do navegador com as informações de erro fornecidas pelo IdP.
    • API Auto-Selected Flag: a API Auto-Selected Flag compartilha se uma permissão explícita do usuário foi adquirida tocando no botão Continue as com o IdP e o RP, sempre que a reautorização automática ocorreu ou uma mediação explícita ocorreu. O compartilhamento só acontece depois que a permissão do usuário é concedida para a comunicação entre o IdP e o RP.

Chrome 117 (setembro de 2023)

Chrome 116 (agosto de 2023)

  • Foi adicionado suporte aos três recursos a seguir no Chrome 116:
    • API Login Hint: especifique uma conta de usuário preferencial para fazer login.
    • API User Info: extrai as informações do usuário recorrente para que o provedor de identidade (IdP) possa renderizar um botão de login personalizado em um iframe.
    • API Contexto RP: use um título diferente de "Fazer login" na caixa de diálogo FedCM.
  • O teste de origem da API IdP Sign-In Status está disponível. Saiba mais em Atualizações do FedCM: API de status de login do IdP, sugestão de login e muito mais.

Chrome 115 (junho de 2023)

  • Foi adicionado suporte à reautorização automática, que permite que os usuários se reauthenticem automaticamente quando retornarem após a autenticação inicial usando o FedCM. Isso melhora a experiência do usuário e permite uma reautorização mais simplificada para o RP após a autenticação inicial. Saiba mais sobre a reautenticação automática do FedCM.

Chrome 110 (fevereiro de 2023)

  • Para o endpoint de declaração de ID, os IdPs precisam verificar o cabeçalho Origin (em vez do cabeçalho Referer) para saber se o valor corresponde à origem do ID do cliente.
  • O suporte a iframes de origem cruzada para FedCM já está disponível. O incorporador precisa especificar o Permissions-Policy identity-credentials-get para permitir a API FedCM no iframe incorporado de origem cruzada. Confira um exemplo do iframe entre origens.
  • Adicionamos uma nova flag do Chrome chrome://flags/#fedcm-without-third-party-cookies. Com essa flag, você pode testar a funcionalidade do FedCM no Chrome bloqueando cookies de terceiros. Saiba mais na documentação da FedCM.

Chrome 108 (outubro de 2022)

  • "Manifesto de nível superior" agora é chamado de "arquivo conhecido" no documento. Não é necessário fazer mudanças na implementação.
  • O "manifesto do IdP" agora é chamado de "arquivo de configuração" no documento. Nenhuma mudança de implementação é necessária.
  • O id_token_endpoint no "arquivo de configuração" foi renomeado como id_assertion_endpoint.
  • As solicitações para o IdP agora incluem um cabeçalho Sec-Fetch-Dest: webidentity em vez de um cabeçalho Sec-FedCM-CSRF: ?1.

Chrome 105 (agosto de 2022)

  • Adicionamos informações de segurança importantes ao documento. O provedor de identidade (IdP) precisa verificar se o cabeçalho Referer corresponde à origem que o RP registrou com antecedência no endpoint do token de ID.
  • O manifesto de nível superior é renomeado de /.well-known/fedcm.json para /.well-known/web-identity, e o URL especificado em provider_urls precisa incluir o nome do arquivo.
  • Os métodos login(), logout() e revoke() nas instâncias FederatedCredential não estão mais disponíveis.
  • A API Federated Credential Management agora usa um novo tipo IdentityCredential em vez de FederatedCredential. Isso pode ser usado para detecção de recursos, mas é uma mudança praticamente invisível.
  • Mova a funcionalidade de login de uma combinação de navigator.credentials.get() e FederatedCredential.prototype.login() para navigator.credentials.get().
  • O endpoint de revogação no manifesto não está mais em vigor.
  • Use um campo identity em vez de um campo federated para chamadas navigator.credentials.get().
  • url agora é configURL e precisa ser o URL completo do arquivo JSON do manifesto, em vez do caminho de uma chamada navigator.credentials.get().
  • nonce agora é um parâmetro opcional para navigator.credentials.get().
  • hint não está mais disponível como uma opção para navigator.credentials.get().
const credential = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: 'https://idp.example/anything.json',
      clientId: '********',
      nonce: '******'
    }]
  }
});
const { token } = credential;

Chrome 104 (junho de 2022)

Chrome 103 (maio de 2022)

  • Oferece suporte a ambientes de área de trabalho.
  • Suporte a configurações por RP no computador.
  • O endpoint de metadados do cliente agora é opcional. Nesse endpoint, o URL da Política de Privacidade também é opcional.
  • Adicionamos uma ressalva sobre o uso de connect-src do CSP no documento.

Recursos