Configura la condivisione delle credenziali tra app e siti web Android senza interruzioni

Massimizza la praticità per gli utenti consentendo la condivisione senza problemi delle credenziali su più piattaforme tra le tue app e i tuoi siti web. Quando più siti web e app per Android condividono un backend per la gestione dell'account, questa funzionalità consente agli utenti di salvare le credenziali una sola volta e di farle suggerire automaticamente su qualsiasi sito web o app per Android collegata.

Best practice

Per un'esperienza utente e una sicurezza ottimali, implementa la condivisione fluida delle credenziali in questi touchpoint:

  • Modulo di accesso: attiva la compilazione automatica delle credenziali.
  • Modulo di registrazione: archivia in modo sicuro le nuove credenziali per utilizzarle su più piattaforme.
  • Modulo di modifica della password: sincronizza gli aggiornamenti delle password su tutte le piattaforme.
  • Modulo di reimpostazione della password: consenti la reimpostazione delle singole password per aggiornare tutte le piattaforme.
  • Domini webview: estendi la condivisione delle credenziali ai domini webview all'interno della tua app che gestiscono la gestione dell'account (form di accesso, registrazione, modifica o reimpostazione della password dell'host).
  • App per Android

Questo approccio crea un sistema unificato di gestione delle credenziali, che migliora la comodità e la sicurezza dell'utente.

Quando progetti i siti web per la gestione dell'account, ti consigliamo di seguire queste best practice per i siti di gestione dell'account:

Quando progetti le tue app per Android, ti consigliamo di integrarle con Gestore delle credenziali Android.

Prerequisiti

Prima di configurare la condivisione delle credenziali senza problemi, assicurati di avere quanto segue per ogni piattaforma:

Per ogni app per Android:

Per ogni sito web:

  • Possibilità di pubblicare un file /.well-known/assetlinks.json su ciascun rispettivo dominio, seguendo la sintassi di Digital Asset Links (DAL).
  • Tutti i domini di gestione dell'account (form di accesso, registrazione, modifica della password o reimpostazione della password) devono essere accessibili tramite HTTPS.

Consentire la condivisione senza interruzioni delle credenziali tra app e siti web Android

Per configurare la condivisione senza interruzioni delle credenziali tra app e siti web, crei e pubblichi elenchi di istruzioni Digital Asset Links che dichiarano quali entità (siti web o app per Android) sono autorizzate a condividere le credenziali.

Per dichiarare una relazione di condivisione delle credenziali:

  1. Crea un file assetlinks.json con istruzioni che rimandano al sito web e all'app per Android, seguendo la sintassi dell'elenco di istruzioni DAL:

    [
      {
        "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"
          ]
        }
      }
    ]
    

    dove URL è l'URL del tuo sito, APP_ID è il tuo ID applicazione Android e SHA_HEX_VALUE è l'impronta SHA256 del certificato di firma della tua app Android.

    Il campo relation descrive la relazione da dichiarare. Per dichiarare che le app e i siti condividono le credenziali di accesso, specifica le relazioni come delegate_permission/common.get_login_creds. Scopri di più sulle stringhe di relazione nelle DAL.

    Il campo target è un oggetto che specifica la risorsa a cui si applica la dichiarazione.

    I seguenti campi identificano un sito web:

    namespace

    web

    site

    L'URL del sito web, nel formato https://domain[:optional_port], ad esempio https://www.example.com.

    domain deve essere un nome completo e optional_port deve essere omesso quando si utilizza la porta 443 per HTTPS.

    Un target site può essere solo un dominio principale: non puoi limitare l'associazione di un'app a una sottodirectory specifica. Non includere un percorso nell'URL, ad esempio una barra finale.

    I sottodomini non vengono considerati corrispondenti. Ciò significa che se specifichi domain come www.example.com, il dominio www.counter.example.com non viene associato alla tua app.

    I seguenti campi identificano un'app per Android:

    spazio dei nomi

    android_app

    package_name

    Il nome del pacchetto dichiarato nel file manifest dell'app. Ad esempio, com.example.android

    sha256_cert_fingerprints

    Le impronte SHA256 del certificato di firma della tua app.

  2. Ospita il file JSON Digital Asset Links nella seguente posizione sui domini di accesso: https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json , dove DOMAIN è un nome completo e OPTIONAL_PORT deve essere omesso quando si utilizza la porta 443 per HTTPS.

  3. Dichiara l'associazione nell'app per Android incorporando un'istruzione nel file res/values/strings.xml dell'app per Android che rimanda all'elenco di istruzioni creato nel passaggio 1. Aggiungi un oggetto che specifichi i file assetlinks.json da caricare. Ad esempio:

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

    Sostituisci DOMAIN e OPTIONAL_PORT (devono essere omessi se utilizzi la porta 443 per HTTPS), ad esempio https://www.example.com. Utilizza il carattere di escape per gli apici e le virgolette utilizzati nella stringa.

    Puoi anche aggiungere uno snippet JSON nel file strings.xml come mostrato nella documentazione relativa alle DAL, ma l'utilizzo dell'istruzione include ti consente di modificare le istruzioni senza pubblicare una nuova versione dell'app.

  4. Fai riferimento all'istruzione nel file manifest aggiungendo la seguente riga al file AndroidManifest.xml dell'app in <application>:

    <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
    
  5. Pubblica la nuova versione dell'app per Android su Google Play Console

Dopo aver seguito questi passaggi, avrai configurato la condivisione senza problemi delle credenziali tra il tuo sito web e la tua app per Android.

Tieni presente che questo non è l'unico modo valido per configurare i DAL per la condivisione delle credenziali, ma questo approccio semplifica la procedura futura di aggiunta di nuove entità alla tua rete di condivisione delle credenziali senza interruzioni, promuove la riutilizzabilità del codice e riduce il potenziale di errori durante gli aggiornamenti.