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 APIButton Mode e o pacote de continuação estão iniciando um teste de origem no Android. Com o recurso de vários IdPs, os desenvolvedores podem especificar uma matriz de vários provedores de identidade compatíveis em uma única chamada get(). A API Panel 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 a um fluxo de autorização OAuth envolvendo uma caixa de diálogo de permissão fornecida pelo IdP. 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 aproveitam 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 de retorno. 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 IdPs, a ordem fornecida pela parte restrita será respeitada.

O FedCM permite a reautenticação automática caso seja solicitada pelo desenvolvedor e caso haja 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 reautenticação automática. O navegador só iniciará a reautenticação automática quando reconhecer explicitamente a conta. Isso significa que o usuário precisa ter usado o FedCM com essa conta específica nessa parte restrita.

Se o status de login do usuário estiver definido como desconectado para um IdP, chamar o FedCM não vai buscar contas desse 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 de um IdP estiver conectado, mas nenhuma conta desse 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 não correspondente será exibida para o IdP, sugerindo que o usuário faça login com o IdP incompatível.

Quando o status de login do usuário é conectado, mas a sessão expirou, a interface não correspondente é exibida.
.

Para mais informações sobre o status de login, consulte a documentação. Consulte o guia para desenvolvedores para mais detalhes de 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

Faça um 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 à RP (recomendado), a chamada navigator.credentials.get() para ativar vários IdPs poderá ser implementada pelo provedor e os desenvolvedores da RP não precisarão alterar 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 com que o usuário fez a autenticação. O RP pode determinar como lidar com o token resultante, porque ele varia de acordo com o IdP.

Participar do teste de origem

Os testes de origem permitem que você teste novos recursos e dê 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 fazer 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 próprio, digite a origem da parte restrita em "Origem da Web" . Para um teste de origem de terceiros, digite a origem do SDK para JavaScript do IdP e marque a opção "Correspondência de terceiros". caixa
  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 em <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • Como um cabeçalho HTTP: Origin-Trial: TOKEN_GOES_HERE
    • Para participantes de testes de origem de terceiros:
      • Fornecendo um token de maneira programática.

API Botão 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 em 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 do logotipo do IdP e da parte restrita na interface de divulgação em dispositivos móveis.

Para saber mais sobre o suporte a ícones, consulte a documentação do desenvolvedor.

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 autenticando novamente com uma conta recorrente, a interface de divulgaçã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 APIButton Mode no computador. Se você já se inscreveu no teste de origem no computador, o recurso estará disponível automaticamente no Chrome para Android a partir do Chrome 128.

Pacote de APIs 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 de 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 de continuação, consulte a postagem do blog sobre o pacote de APIs de continuação 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.

Interaja e compartilhe feedback

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