Atualizações do FedCM: teste de origem para reautenticação automática

Apresentação de algumas atualizações na FedCM, incluindo um novo teste de origem para reautenticação automática.

A API Federated Credential Management (FedCM) é uma API da Web para a federação de identidade que preserva a privacidade. Com a federação de identidade, uma parte confiável (RP) depende de um IdP (provedor de identidade) para fornecer ao usuário uma conta sem exigir um novo nome de usuário e senha.

A FedCM é uma API personalizada que permite ao navegador entender o contexto em que a RP e o IdP trocam informações, informam o usuário sobre as informações e os níveis de privilégios que estão sendo compartilhados e evita abusos não intencionais.

Atualizações

Há algumas atualizações na implementação da FedCM no Chrome:

Para todas as atualizações anteriores da API, confira as atualizações da API Federated Credential Management.

A versão mais recente do FedCM inclui um novo recurso de reautenticação automática, que permite a reautenticação de usuários automaticamente quando eles voltam após a autenticação inicial usando o FedCM. A reautenticação automática está disponível como um teste de origem a partir do Chrome 112.

Reautenticação automática

Atualmente, depois que um usuário criou uma conta federada em uma RP com um IdP por meio da FedCM, na próxima vez que ele visitar o site, precisará seguir as mesmas etapas na interface do usuário. Ou seja, eles precisam confirmar explicitamente e se autenticar novamente para prosseguir com o fluxo de login. Como uma das principais metas da FedCM é impedir o rastreamento oculto, essa experiência do usuário (UX) faz sentido antes de o usuário criar a conta federada, mas se torna desnecessária e complicada depois que o usuário passa por ela. Depois que o usuário concede permissão para permitir a comunicação entre a RP e o IdP,  não há benefício de privacidade ou segurança para impor outra confirmação explícita do usuário para algo que ele já confirmou anteriormente. É por isso que o Chrome está introduzindo uma UX mais simplificada que as partes restritas podem escolher para os usuários recorrentes.

A reautenticação automática da FedCM (abreviação de "reautenticação automática") reautentica os usuários automaticamente (quando a RP aceita) quando eles voltam após a autenticação inicial usando a FedCM. Nesse caso, "a autenticação inicial" significa que o usuário cria uma conta ou faz login no site da parte restrita tocando no botão Continuar como... na caixa de diálogo de login da FedCM pela primeira vez na mesma instância do navegador.

Uma caixa de diálogo em que o usuário toca para criar uma conta ou fazer a autenticação.
Uma caixa de diálogo em que o usuário toca para criar uma conta ou fazer a autenticação.

A RP pode solicitar uma reautenticação automática chamando navigator.credentials.get() com autoReauthn: true.

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
    // NOTE: We are exploring different API options to expose this
    // functionality here:
    // https://github.com/fedidcg/FedCM/issues/429#issuecomment-1426358523
    // You should expect that, as a result of the origin trial, we'll
    // learn more from developers and browser vendors what works best here.
    autoReauthn: true, // default to false
  },
});

Nessa chamada, a reautenticação automática acontece nas seguintes condições:

  • O FedCM está disponível para uso. Por exemplo, o usuário não desativou o FedCM, globalmente ou para a RP.
  • O usuário utilizou apenas uma conta da FedCM para fazer login no site neste navegador.
  • O usuário fez login no IdP com essa conta.
  • A reautenticação automática não aconteceu nos últimos 10 minutos.

Quando as condições acima são atendidas, uma tentativa de reautenticar automaticamente o usuário é iniciada assim que o navigator.credentials.get() do FedCM é invocado.

Um usuário está fazendo a reautenticação automática para um RP usando FedCM

Testar

Para testar a reautenticação automática do FedCM localmente, ative uma flag do Chrome chrome://flags#fedcm-auto-re-authn no Chrome 112 ou mais recente.

Para fins de teste, é possível redefinir o período de silêncio de 10 minutos removendo os dados do navegador.

  1. Navegue para chrome://history.
  2. Na caixa do histórico de pesquisa, insira a origem da parte restrita.
  3. Clique no ícone de três pontos ⋮ e selecione Remover do histórico.
  4. Reinicie o Chrome.

Participar do teste de origem

Você também pode ativar o recurso no seu site participando do teste de origem de terceiros, disponível do Chrome 112 ao 114.

Os testes de origem permitem testar novos recursos e fornecer feedback sobre a usabilidade, praticidade e eficácia deles para a comunidade de padrões da Web. Para mais informações, consulte o Guia de testes de origem para desenvolvedores da Web. Para se inscrever nesse ou em outro teste de origem, acesse a página de registro.

Para se registrar no teste de origem de terceiros e ativar o recurso em terceiros, faça o seguinte:

  1. Acesse a página de registro de testes de origem.
  2. Clique no botão Register e preencha o formulário para solicitar um token
  3. Insira a origem de veiculação como Origem da Web.
  4. Marque Correspondência de terceiros para injetar o token com JavaScript em outras origens.
  5. Clique em Enviar.
  6. incorporar o token emitido a um terceiro;

Para incorporar o token a um terceiro, adicione o código a seguir à biblioteca JavaScript ou ao SDK disponibilizado na origem do site registrado.

const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = 'TOKEN_GOES_HERE';
document.head.appendChild(tokenElement);

Substitua TOKEN_GOES_HERE pelo seu próprio token.

Interaja e compartilhe feedback

Se você tiver feedback ou encontrar algum problema durante o teste, compartilhe essas informações em crbug.com no componente Blink>Identity>FedCM.

Foto de Alex Perz no Unsplash (links em inglês)