Exemplo: compartilhar credenciais entre vários sites e vários dispositivos Android

Configurar o compartilhamento de credenciais em vários sites e apps Android você precisa:

  • Designar um domínio principal: escolha um URL como ponto de referência principal para links.
  • Crie arquivos assetlinks.json:
    • Domínio principal: crie um arquivo assetlinks.json no seu domínio principal que liste todos os domínios que compartilham credenciais.
    • Outros domínios: crie um arquivo assetlinks.json em cada um dos outros domínios. domínios, cada um vinculado ao domínio principal.
  • Configurar a vinculação de ativos digitais no manifesto de cada app: configure cada app para para o arquivo assetlinks.json no domínio principal.
.

No exemplo a seguir, designamos example.com como o domínio principal, e todos os outros os domínios listados compartilham credenciais com example.com e entre si.

Os dois apps com os nomes de pacotes a seguir também compartilham credenciais com todas as os sites e entre eles:

  • com.example.android.myapplication
  • com.example.appname

Antes de configurar o compartilhamento de credenciais, você precisa atender aos pré-requisitos.

Para declarar o compartilhamento de credenciais nesses sites e apps Android:

  1. Crie um arquivo assetlinks.json com o seguinte conteúdo:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.com"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.org"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://example.net"
        }
      },
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "https://myownpersonaldomain.com"
        }
      },
      {
        "relation" : [
          "delegate_permission/common.get_login_creds"
        ],
        "target" : {
          "namespace" : "android_app",
          "package_name" : "com.example.android.myapplication",
          "sha256_cert_fingerprints" : [ "AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00"
          ]
        }
      },
      {
        "relation" : [
          "delegate_permission/common.get_login_creds"
        ],
        "target" : {
          "namespace" : "android_app",
          "package_name" : "com.example.appname",
          "sha256_cert_fingerprints" : [ "00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF"
          ]
        }
      }
    ]
    
  2. Hospede o arquivo JSON do Digital Asset Links no arquivo conhecido bem conhecido correspondente local no domínio principal, neste caso: https://example.com/.well-known/assetlinks.json:

  3. Crie outro arquivo assetlinks.json com o seguinte conteúdo:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "example.com"
        }
      }
    ]
    
  4. Hospede cópias deste arquivo JSON do Digital Asset Links no seguinte local em outros domínios, neste caso:

    • example.org/.well-known/assetlinks.json
    • example.net/.well-known/assetlinks.json
    • mypersonaldomain.com/.well-known/assetlinks.json
  5. Adicione a seguinte linha aos dois arquivos de manifesto de apps Android em <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  6. Configurar a vinculação de ativos digitais no manifesto declarando a associação no app Android. Adicione um objeto que especifique os arquivos assetlinks.json. para carregar. Nesse caso:

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

Depois de seguir essas etapas, você terá configurado corretamente a credencial integrada o compartilhamento entre vários sites e apps Android.