Configure o compartilhamento contínuo de credenciais entre apps e sites Android

Maximize a conveniência do usuário ao ativar o compartilhamento de credenciais integrado entre plataformas em apps e sites. Quando vários sites e apps Android compartilham um back-end de gerenciamento de contas, esse recurso permite que os usuários salvem as credenciais uma vez e as tenham sugeridas automaticamente em qualquer site ou app Android vinculado.

Há dois métodos de configuração de compartilhamento de credenciais:

  • Play Console: recomendado para a maioria dos desenvolvedores ao configurar o compartilhamento de credenciais com apps Android. Esse método permite configurar o compartilhamento de credenciais sem precisar lançar uma nova versão do app. Mesmo ao usar o Play Console, ainda é necessário publicar um arquivo assetlinks.json válido no seu site.
  • Digital Asset Links (DALs): adequados para casos de uso avançados, como oferecer suporte a vários apps ou domínios com configurações mais complexas.

Práticas recomendadas

Para ter a melhor experiência do usuário e segurança, implemente o compartilhamento de credenciais nestes pontos de contato:

  • Formulário de login: ative o preenchimento automático de credenciais.
  • Formulário de inscrição: armazene novas credenciais com segurança para uso em várias plataformas.
  • Formulário de alteração de senha: sincronize as atualizações de senha em todas as plataformas.
  • Formulário de redefinição de senha: permita que as redefinições de senha única atualizem todas as plataformas.
  • Domínios de WebView: estenda o compartilhamento de credenciais para domínios de WebView no app que processam o gerenciamento de contas (formulários de login, inscrição, alteração ou redefinição de senha do host).
  • Apps Android

Essa abordagem cria um sistema de gerenciamento de credenciais unificado, melhorando a conveniência e a segurança do usuário.

Ao projetar seus sites de gerenciamento de contas, sugerimos que você siga estas práticas recomendadas:

Ao projetar seus apps Android, recomendamos que você integre o app ao Gerenciador de credenciais do Android.

Configurar o compartilhamento de credenciais usando o Play Console

Agora é possível ativar o compartilhamento de credenciais integrado diretamente no Play Console sem publicar uma nova versão do app Android. Esse método simplifica o processo gerenciando as configurações de compartilhamento de credenciais pela interface do Play Console.

Pré-requisitos

Antes de configurar o compartilhamento de credenciais usando o Play Console, verifique se você tem:

  • As permissões necessárias do Play Console para acessar as seções Links diretos e Configuração do app. Se você não for o proprietário da conta, peça ao administrador do Play Console para conceder o acesso adequado.
  • Capacidade de publicar um arquivo /.well-known/assetlinks.json em cada domínio, seguindo a sintaxe do Digital Asset Links (DALs).

Ativar o compartilhamento de credenciais para um novo domínio

Para configurar o compartilhamento de credenciais integrado no Play Console para um novo domínio, siga estas etapas:

  1. Abra o Play Console e acesse a página Links diretos (Crescimento de usuários > Links diretos).
  2. Na guia Configuração do app, clique em Adicionar domínio.
  3. Insira o domínio do seu site.
  4. Ative a opção Ativar o compartilhamento de credenciais.
  5. Copie o arquivo JSON gerado e publique-o no local especificado (https://YOUR_DOMAIN/.well-known/assetlinks.json de acordo com o protocolo) ou adicione as informações relevantes ao arquivo assetlinks.json.
  6. Clique em Criar associação de sites.

Se for bem-sucedido, você vai voltar à página Links diretos.

Ativar o compartilhamento de credenciais para um domínio

Para configurar o compartilhamento de credenciais integrado no Play Console para um domínio existente, siga estas etapas:

  1. Selecione a guia Configuração do app.
  2. Na seção Domínios, em Configuração do app, clique em Ativar na coluna Compartilhamento de credenciais.
  3. Copie o arquivo JSON gerado e publique-o no local especificado (ou adicione as informações relevantes ao arquivo assetlinks.json).
  4. Clique em Ativar o compartilhamento de credenciais.

Se for bem-sucedido, você vai voltar à página Links diretos.

Configurar o compartilhamento de credenciais usando apenas Digital Asset Links (DALs)

Para configurações complexas que envolvem vários apps ou sites, use os links de ativos digitais (DALs, na sigla em inglês) para configurar o compartilhamento de credenciais manualmente.

Pré-requisitos

Antes de configurar o compartilhamento de credenciais integrado, verifique se você tem o seguinte para cada plataforma:

Para cada app Android:

Para cada site:

  • Capacidade de publicar um arquivo /.well-known/assetlinks.json em cada domínio respectivo, seguindo a sintaxe do Digital Asset Links (DALs).
  • Todos os domínios de gerenciamento de contas (formularios de login, inscrição, alteração ou redefinição de senha) precisam ser acessíveis por HTTPS.

Ativar o compartilhamento de credenciais integrado entre apps Android e sites

Para configurar o compartilhamento de credenciais integrado entre apps e sites, crie e publique listas de declarações de Digital Asset Links que declarem quais entidades (sites ou apps Android) podem compartilhar credenciais.

Para declarar uma relação de compartilhamento de credenciais:

  1. Crie um arquivo assetlinks.json com instruções que vinculam ao site e ao app Android, seguindo a sintaxe da lista de instruções de DALs:

    [
      {
        "relation":[
          "delegate_permission/common.get_login_creds"
        ],
        "target":{
          "namespace":"web",
          "site":URL
        }
      },
      {
        "relation":[
          "delegate_permission/common.get_login_creds"
        ],
        "target":{
          "namespace":"android_app",
          "package_name":"APP_ID",
          "sha256_cert_fingerprints":[
            "SHA_HEX_VALUE"
          ]
        }
      }
    ]
    

    Em que URL é o URL do seu site, APP_ID é o ID do aplicativo Android e SHA_HEX_VALUE é a impressão digital SHA256 do certificado de assinatura do seu app Android.

    O campo relation descreve a relação que está sendo declarada. Para declarar que apps e sites compartilham credenciais de login, especifique as relações como delegate_permission/common.get_login_creds. Saiba mais sobre strings de relação em DALs.

    O campo target é um objeto que especifica o recurso a que a declaração se aplica.

    Os campos a seguir identificam um site:

    namespace

    web

    site

    O URL do site, no formato https://domain[:optional_port. Por exemplo, https://www.example.com.

    O domain precisa ser totalmente qualificado, e optional_port precisa ser omitido ao usar a porta 443 para HTTPS.

    Um destino site só pode ser um domínio raiz. Não é possível limitar uma associação de app a um subdiretório específico. Não inclua um caminho no URL, por exemplo, uma barra.

    Não é esperado que os subdomínios apresentem correspondências: ou seja, se você especificar domain como www.example.com, o domínio www.counter.example.com não será associado ao app.

    Os campos a seguir identificam um app Android.

    namespace

    android_app

    package_name

    Nome do pacote declarado no manifesto do app. Por exemplo, com.example.android

    sha256_cert_fingerprints

    As impressões digitais SHA256 do certificado de assinatura do app.

  2. Hospede o arquivo JSON do Digital Asset Links no seguinte local nos domínios de login: https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json, em que DOMAIN é totalmente qualificado e OPTIONAL_PORT precisa ser omitido ao usar a porta 443 para HTTPS.

  3. Declare a associação no app Android incorporando uma instrução no arquivo res/values/strings.xml do app Android que vincula à lista de instruções que você criou na etapa 1. Adicione um objeto que especifique os arquivos assetlinks.json a serem carregados. Exemplo:

      <string name="asset_statements" translatable="false">
    [{
      \"include\": \"https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json\"
    }]
    </string>
    

    Substitua DOMAIN e OPTIONAL_PORT (precisa ser omitido ao usar a porta 443 para HTTPS), por exemplo, https://www.example.com. Faça o escape de todos os apóstrofos e aspas que você usa na string.

    Também é possível adicionar um snippet JSON no arquivo strings.xml, conforme mostrado na documentação de DALs, mas o uso da instrução include permite mudar instruções sem publicar uma nova versão do app.

  4. Faça referência à instrução no manifesto adicionando a seguinte linha ao arquivo AndroidManifest.xml do app em <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  5. Publicar a nova versão do app Android no Google Play Console

Depois de seguir estas etapas, você terá configurado o compartilhamento de credenciais integrado entre o site e o app Android.

Essa não é a única maneira válida de configurar DALs para compartilhamento de credenciais, mas essa abordagem simplifica o processo futuro de adicionar novas entidades à sua rede de compartilhamento de credenciais, promove a reutilização de código e reduz o potencial de erros durante as atualizações.