O Chrome oferece suporte à reautorização automática no FedCM
A API Federated Credential Management (FedCM) é uma API da Web para federação de identidade que preserva a privacidade. Com a federação de identidade, uma parte confiável (RP) depende de um provedor de identidade (IdP) para fornecer ao usuário uma conta sem exigir um novo nome de usuário e senha.
O FedCM permite que o navegador entenda o contexto em que o RP e o IdP trocam informações. Ele informa o usuário sobre as informações e os níveis de privilégio que estão sendo compartilhados e evita abusos não intencionais. O FedCM está disponível no Chrome desde a versão 108.
No Chrome 115, o FedCM está recebendo suporte para a reautorização automática, o que melhora a experiência do usuário e permite uma reautorização mais simplificada para o RP após o consentimento inicial.
Reautenticação automática
No momento, depois que um usuário cria uma conta federada em um RP com um provedor de identidade pela API FedCM, na próxima vez que ele visitar o site, será necessário seguir as mesmas etapas na interface do usuário. Isso significa que o usuário vai precisar confirmar novamente de forma explícita e manual para fazer a autenticação novamente e prosseguir com o fluxo de login.
Embora a experiência explícita do usuário faça sentido antes que o usuário tenha criado a conta federada para evitar o rastreamento (que é uma das principais metas do FedCM), ela é desnecessária depois que o usuário passou por ela uma vez: depois que o usuário concede permissão para permitir a comunicação entre o RP e o IdP, não há benefício de privacidade ou segurança para aplicar outra confirmação explícita do usuário para algo que ele já tenha reconhecido anteriormente. Por isso, estamos lançando uma UX mais simplificada que os RPs podem escolher para os usuários recorrentes.
A reautenticação automática do FedCM ("auto-reauthn" em resumo) permite que os usuários se autentiquem automaticamente quando voltarem após a autenticação inicial usando o FedCM. "A autenticação inicial" significa que o usuário cria uma conta ou faz login no site do RP tocando no botão Continuar como... na caixa de diálogo de login do FedCM pela primeira vez na mesma instância do navegador.

Escolher uma opção de reautorização automática
Embora a reautorização automática esteja sendo lançada para oferecer uma melhor UX e se alinhar à
especificação, a experiência do usuário padrão será diferente sem nenhuma mudança
no código. Com a reautorização automática disponível, o navegador muda o comportamento dependendo
da opção selecionada na opção mediation
que os desenvolvedores fornecem com
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 na API
Credential Management.
Ele se comporta da mesma
forma que
PasswordCredential
e
FederatedCredential,
e também tem suporte parcial do
PublicKeyCredential. A propriedade aceita os quatro valores a seguir:
'required'
: sempre requer uma mediação para continuar, por exemplo, clicando no botão "Continuar" na interface. Escolha essa opção se os usuários precisarem conceder a permissão explicitamente sempre que precisarem ser autenticados.'optional'
(padrão): reautorização automática, se possível, ou requer mediação, se não for. Recomendamos escolher essa opção na página de login.'silent'
: reautorização automática, se possível, ou falha silenciosa sem exigir uma mediação, se não for possível. Recomendamos escolher essa opção nas páginas que não são de login, mas em que você quer manter os usuários conectados, como uma página de item em um site de frete ou uma página de artigo em um site de notícias.'conditional'
: usado para WebAuthn e não disponível para FedCM no momento.
Com essa chamada, a reautorização automática ocorre nas seguintes condições:
- O FedCM está disponível para uso. Por exemplo, o usuário não desativou a FedCM globalmente ou para o RP nas configurações.
- O usuário usou apenas uma conta com a API FedCM para fazer login no site nesse navegador.
- O usuário fez login no IdP com essa conta.
- A reautorização automática não aconteceu nos últimos 10 minutos.
- O RP não chamou
navigator.credentials.preventSilentAccess()
após a entrada anterior.
Quando as condições acima são atendidas, uma tentativa de autenticação automática
do usuário é iniciada assim que o navigator.credentials.get()
do FedCM é invocado.
Aplicar a mediação com preventSilentAccess()
A autenticação automática de usuários imediatamente após a saída não seria uma experiência muito boa para o usuário. É por isso que o FedCM tem um período de espera de 10 minutos após uma reautorização automática para evitar esse comportamento. Isso significa que a reautorização automática acontece no máximo uma vez a cada 10 minutos, a menos que o usuário faça login novamente em até 10 minutos. O RP precisa chamar navigator.credentials.preventSilentAccess() para solicitar explicitamente que o navegador desative a reautorização automática quando um usuário sair explicitamente do RP, por exemplo, clicando em um botão de desativação.
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
Os usuários podem desativar a reautorização automática nas configurações
Os usuários podem desativar a reautorização automática no menu de configurações:
- No Chrome para computador, acesse
chrome://password-manager/settings
> Fazer login automaticamente. - No Android Chrome, abra Configurações > Gerenciador de senhas > toque na engrenagem no canto superior direito > Fazer login automaticamente.
Ao desativar a alternância, o usuário pode desativar o comportamento de reautorização automática por completo. Essa configuração é armazenada e sincronizada entre dispositivos se o usuário estiver conectado a uma Conta do Google na instância do Chrome e a sincronização estiver ativada.
Compartilhar feedback
Se você estiver testando o FedCM, compartilhe seu feedback ou os problemas encontrados em crbug.com em um componente "Blink>Identity>FedCM".
Foto de Noah Samuel Franz no Unsplash