Per iniziare

Panoramica

Il protocollo e l'API Digital Asset Links consentono a un'app o a un sito web di fare dichiarazioni pubbliche e verificabili su altre app o altri siti web. Ad esempio, un sito web può dichiarare di essere associato a un'app per Android specifica oppure può dichiarare di voler condividere le credenziali utente con un altro sito web.

Ecco alcuni possibili utilizzi di Digital Asset Links:

  • Il sito web A dichiara che i link al suo sito devono aprirsi in un'app designata sui dispositivi mobili, se l'app è installata.
  • Il sito web A dichiara di poter condividere le credenziali utente di Chrome con il sito web B in modo che l'utente non debba accedere al sito web B se ha eseguito l'accesso al sito web A.
  • L'app A dichiara di poter condividere le impostazioni del dispositivo, come la posizione, con il sito web B.

Termini chiave

  • Soggetto principale:il soggetto principale è l'app o il sito web che rilascia la dichiarazione. In Digital Asset Links, il principale è sempre l'app o il sito web che ospita l'elenco delle dichiarazioni.
  • Elenco delle istruzioni: le istruzioni sono contenute in un elenco delle istruzioni che contiene una o più istruzioni. Un elenco di dichiarazioni è in formato di testo normale e accessibile pubblicamente in una posizione controllata dal soggetto principale e difficile da falsificare o manomettere. Può trattarsi di un file autonomo o di una sezione di un altro elemento più grande. Ad esempio, su un sito web è un intero file, mentre in un'app per Android è una sezione del manifest dell'app. Le dichiarazioni possono essere visualizzate e verificate da chiunque utilizzando metodi non proprietari. Per ulteriori informazioni, consulta la documentazione relativa all'elenco delle istruzioni.
  • Istruzione : un'istruzione è un costrutto JSON strettamente strutturato composto da una relazione (cosa dice l'istruzione di fare, ad esempio: attiva la condivisione delle credenziali) e da un target (il sito web o l'app a cui si applica la relazione). Pertanto, ogni istruzione è come una frase, in cui principal dice relation su target.
  • Consumatore di dichiarazioni:un consumatore di dichiarazioni richiede un elenco di dichiarazioni a un soggetto principale, verifica la presenza di una dichiarazione rispetto a un determinato soggetto principale e, se esiste, può eseguire l'azione specificata. Per ulteriori informazioni, consulta la documentazione relativa al consumo di istruzioni.

Esempio di utilizzo rapido

Ecco un esempio molto semplificato di come il sito web www.example.com potrebbe utilizzare Digital Asset Links per specificare che tutti i link agli URL di quel sito devono aprirsi in un'app designata anziché nel browser:

  1. Il sito web www.example.com pubblica un elenco di istruzioni all'indirizzo https://www.example.com/.well-known/assetlinks.json. Questo è il nome e la posizione ufficiali di un elenco di dichiarazioni su un sito; gli elenchi di dichiarazioni in qualsiasi altra posizione o con qualsiasi altro nome non sono validi per questo sito. Nel nostro esempio, l'elenco delle dichiarazioni è costituito da una dichiarazione che concede all'app per Android l'autorizzazione ad aprire i link sul suo sito:
    [{
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target" : { "namespace": "android_app", "package_name": "com.example.app",
                     "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
      }]
    Un elenco di istruzioni supporta un array di istruzioni tra le parentesi quadre [ ], ma il nostro file di esempio contiene una sola istruzione. sha256_cert_fingerprints sono le impronte SHA256 del certificato di firma della tua app. Per ulteriori dettagli, consulta la documentazione di Link per app Android.
  2. L'app per Android elencata nella dichiarazione precedente ha un filtro per intent che specifica lo schema, l'host e il pattern del percorso degli URL che vuole gestire: in questo caso, https://www.example.com. Il filtro per intent include un attributo speciale android:autoVerify, nuovo in Android M, che indica che Android deve verificare la dichiarazione sul sito web descritto nel filtro per intent quando l'app viene installata.
  3. Un utente installa l'app. Android vede il filtro per intent con l'attributo autoVerify e verifica la presenza dell'elenco di dichiarazioni nel sito specificato. Se presente, Android controlla se il file include una dichiarazione che concede la gestione dei link all'app e verifica l'app in base all'hash del certificato. Se tutto va bene, Android inoltrerà tutti gli intent https://www.example.com all'app example.com.
  4. L'utente fa clic su un link a https://www.example.com/puppies sul proprio dispositivo. Questo link può trovarsi ovunque: in un browser, in un suggerimento di Google Search Appliance o altrove. Android inoltra l'intent all'app example.com.
  5. L'app example.com riceve l'intent e sceglie di gestirlo, aprendo la pagina dei cuccioli nell'app. Se per qualche motivo l'app avesse rifiutato di gestire il link o se l'app non fosse presente sul dispositivo, il link sarebbe stato inviato al successivo gestore di intent predefinito corrispondente a quel pattern di intent (spesso il browser).

Considerazioni e limitazioni importanti:

  • Il protocollo non autentica l'entità che effettua la dichiarazione, ma la dichiarazione si trova in una posizione specifica fortemente associata all'entità e sotto il controllo dell'entità.
  • Il protocollo non autentica la destinazione dell'affermazione, ma fornisce un mezzo per autenticare la destinazione (ad esempio, un'affermazione identifica le destinazioni delle app mobile in base all'hash del certificato e al nome del pacchetto).
  • Il protocollo non esegue in modo nativo alcuna azione di istruzione; piuttosto, consente di esporre le istruzioni, che un'applicazione di consumo deve convalidare e quindi decidere se e come agire. Android M esegue questi passaggi in modo nativo; ad esempio, se un sito web delega la gestione dei link a un'app specifica, Android controlla e verifica l'istruzione, verifica l'app di destinazione e poi offre all'app la possibilità di gestire il link specificato.
  • Il protocollo non consente di fare dichiarazioni su due terze parti: ovvero, il sito web A può fare una dichiarazione sul sito web B, ma non può fare una dichiarazione sul rapporto tra il sito web B e il sito web C. Tuttavia, se il sito web B considera attendibile il sito web A, può controllare il sito web A per una dichiarazione che concede l'autorizzazione al sito web C e decidere di implementarla.

Passaggi successivi

  1. Verifica se esiste una documentazione esplicita per il tuo caso d'uso.
  2. Scopri di più sulla creazione di un estratto conto.