Atualizações do FedCM: API Multi IdP no computador, API Panel Mode e pacote de continuação para o Chrome em testes de origem do Android

Natalia Markoborodova
Natalia Markoborodova

No Chrome 128, a API Multi-IdP está iniciando um teste de origem no computador e a API Button Mode e o pacote de continuação estão iniciando um teste de origem no Android. Com o recurso de vários provedores de identidade, os desenvolvedores podem especificar uma matriz de vários provedores de identidade com suporte em uma única chamada get(). A API Button Mode adiciona uma nova interface. Com a API Botão Mode, os provedores de identidade podem usar a API FedCM mesmo que os usuários não tenham sessões do IdP ativas na chamada de API. O pacote de continuação consiste na API Continuation e na API Parameters, que permitem uma experiência semelhante ao fluxo de autorização do OAuth que envolve uma caixa de diálogo de permissão fornecida pelo provedor de identidade. O pacote também inclui outras mudanças, como a API Fields, vários configURL e rótulos de conta personalizados.

Teste de origem: API Multi IdP

O recurso permite que os usuários escolham uma conta de um conjunto de IdPs compatíveis, e as RPs se beneficiam de taxas de login e inscrição mais altas. Se o usuário fizer login com vários IdPs, ele receberá uma solicitação para fazer login na RP usando um deles.

Um usuário está fazendo login com IdPs diferentes usando a API de vários IdPs.

Os IdPs são priorizados com base nas contas atuais do usuário e nos carimbos de data/hora associados.

  • Se o usuário já tiver feito login na parte restrita com um IdP específico (ou seja, se tiver uma "conta recorrente"), esses IdPs serão listados primeiro.
  • Nas contas recorrentes, os IdPs são classificados pelo carimbo de data/hora do uso mais recente, com o IdP usado mais recentemente aparecendo no topo da lista. Em alguns casos, o Chrome pode não ter dados de carimbo de data/hora para uma conta recorrente. Isso provavelmente ocorre porque o usuário fez login antes que os registros de carimbo de data/hora fossem implementados no FedCM. Essas contas estão listadas abaixo das que têm carimbos de data/hora.
  • Se o usuário não tiver contas recorrentes com nenhum IdP, a ordem fornecida pelo RP será respeitada.

O FedCM permite a reautorização automática se o desenvolvedor solicitar e se houver uma única conta recorrente. No caso de vários IdPs, se houver contas recorrentes para vários IdPs, o usuário não será reautenticado automaticamente. Ter uma conta recorrente é um requisito importante para a reautorização automática. O navegador só iniciará a reautenticação automática quando reconhecer explicitamente a conta. Isso significa que o usuário deve ter usado o FedCM anteriormente com essa conta específica na parte restrita.

Se o status de login do usuário estiver definido como "desconectado" para um IdP, a chamada do FedCM não vai buscar contas para esse IdP. Da mesma forma, se o status do usuário for "logout" para todos os IdPs disponíveis, a solicitação de login do FedCM não vai aparecer automaticamente no modo de widget.

Se o status de login salvo no navegador para um IdP tiver sido feito, mas nenhuma conta para esse IdP tiver sido retornada pela solicitação de busca (por exemplo, se a sessão do usuário tiver expirado, mas o status de login ainda não tiver sido atualizado pelo navegador), a interface de incompatibilidade será mostrada para o IdP, sugerindo que o usuário faça login com o IdP incompatível.

Quando o status de login do usuário tiver sido conectado, mas a sessão tiver expirado, a interface não correspondente será exibida.

Para mais informações sobre o status de login, consulte a documentação. Consulte o guia para desenvolvedores para mais detalhes sobre a implementação.

Teste de origem: API Multi IdP

Você pode testar a API Multi IdP como usuário no RP de demonstração ou como desenvolvedor usando o Chrome 128 ou mais recente.

Testar como usuário

Teste como usuário. Confira se:

  • O Chrome não está configurado para bloquear solicitações de login de terceiros na página: chrome://settings/content/federatedIdentityApi.
  • Você fez login em vários IdPs de demonstração. Siga as instruções na página de demonstração.

Para testar o IdP múltiplo em sites com uma origem não registrada no teste de origem, ative a sinalização de recurso em chrome://flags/#fedcm-multi-idp.

Faça um teste como desenvolvedor

Se um provedor de login tiver um SDK JavaScript incorporado ao RP (recomendado), a chamada navigator.credentials.get() para ativar vários IdPs poderá ser implementada pelo provedor, e os desenvolvedores do RP não precisarão mudar o código. Caso contrário, o próprio RP precisa chamar a API FedCM.

Para testar os vários IdPs em uma parte restrita, especifique a matriz de provedores compatíveis da seguinte maneira:

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

O atributo configURL no objeto resultante armazena o URL do arquivo de configuração do IdP usado pelo usuário para fazer a autenticação. O RP pode determinar como processar o token resultante, porque ele varia de acordo com o IdP.

Participar do teste de origem

Com eles, você pode testar novos recursos e fornecer feedback sobre usabilidade, praticidade e eficácia. Para mais informações, confira Introdução aos testes de origem.

Para testar o recurso de vários IdPs, registre-se nos testes de origem a partir do Chrome 128.

Para testar vários IdPs, um RP pode registrar a origem e executar um teste de origem próprio. O IdP também pode se registrar em um teste de origem de terceiros e disponibilizar o recurso de vários IdPs usando SDKs JavaScript.

Etapas para participar do teste de origem:

  1. Acesse a página de registro do teste de origem da API Multi IdP.
  2. Clique no botão Registrar e preencha o formulário para solicitar um token.
  3. Para se inscrever em um teste de origem do RP, insira a origem do RP no campo "Origem da Web". Para um teste de origem de terceiros, digite a origem do SDK para JavaScript do IdP e marque a caixa "Correspondência de terceiros".
  4. Clique em Enviar.
  5. Forneça o token emitido na página da RP:
    • Para participantes de testes de origem próprios:
      • Como uma metatag no <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • Como um cabeçalho HTTP: Origin-Trial: TOKEN_GOES_HERE
    • Para participantes do teste de origem de terceiros:
      • Fornecendo um token de forma programática.

API Button Mode para o Chrome no Android

A partir do Chrome 128, o teste de origem da API Panel Mode vai começar no Chrome para Android, após o teste inicial para computadores. Com a API Botão Mode, os provedores de identidade podem usar a API FedCM mesmo que os usuários estejam desconectados do IdP durante a chamada de API. O fluxo de login é iniciado por um gesto do usuário, o que reflete melhor a intenção dele.

No Chrome 128, lançamos um novo recurso que permite que os IdPs incluam o ícone do logotipo oficial da RP diretamente na resposta do endpoint de metadados do cliente. Isso melhora a interface de dispositivos móveis no modo de botão.

Assim como o branding do IdP no arquivo de configuração, os ícones da RP podem ser configurados no lado do IdP e retornados na resposta client_metadata_endpoint da seguinte maneira:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
Ícones do logotipo do IdP e da RP.
Os ícones dos logotipos do IdP e da RP na interface de divulgação em dispositivos móveis
.

Para saber mais sobre o suporte a ícones, consulte a documentação para desenvolvedores.

Se o usuário ainda não estiver conectado, o FedCM solicita que ele faça login no IdP usando o login_url fornecido por ele em uma guia personalizada do Chrome (CCT, na sigla em inglês).

Um usuário está fazendo login com o modo de botões em um dispositivo móvel.

Se o usuário estiver fazendo uma nova autenticação com uma conta recorrente, a interface de revelação não será mostrada.

Um usuário está fazendo login com uma conta recorrente. A interface de divulgação não é exibida.

Para se inscrever no teste de origem, consulte as instruções da API Button Mode no computador. Se você já se inscreveu no teste de origem no computador, o recurso vai estar disponível automaticamente no Chrome no Android a partir do Chrome 128.

Pacote da API de continuação para o Chrome no Android

A partir do Chrome 128, o pacote de APIs de continuação vai estar disponível para o Chrome no Android como parte de um teste de origem, após o teste inicial para computador. O pacote consiste em vários recursos do FedCM, incluindo a API Continuation, a API Parameters, a API Fields, vários configURLs e rótulos de conta personalizada.

A API Continuation permite fluxos de login com várias etapas. A API Parameters permite transmitir outros parâmetros ao IdP. A API Fields permite que a RP solicite atributos da conta específicos para a interface de divulgação na caixa de diálogo do FedCM. Além disso, vários configURL oferecem suporte a vários arquivos de configuração para um IdP, e os rótulos de conta personalizados permitem que os IdPs façam anotações nas contas para que as RPs possam filtrá-las por esses rótulos.

Para saber mais sobre o pacote da API Continuation, consulte a postagem do blog sobre o pacote da API Continuation no computador. Para se registrar no teste de origem, siga estas instruções. Se você já se inscreveu no teste de origem no computador, os recursos estarão disponíveis automaticamente no Chrome para Android a partir do Chrome 128.

Engajamento e compartilhamento de feedback

Se você tiver feedback ou encontrar algum problema, registre um problema. Vamos manter o guia canônico para desenvolvedores do FedCM atualizado, além da página de registros de atualização acumulados.