Suporte à reautenticação automática no FedCM

O Chrome oferece suporte à reautenticação automática na FedCM

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

O FedCM permite que o navegador entenda o contexto em que a RP e o IdP para trocar informações. Ela informa o usuário sobre as informações e o privilégio o compartilhamento de níveis e evita abusos não intencionais. A FedCM está disponível na Chrome a partir da versão 108.

No Chrome 115, a FedCM está recebendo suporte para a reautenticação automática, que melhora a experiência do usuário e permite uma reautenticação mais simplificada da parte restrita após o consentimento inicial.

Reautenticação automática

Atualmente, depois que um usuário cria uma conta federada em uma parte restrita com um IdP pela API FedCM, na próxima vez que que acessam o site, passam pelas mesmas etapas na interface do usuário. Isso significa que o usuário precisará confirmar novamente de forma explícita e manual para autenticar novamente e continuar com o fluxo de login.

Embora a experiência explícita do usuário faça sentido antes de o usuário criar o conta federada para impedir o rastreamento (que é uma das principais metas do FedCM), é desnecessariamente complicado depois de o usuário ter passado por ele uma vez: depois de o usuário concede permissão para permitir a comunicação entre a parte restrita e o IdP não há benefício de privacidade ou segurança ao aplicar outra regra a confirmação de algo que já foi reconhecido anteriormente. Por isso, estamos introduzindo uma UX mais simplificada que os RPs podem escolher seus usuários recorrentes.

FedCM reautenticação automática ("reautenticação automática") permite que os usuários se reautentiquem automaticamente quando e voltar após a autenticação inicial com o FedCM. "O autenticação" aqui significa que o usuário cria uma conta ou faz login na tocando no botão Continuar como... na caixa de diálogo de login do FedCM na mesma instância do navegador.

Uma caixa de diálogo em que o usuário toca para criar uma conta ou autenticar.
Uma caixa de diálogo em que o usuário toca para criar uma conta ou autenticar.

Escolha uma opção para reautenticação automática

Estamos lançando a reautenticação automática para melhorar a experiência do usuário e se alinhar às especificação, a experiência do usuário padrão será diferente sem códigos mudar. Com a reautenticação automática disponível, o navegador muda de comportamento dependendo na opção selecionada na opção mediation fornecida pelos desenvolvedores navigator.credentials.get().

const cred = await navigator.credentials.get({
  identity: {
    providers: [{
      configURL: "https://idp.example/fedcm.json",
      clientId: "1234",
    }],
  },
  mediation: 'optional', // this is the default
});

O mediation é uma propriedade no Gerenciador de credenciais API, ele se comporta da mesma de uma forma faz por PasswordCredential e FederatedCredential e é parcialmente compatível com PublicKeyCredential . A propriedade aceita os quatro valores a seguir:

  • 'required': sempre exige uma mediação para prosseguir, por exemplo, clicando no "Continuar" na interface. Escolha essa opção se for esperado que os usuários conceder permissão explicitamente sempre que eles precisarem ser autenticados.
  • 'optional'(padrão): a reautenticação automática, se possível, exige uma mediação. Qa recomendamos escolher essa opção na página de login.
  • 'silent': reautenticação automática, se possível, que falha silenciosamente sem exigir uma mediação, caso contrário. Recomendamos escolher essa opção nas páginas que não página de login dedicada, mas em que você quer manter os usuários conectados, por exemplo, exemplo, uma página de itens em um site de frete ou uma página de artigos em uma notícia site.
  • 'conditional': usado para WebAuthn e não disponível para FedCM no momento.

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 seja globalmente ou para a parte restrita nas configurações.
  • O usuário usou apenas uma conta com a API FedCM para fazer login no site navegador.
  • O usuário fez login no IdP com essa conta.
  • A reautenticação automática não aconteceu nos últimos 10 minutos.
  • A parte restrita não ligou navigator.credentials.preventSilentAccess() depois login anterior.

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

Reautenticação automática de um usuário pelo FedCM.

Aplicar a mediação com preventSilentAccess()

A reautenticação automática de usuários imediatamente após eles saíram não resultaria em uma uma experiência do usuário muito boa. É por isso que a FedCM tem um período de silêncio de 10 minutos após uma reautenticação automática para evitar esse comportamento. Isso significa que a reautenticação automática acontece no máximo uma vez a cada 10 minutos, a menos que o usuário faça login novamente dentro de 10 minutos. A parte restrita deve chamar Navigator.credentials.preventSilentAccess() para solicitar explicitamente que o navegador desative a reautenticação automática quando um usuário sair da a parte restrita explicitamente, por exemplo, clicando em um botão para sair.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

Os usuários podem desativar a reautenticação automática nas configurações

Os usuários podem desativar a reautenticação automática no menu de configurações:

  • No Chrome para computador, acesse chrome://password-manager/settings > Fazer login automaticamente.
  • No Chrome para Android, abra Configurações > Gerenciador de senhas > Toque em um engrenagem no canto superior direito > Login automático.

Ao desativar a opção, o usuário pode desativar o comportamento de reautenticação automática juntas. Essa configuração é armazenada e sincronizada em todos os dispositivos se o usuário conectada a uma Conta do Google na instância do Chrome, e a sincronização ativado.

Compartilhar feedback

Se você estiver testando o FedCM, deixe seu feedback ou os problemas que encontrar em crbug.com no componente "Blink>Identity>FedCM".

Foto de Noah Samuel Franz no Unsplash