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

Aumente a conveniência do usuário permitindo o compartilhamento contínuo de credenciais entre plataformas nos seus apps e sites. Quando vários sites e apps Android compartilham um back-end de gerenciamento de conta, esse recurso permite que os usuários salvem credenciais uma vez e sejam sugeridas automaticamente em qualquer site ou app Android vinculado.

Práticas recomendadas

Para ter a melhor experiência e segurança do usuário, implemente o compartilhamento contínuo 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 usar 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 a redefinição de senha única atualize todas as plataformas.
  • Domínios com WebView: amplie o compartilhamento de credenciais para domínios de WebView em seu app que lida com o gerenciamento da conta (login do host, inscrição, senha alterações ou redefinição de senha).
  • Apps Android

Essa abordagem cria um sistema unificado de gerenciamento de credenciais, aprimorando comodidade e segurança para o usuário.

Ao criar sites de gerenciamento da conta, sugerimos que você siga estas práticas recomendadas para sites de gerenciamento de contas:

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

Pré-requisitos

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

Para cada app Android:

Para cada site:

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

Facilite o compartilhamento de credenciais entre apps e sites Android

Para configurar o compartilhamento contínuo de credenciais entre apps e sites, você cria e publicar listas de declarações dos 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 vinculadas 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"
          ]
        }
      }
    ]
    

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

    O campo relation descreve o relacionamento que está sendo declarado. Para declarar que apps e sites compartilhem 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 o 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, como uma barra final.

    Não é considerado 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 seu 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 da domínios de login: https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json em que DOMAIN é totalmente qualificado e OPTIONAL_PORT deve ser omitido ao usar a porta 443 para HTTPS.

  3. Declarar a associação no app Android incorporando uma declaração no seu O arquivo res/values/strings.xml do app Android que leva à lista de instruções que você criado na Etapa 1. Adicione um objeto que especifique os arquivos assetlinks.json aos quais carregar. 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. Fuja de apóstrofos e as aspas que você usa na string.

    Também é possível adicionar um snippet JSON ao arquivo strings.xml, conforme mostrado em a documentação das DALs, mas usar a instrução include permite que você instruções de mudança sem publicar uma nova versão do app.

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

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

Depois de seguir essas etapas, você terá configurado corretamente a credencial integrada o compartilhamento entre seu site e seu 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 adição de novas entidades ao seu de compartilhamento de credenciais simplificada, promove a reutilização do código e reduz a possibilidade de erros durante as atualizações.