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.
Configurar Digital Asset Links entre o app e o site
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:
1. Criar o arquivo JSON do Digital Asset Links
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 comoandroid_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
]
}
}
]
2. Hospede o arquivo JSON do Digital Asset Links
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:
- Configurar chaves de acesso com o Credential Manager: aprenda a implementar chaves de acesso, o método moderno e resistente a phishing para autenticação segura e fácil de usar.
- Configurar o recurso Fazer login com o Google com o Gerenciador de credenciais: integre o recurso "Fazer login com o Google" para simplificar o login do usuário com as Contas do Google.
- Resolver problemas comuns com o Gerenciador de credenciais: saiba como resolver erros comuns com o Gerenciador de credenciais.
- Integrar a autenticação do Firebase: permita que os usuários façam a autenticação com o Firebase usando as Contas do Google.