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 Button Mode, os provedores de identidade podem usar a API FedCM mesmo que os usuários não tenham sessões de 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 em um conjunto de IdPs compatíveis, e os RPs se beneficiam de taxas de login e inscrição mais altas. Se o usuário estiver conectado com vários IdPs, ele vai receber uma solicitação para fazer login no RP usando um deles.

Um usuário está fazendo login com diferentes IdPs usando a API multi-IdP.

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

  • Se o usuário já tiver feito login no RP com um IdP específico (ou seja, se ele 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, e o IdP mais recente aparece 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 ocorreu porque o usuário fez login antes que os registros de carimbo de data/hora fossem implementados no FedCM. Essas contas são listadas abaixo das que têm carimbos de data/hora.
  • Se o usuário não tiver contas recorrentes com IdPs, 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 retornadas para vários IdPs, o usuário não será autenticado novamente automaticamente. Ter uma conta recorrente é um requisito importante para a reautorização automática. O navegador só vai iniciar a reautorização automática quando reconhecer explicitamente a conta. Isso implica que o usuário já tenha usado o FedCM com essa conta específica no RP.

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 de desconectado do usuário for exibido para todos os IdPs disponíveis, o comando de login do FedCM não será mostrado automaticamente no modo de widget.

Se o status de login salvo no navegador para um IdP estiver conectado, 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 é "Logado", mas a sessão expirou, a interface de incompatibilidade é 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 um usuário no RP de demonstração ou como um 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 provedores de identidade de demonstração. Siga as instruções na página de demonstração.

Para testar o recurso de vários IdPs em sites que não estão registrados para o teste de origem, ative a flag de recurso em chrome://flags/#fedcm-multi-idp.

Testar 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 RP precisa chamar a API FedCM.

Para testar os vários IdPs em um RP, 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 lidar com a token resultante, que varia de acordo com o IdP.

Participar do teste de origem

Com os testes de origem, você pode testar novos recursos e enviar feedback sobre a usabilidade, a praticidade e a eficácia deles. Para mais informações, consulte Começar a usar os testes de origem.

Você pode testar o recurso de vários provedores de identidade se registrar nos testes de origem a partir do Chrome 128.

Para testar o uso de vários provedores de identidade, um RP pode registrar a origem e executar um teste de origem própria. Também é possível que o IdP se inscreva para um teste de origem de terceiros e tenha o recurso Multi IdP disponível para todos os RPs usando SDKs do 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 Register 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, insira a origem do SDK JavaScript do provedor de identidade e marque a caixa "Correspondência de terceiros".
  4. Clique em Enviar.
  5. Forneça o token emitido na página do RP:
    • Para participantes do teste de origem de 1ª parte:
      • 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 maneira programática.

API Button Mode para o Chrome no Android

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

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

Assim como a marca do IdP no arquivo de configuração, os ícones do RP podem ser configurados no 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 do RP.
Os ícones do logotipo do IdP e do RP na interface de divulgação no dispositivo móvel.

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

Se o usuário ainda não tiver feito login, o FedCM vai solicitar que ele faça login no IdP usando o login_url fornecido pelo IdP em uma guia personalizada do Chrome (CCT).

Um usuário está fazendo login no modo de botão 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 é mostrada.

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 versão 128, o pacote da API Continuation vai estar disponível para o Chrome no Android como parte de um teste de origem, após o teste inicial no computador. O pacote consiste em vários recursos do FedCM, incluindo a API Continuation, a API Parameters, a API Fields, vários configURLs e Identificadores de conta personalizados.

A API Continuation permite fluxos de login com várias etapas. A API Parameters permite transmitir outros parâmetros para o IdP. A API Fields permite que o RP solicite atributos de conta específicos para a IU de divulgação na caixa de diálogo 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 anexem comentários às contas para que os 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 inscrever no teste de origem, siga estas instruções. Se você já se inscreveu no teste de origem no computador, os recursos vão estar disponíveis automaticamente no Chrome no 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 do desenvolvedor para a FedCM atualizado, assim como a página de registros de atualização.