Esempio: condividere le credenziali su più siti web e app per Android

Per configurare la condivisione delle credenziali su più siti web e più app per Android, devi:

  • Specifica un dominio principale: scegli un URL come punto di riferimento principale per i link.
  • Crea file assetlinks.json:
    • Dominio principale: crea un file assetlinks.json nel dominio principale che elenchi tutti i domini che condividono le credenziali.
    • Altri domini: crea un file assetlinks.json in ciascuno degli altri domini, ognuno dei quali rimanda al dominio principale.
  • Configura il collegamento degli asset digitali nel file manifest di ogni app: configura ogni app per il collegamento al file assetlinks.json nel dominio principale.

Nell'esempio seguente, abbiamo indicato example.com come dominio principale e tutti gli altri domini elencati condividono le credenziali con example.com e tra se stessi.

Le due app con i seguenti nomi di pacchetto condividono anche le credenziali con tutti i siti web e tra di loro:

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

Prima di configurare la condivisione delle credenziali, devi completare i prerequisiti.

Per dichiarare la condivisione delle credenziali tra questi siti web e queste app per Android:

  1. Crea un file assetlinks.json con i seguenti contenuti:

    [
      {
        "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. Ospita il file JSON Digital Asset Links nella corrispondente posizione well-known sul dominio principale, in questo caso:https://example.com/.well-known/assetlinks.json.

  3. Crea un altro file assetlinks.json con i seguenti contenuti:

    [
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": "example.com"
        }
      }
    ]
    
  4. Ospita copie di questo file JSON Digital Asset Links nella seguente posizione sugli altri domini, in questo caso:

    • example.org/.well-known/assetlinks.json
    • example.net/.well-known/assetlinks.json
    • mypersonaldomain.com/.well-known/assetlinks.json
  5. Aggiungi la seguente riga a entrambi i file manifest delle app per Android in <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  6. Configura il collegamento degli asset digitali nel file manifest dichiarando l'associazione nell'app per Android. Aggiungi un oggetto che specifichi i file assetlinks.json da caricare. In questo caso:

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

Dopo aver seguito questi passaggi, avrai configurato la condivisione senza problemi delle credenziali su più siti web e app per Android.