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)
- Como a especificação atualizou o nome de "endpoints da lista de contas" para "endpoint de contas", nossa documentação está alinhada de acordo.
- O teste de origem da APIButton Mode está disponível no Chrome 125 para computadores. Saiba mais sobre isso em Atualizações do FedCM: teste de origem da API Panel Mode, CORS e SameSite (links em inglês).
- O CORS é aplicado no endpoint de declaração de ID a partir do Chrome 125.
- A partir do Chrome 125, o Chrome enviará apenas cookies explicitamente marcados como
SameSite=None
para o endpoint de declaração de ID e o endpoint de contas.
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 listaapproved_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.
- 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.
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.
- 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 117 (setembro de 2023)
- O teste de origem da API Idp Sign-In Status está disponível no Android a partir do Chrome 117. Saiba mais em Atualizações do FedCM: API IdP Sign-In Status, dica de login e mais.
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 doReferer
) 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 comoid_assertion_endpoint
. - As solicitações ao IdP agora incluem um cabeçalho
Sec-Fetch-Dest: webidentity
em vez de um cabeçalhoSec-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 emprovider_urls
precisa incluir o nome do arquivo. - Os métodos
login()
,logout()
erevoke()
em instânciasFederatedCredential
não estão mais disponíveis. - A API Federated Credential Management agora usa um novo tipo
IdentityCredential
em vez deFederatedCredential
. 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()
eFederatedCredential.prototype.login()
paranavigator.credentials.get()
. - O endpoint de revogação no manifesto não está mais em vigor.
- Use um campo
identity
em vez de um campofederated
para chamadasnavigator.credentials.get()
. url
agora éconfigURL
e precisa ser o URL completo do arquivo JSON do manifesto, em vez do caminho de uma chamadanavigator.credentials.get()
.nonce
agora é um parâmetro opcional paranavigator.credentials.get()
.hint
não está mais disponível como opção paranavigator.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)
- O parâmetro
consent_acquired
enviado ao endpoint do token de ID agora édisclosure_text_shown
. O valor não foi alterado. - Os ícones de marca no manifesto do IdP não oferecem mais suporte a imagens SVG, mas não precisam mais ser permitidos pela Política de Segurança de Conteúdo da RP.
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.