1. Panoramica
I tuoi utenti accedono al tuo servizio sia su siti web che su app per Android? Obbligarli ad accedere separatamente su ogni piattaforma crea attriti inutili e può portare a abbandoni.
Digital Asset Links (DAL) risolve questo problema consentendoti di dichiarare le associazioni tra i tuoi siti web e le tue app. In questo modo, i gestori delle password, come Gestore delle password di Google, possono condividere le password e le passkey salvate tra di loro.
In particolare, la configurazione del file Digital Asset Links richiede relazioni diverse a seconda di ciò che vuoi condividere:
- Per le password: l'inclusione di
delegate_permission/common.get_login_credsconsente ai gestori delle password di condividere le password salvate tra il tuo sito web e la tua app. - Per le passkey: poiché le passkey sono strettamente associate a un dominio web specifico, Android richiede una prova della proprietà del dominio. Pertanto, devi includere
delegate_permission/common.handle_all_urls. Sebbene tu possa riconoscere questa autorizzazione come quella utilizzata per Android App Links (deep link), è anche un requisito rigoroso per consentire l'utilizzo delle passkey create su una piattaforma sull'altra.
Il risultato? Gli utenti possono accedere senza problemi alle piattaforme affiliate utilizzando le password o le passkey salvate per una sola di esse.

L'implementazione della condivisione fluida delle credenziali può migliorare notevolmente l'esperienza utente. Ad esempio, eBay ha registrato un aumento del 10% degli accessi riusciti dopo l'implementazione di DAL per la condivisione delle credenziali.
In questo codelab, imparerai a utilizzare Digital Asset Links per attivare la condivisione delle credenziali tra il tuo sito web e la tua app per Android.
Prerequisiti
- Conoscenza di base di JSON e dello sviluppo per Android.
- Familiarità con i prerequisiti di Android Gestore delle credenziali.
Obiettivi didattici
- Come configurare la condivisione delle credenziali utilizzando Google Play Console (consigliato).
- Come creare manualmente un file
assetlinks.json. - Come configurare un'app per Android per l'associazione manuale.
- Come attivare le passkey su un'app per Android associandola a un dominio di un sito web.
- Come utilizzare gli strumenti per generare e convalidare la configurazione.
Che cosa ti serve
- Un sito web: la possibilità di ospitare un file JSON all'indirizzo
https://{your-domain}/.well-known/assetlinks.json. - Un'app per Android:
- Per il metodo di Play Console: un'app pubblicata su Google Play.
- Per il metodo manuale: un progetto Android che puoi modificare e compilare. Tieni presente che, per la condivisione delle credenziali con Gestore delle password di Google, l'app deve essere pubblicata su Google Play.
Come funziona
Affinché la condivisione delle credenziali funzioni, devi stabilire una fiducia bidirezionale:
- Web -> App: il tuo sito web deve ospitare un file
assetlinks.jsonche dichiara di considerare attendibile la tua app per Android. - App -> Web: la tua app per Android deve essere configurata in modo da considerare attendibile il tuo sito web.
Esistono due modi per farlo: il metodo automatico utilizzando Google Play Console (consigliato) e il metodo manuale utilizzando direttamente Digital Asset Links.
2. Configurare utilizzando Google Play Console (consigliato)
Il modo più semplice per attivare la condivisione delle credenziali tra il tuo sito web e la tua app per Android è tramite Google Play Console. Questo metodo ti consente di associare la tua app al tuo sito web senza dover modificare il manifest dell'app o pubblicare una nuova versione dell'app. Google Play gestisce l'associazione lato app per te.
Prerequisiti
- Autorizzazioni di Play Console per accedere alla pagina Link diretti.
- Possibilità di pubblicare un file
/.well-known/assetlinks.jsonsul tuo dominio.
Per ulteriori informazioni sui link diretti, consulta Android App Links.
Passaggi
- In Play Console, vai a Aumenta > Link diretti.
- Se il tuo dominio non è elencato, fai clic su Aggiungi dominio in Configurazione app.
- Trova il tuo dominio e individua la colonna Condivisione delle credenziali. Fai clic su Attiva (o assicurati che l'opzione Attiva la condivisione delle credenziali sia attivata per i nuovi domini).
- Copia lo snippet JSON generato da Play Console.
- Pubblica questi contenuti JSON all'indirizzo
https://{your-domain}/.well-known/assetlinks.json. (Se hai già questo file, aggiungi la nuova istruzione). - Torna a Play Console e fai clic su Crea associazione sito web o Attiva la condivisione delle credenziali.
Play Console verificherà ora la configurazione dell'hosting.

Affinché la condivisione delle credenziali funzioni, l'host del sito web deve soddisfare i seguenti requisiti:
- L'URL è accessibile tramite HTTPS.
- Il server risponde con
Content-Type: application/json. - L'URL è accessibile senza reindirizzamenti.
Una volta verificata, la condivisione delle credenziali è attiva. La propagazione delle modifiche alla configurazione potrebbe richiedere 1-2 settimane.
3. Configurare manualmente utilizzando Digital Asset Links
Hai bisogno di maggiore controllo? Oppure non hai accesso a Play Console? Puoi configurare manualmente la condivisione delle credenziali tra il tuo sito web e la tua app per Android. Questa operazione prevede due attività principali: ospitare il file JSON sul tuo sito e aggiornare il manifest dell'app per Android.
1. Recuperare l'impronta digitale dell'app
Prima di configurare la condivisione fluida delle credenziali, assicurati di avere quanto segue per ogni piattaforma:
Per ogni app per Android:
- L'ID applicazione Android, come dichiarato nel file
build.gradledell'app. - Le impronte SHA256 del certificato di firma.
- (Consigliato) Accesso utente implementato con l'API Credential Manager.
2. Creare il file di associazione
Devi creare un file assetlinks.json che dichiara le relazioni tra il tuo sito web e la tua app. Utilizza delegate_permission/common.get_login_creds per concedere l'autorizzazione a condividere le password e delegate_permission/common.handle_all_urls per attivare i link diretti e condividere le passkey.
Crea un file denominato assetlinks.json con i seguenti contenuti. Sostituisci i valori di esempio con l'URL del tuo sito, il nome del pacchetto e l'impronta:
[{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
}
}]
3. Ospitare il file
Carica il file assetlinks.json nella directory .well-known alla radice del tuo dominio.
Località: https://{your-domain}/.well-known/assetlinks.json
Affinché la condivisione delle credenziali funzioni, l'host del sito web deve soddisfare i seguenti requisiti:
- L'URL è accessibile tramite HTTPS.
- Il server risponde con
Content-Type: application/json. - L'URL è accessibile senza reindirizzamenti.

4. Configurare l'app per Android
Ora, indica alla tua app per Android di considerare attendibile il sito web. Aggiungerai un riferimento nel manifest che rimanda a un file di risorse contenente l'URL assetlinks.json.
1. Aggiungere una risorsa stringa
In res/values/strings.xml, aggiungi una nuova stringa asset_statements. Tieni presente le virgolette di escape.
<resources>
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://www.example.com/.well-known/assetlinks.json\"
}]
</string>
</resources>
2. Aggiungere metadati al manifest
In AndroidManifest.xml, aggiungi un tag <meta-data> all'interno dell'elemento <application> che fa riferimento a questa risorsa stringa:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Dopo aver completato questi passaggi e pubblicato una nuova versione della tua app per Android, i gestori delle password che supportano Digital Asset Links (come Gestore delle password di Google) potranno suggerire le credenziali salvate per www.example.com quando l'utente tenta di accedere a com.example.app e viceversa.
4. Verificare la configurazione
Prima di spedire, è fondamentale verificare la configurazione di Digital Asset Links. I file JSON non corretti o non raggiungibili non funzioneranno senza generare errori.
Utilizza lo strumento ufficiale Generatore e validatore di istruzioni.

- Inserisci il dominio del sito e il nome del pacchetto applicativo.
- Fai clic su Test Statement.
- Lo strumento verificherà se il file
assetlinks.jsonè ospitato correttamente e contiene l'associazione valida.
5. Condividere le credenziali tra più siti web

Se hai più siti web che condividono lo stesso sistema di accesso (ad esempio, example.com e example.co.uk), puoi dichiararli come affiliati in modo che le credenziali possano essere condivise tra di loro.
Condividere le password tra più siti web
Per condividere le password tra i siti web, puoi dichiarare un'associazione web-to-web utilizzando delegate_permission/common.get_login_creds.
Ad esempio, affinché example.com condivida le password con example.co.uk, il file assetlinks.json ospitato all'indirizzo https://example.com/.well-known/assetlinks.json deve includere un'istruzione che indirizza a example.co.uk:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://example.co.uk"
}
}]
Allo stesso modo, https://example.co.uk/.well-known/assetlinks.json deve includere un'istruzione che indirizza a example.com.
Condividere le passkey tra più siti web
Per consentire a più siti web di condividere le stesse passkey, devono utilizzare lo stesso ID RP (Relying Party ID). In WebAuthn e nelle passkey, l'ID RP specifica l'ambito di una credenziale in base al nome di dominio. Quando crei una passkey, questa è associata a un ID RP specifico e può essere utilizzata solo sui domini che rientrano nell'ambito di quell'ID. La definizione corretta dell'ID RP garantisce un'esperienza con le passkey senza problemi su sottodomini, origini cross-site e app mobile proprietarie. Puoi scoprire di più sulla configurazione dell'ID RP in Informazioni sull'ID RP (Relying Party ID). Con le richieste di origine correlate, un sito web può specificare altre origini autorizzate a utilizzare il suo ID RP, consentendo agli utenti di riutilizzare la stessa passkey su più siti gestiti. Tieni presente che questa operazione è diversa dalla condivisione delle passkey tra un sito web e un'app per Android, che utilizza delegate_permission/common.handle_all_urls in Digital Asset Links.
Ad esempio, se vuoi che example.com e example.co.uk condividano le passkey, puoi decidere che example.com sarà l'ID RP canonico. Affinché funzioni, example.co.uk deve utilizzare rpId: 'example.com' nelle chiamate API WebAuthn e example.com deve ospitare un file all'indirizzo https://example.com/.well-known/webauthn per inserire example.co.uk nella lista consentita:
{
"origins": [
"https://example.co.uk"
]
}
In questo modo, example.co.uk può creare e utilizzare le passkey associate a example.com.
6. Conclusione
Complimenti! Hai configurato correttamente la condivisione fluida delle credenziali.
Ora gli utenti possono salvare una password e una passkey sul tuo sito web e utilizzarle per accedere alla tua app per Android con un solo tocco (e viceversa). Questa semplice modifica può aumentare notevolmente i tassi di conversione degli accessi e la soddisfazione degli utenti.
Passaggi successivi
- Consulta la documentazione ufficiale di Digital Asset Links.
- Scopri di più sui principi fondamentali della condivisione delle credenziali.
- Leggi il case study di eBay per vedere l'impatto.