Pré-requisitos

Um pré-requisito principal para implementar uma experiência de login integrada com o Gerenciador de credenciais no app e no site é estabelecer uma associação segura entre eles. Isso é feito usando arquivos Digital Asset Links, que permitem que os provedores de credenciais compartilhem credenciais com segurança entre seu app e site. Por exemplo, um site pode declarar que compartilha credenciais com um app Android ou outro site usando um arquivo Digital Asset Links. Com os Digital Asset Links, seus usuários têm uma experiência de login integrada e usam as mesmas credenciais salvas em apps e sites associados.

Para permitir que os provedores de credenciais usem chaves de acesso e senhas comumente no app e no site, crie um arquivo Digital Asset Links para o app seguindo estas etapas:

Crie um arquivo chamado assetlinks.json com a seguinte estrutura:

[
    {
    "relation" : [
        "<array_of_permissions_granted_to_app>"
    ],
    "target" : {
        "namespace" : "android_app",
        "package_name" : "<android_application_package_name>",
        "sha256_cert_fingerprints" : [
            "<sha256_certificate_fingerprint_of_signing_key>"
]
    }
}
]
  • relation: uma matriz de uma ou mais strings que descrevem o relacionamento que está sendo declarado. Para declarar que apps e sites compartilham credenciais de login, especifique as seguintes relações em uma matriz:

    • delegate_permission/common.handle_all_urls: essa relação ativa os Android App Links, que permitem que seu app Android processe todos os URLs da Web de um domínio específico.

    • delegate_permission/common.get_login_creds: essa relação permite compartilhar credenciais entre seu site e seu app Android.

  • target: um objeto que especifica o recurso a que a declaração se aplica.

    • target.namespace: defina como android_app.
    • target.package_name: defina como o 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. Para recuperar a impressão digital SHA256 do seu app, consulte Declarar associações de sites.

Um exemplo de destino para um app é o seguinte:

[
  {
    "relation" : [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target" : {
      "namespace" : "android_app",
      "package_name" : "com.example.android",
      "sha256_cert_fingerprints" : [
        SHA_HEX_VALUE
      ]
    }
  }
]

Hospede o arquivo Digital Asset Links no seguinte local no domínio de login do seu site:

```none
https://domain[:optional_port]/.well-known/assetlinks.json
```

Por exemplo, se o domínio de login for signin.example.com, hospede o arquivo em: https://signin.example.com/.well-known/assetlinks.json.

O tipo MIME do arquivo Digital Asset Links precisa ser JSON. Verifique se o servidor envia um cabeçalho Content-Type: application/json na resposta, com o status HTTP definido como 200.

3. Permitir a recuperação do arquivo Digital Asset Links

Atualize o host para permitir que o Google recupere o arquivo Digital Asset Links. A maioria dos sites permite que qualquer agente automatizado extraia arquivos no caminho /.well-known/ para que outros serviços possam acessar os metadados nesses arquivos.

Se você tiver um arquivo robots.txt, permita que os rastreadores da Web recuperem /.well-known/assetlinks.json atualizando o robots.txt da seguinte forma:

User-agent: *
Allow: /.well-known/

4. Atualizar o manifesto do app

No arquivo de manifesto do app, adicione as seguintes linhas em <application>:

<meta-data android:name="asset_statements" android:resource="@string/asset_statements" />

5. Configurar o Digital Asset Links para senhas

Se você estiver usando o Gerenciador de credenciais para senhas, será necessário concluir uma etapa adicional para configurar a vinculação de ativos digitais.

Adicione um objeto que especifique os arquivos assetlinks.json a serem carregados no arquivo de manifesto. É necessário fazer o escape de todos os apóstrofos e aspas que você usa na string conforme mostrado no exemplo a seguir:

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

O link https://signin.example.com/.well-known/assetlinks.json precisa retornar uma resposta HTTP 200 e ter um cabeçalho Content-Type de application/json. A verificação falha se a resposta tiver um redirecionamento HTTP 301 ou 302 ou um Content-Type que não seja JSON.

O exemplo a seguir mostra uma solicitação de amostra e os cabeçalhos de resposta esperados:

> GET /.well-known/assetlinks.json HTTP/1.1
> User-Agent: curl/7.35.0
> Host: signin.example.com

< HTTP/1.1 200 OK
< Content-Type: application/json

Próximas etapas

Depois de adicionar as dependências necessárias e configurar os Digital Asset Links para chaves de acesso, use o Gerenciador de credenciais para implementar os métodos de autenticação compatíveis: chaves de acesso e Fazer login com o Google. Para começar, consulte os seguintes guias para desenvolvedores: