Maximize a conveniência do usuário ativando o compartilhamento de credenciais contínuo em várias plataformas nos seus 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.
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 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 (login do host, inscrição, alteração de senha ou formulários de redefinição de senha).
- 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:
- Projetar seu formulário de inscrição de acordo com as práticas recomendadas
- Projetar seu formulário de login de acordo com as práticas recomendadas
- Adicionar um URL conhecido para alteração de senhas
Ao projetar seus apps Android, recomendamos que você integre o app ao Gerenciador de credenciais do Android.
Pré-requisitos
Antes de configurar o compartilhamento de credenciais integrado, verifique se você tem o seguinte para cada plataforma:
Para cada app Android:
- O ID do aplicativo Android, conforme declarado no arquivo
build.gradle
do app. - As impressões digitais SHA256 do certificado de assinatura.
- (Recomendado) O login do usuário foi implementado com a API Credential Manager.
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 (formulários de login, inscrição, alteração de senha ou redefinição de senha) precisam ser acessíveis por HTTPS.
Ativar o compartilhamento de credenciais entre apps Android e sites
Para configurar o compartilhamento de credenciais 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:
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 eSHA_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 comodelegate_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, eoptional_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 é 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
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 queDOMAIN
é totalmente qualificado eOPTIONAL_PORT
precisa ser omitido ao usar a porta 443 para HTTPS.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 arquivosassetlinks.json
a serem carregados. Exemplo:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json\" }] </string>
Substitua
DOMAIN
eOPTIONAL_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çãoinclude
permite mudar instruções sem publicar uma nova versão do app.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"/>
Publique a nova versão do seu app Android no Google Play Console
Depois de seguir estas etapas, você terá configurado o compartilhamento de credenciais perfeito entre o site e o app Android.
Observe que 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 integrada de compartilhamento de credenciais, promove a reutilização do código e reduz o potencial de erros durante as atualizações.