Atualizações da API Federated Credential Management

A API Federated Credential Management é enviada no Chrome 108, mas espera-se que continue evoluindo. Não há alterações interruptivas planejadas.

Qual é o público dessas atualizações?

Estas atualizações são úteis 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, está observando ou participando das conversas no repositório FedID CG e quer entender as alterações feitas na API.
  • Você é um fornecedor de navegadores e quer saber o status da implementação da API.

Se você é iniciante ou ainda não testou essa API, 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 125 (abril de 2024)

Chrome 123 (fevereiro de 2024)

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

Chrome 122 (janeiro de 2024)

  • Adicionado suporte para a API Desconectar. A API Desconectar permite que os membros das partes (RP, na sigla em inglês) desconectem os usuários da conta do IdP sem depender de cookies de terceiros.
  • A verificação de /.well-known/web-identity agora é ignorada quando o RP e o IdP são no mesmo site.
  • Os sub-recursos agora podem definir um status de login para o mesmo site.

Chrome 121 (dezembro de 2023)

  • A condição de relaxamento para acionar a reautenticação automática do FedCM:
    • O recurso de reautenticação automática no FedCM é acionado apenas quando o usuário está retornando. Isso significa que o usuário precisa fazer login na RP usando o FedCM uma vez em cada instância do navegador antes que a reautenticação automática seja acionada. Essa condição foi inicialmente introduzida para reduzir o risco de rastreadores fingirem ser um provedor de identidade (IdP) e enganar o navegador para que reautentique automaticamente 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 da RP. A FedCM fornece apenas um subconjunto dos recursos possíveis por meio de cookies de terceiros. Portanto, se o rastreador já tiver acesso a cookies de terceiros no contexto da RP, o acesso ao FedCM não representará nenhum risco de privacidade adicional.
      Como há usos legítimos de cookies de terceiros e o reflexo da condição melhoraria a UX, esse comportamento vai mudar desde o Chrome 121. Decidimos flexibilizar 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 da RP, o Chrome confiará na declaração do IdP sobre o status da conta do usuário especificado na lista approved_clients e acionará a reautenticação automática, se aplicável. Cookies de terceiros podem ser disponibilizados por: configurações do usuário, políticas corporativas, heurística (Safari, Firefox e Chrome) e outras APIs de plataformas 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) antes, ele ainda será tratado como um novo usuário.
      Nenhuma ação é necessária do desenvolvedor. O fluxo de reautenticação automática poderá ser acionado mais com essa mudança se o IdP tiver acesso a cookies de terceiros e alegar que o usuário criou uma conta na parte restrita.

Chrome 120 (novembro de 2023)

  • Foi adicionado suporte aos três recursos a seguir no Chrome 120:
    • API Login Status: a API Status de login é um mecanismo em que um site, especialmente um IdP, informa o status de login do usuário ao navegador. Com essa API, o navegador pode reduzir solicitações desnecessárias ao IdP e mitigar possíveis ataques de tempo. A API Login Status é um requisito do FedCM. Com essa alteração, a sinalização chrome://flags/#fedcm-without-third-party-cookies não é mais necessária para ativar o FedCM quando os cookies de terceiros são bloqueados.
    • 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 Continuar como com o IdP e a RP sempre que ocorreu uma reautenticação automática ou uma mediação explícita. O compartilhamento só acontece depois que a permissão do usuário é concedida para a comunicação do IdP e da 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: busque 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 Context da RP: use um título diferente de "Fazer login" na caixa de diálogo do FedCM.
  • O teste de origem da API Sign-In Status do IdP está disponível. Saiba mais em Atualizações do FedCM: API IdP Sign-In Status, dica de login e mais.

Chrome 115 (junho de 2023)

  • Foi adicionado suporte à reautenticação automática. Com o FedCM, os usuários podem fazer isso automaticamente quando voltam após a autenticação inicial. Isso melhora a experiência do usuário e permite uma reautenticação mais simplificada à parte restrita após o consentimento inicial. Saiba mais sobre a reautenticação automática do FedCM.

Chrome 110 (fevereiro de 2023)

  • No endpoint de declaração de ID, os IdPs precisam verificar o cabeçalho Origin (em vez do Referer) para ver se o valor corresponde à origem do ID do cliente.
  • Agora o FedCM é compatível com iframe de origem cruzada. O incorporador precisa especificar o identity-credentials-get Permissions-Policy para permitir a API FedCM no iframe de origem cruzada incorporado. Confira um exemplo de iframe de origem cruzada.
  • Uma nova sinalização do Chrome chrome://flags/#fedcm-without-third-party-cookies foi adicionada. Com essa sinalização, é possível testar a funcionalidade do FedCM no Chrome, bloqueando cookies de terceiros. Saiba mais na documentação do 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" é renomeado como id_assertion_endpoint.
  • As solicitações ao 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)

  • Informações de segurança importantes foram adicionadas ao documento. O provedor de identidade (IdP) precisa verificar se o cabeçalho Referer corresponde à origem que a RP registrada 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() em 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 alteração amplamente 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 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)

  • Compatível com ambientes de desktop.
  • Compatível com configurações por RP no computador.
  • O endpoint de metadados do cliente agora é opcional. Neste endpoint, o URL da Política de Privacidade também é opcional.
  • Adicionou uma ressalva sobre o uso da CSP connect-src no documento.

Recursos