Premiers pas

Présentation

L'API et le protocole Digital Asset Links permettent à une application ou à un site Web de faire des déclarations publiques et vérifiables à propos d'autres applications ou sites Web. Par exemple, un site Web peut être associé à une application Android spécifique ou déclarer partager des identifiants utilisateur avec un autre site Web.

Voici quelques cas d'utilisation possibles de Digital Asset Links:

  • Le site Web A déclare que les liens vers son site doivent s'ouvrir dans une application désignée sur les appareils mobiles, si celle-ci est installée.
  • Le site Web A déclare partager les identifiants de l'utilisateur Chrome avec le site Web B. L'utilisateur n'a donc pas besoin de se connecter au site Web B s'il est connecté au site Web A.
  • L'application A déclare qu'elle peut partager les paramètres de l'appareil, tels que la position, avec le site Web B.

Termes clés

  • Compte principal:le compte principal est l'application ou le site Web qui émet la déclaration. Dans Digital Asset Links, le compte principal est toujours l'application ou le site Web qui héberge la liste de relevés.
  • Liste de relevés: les instructions sont contenues dans une liste de relevés contenant une ou plusieurs instructions. Une liste d'instructions est en texte clair et accessible publiquement, dans un emplacement contrôlé par le principal, et difficile à falsifier ou à manipuler. Il peut s'agir d'un fichier indépendant ou d'une section d'un autre élément plus volumineux. Par exemple, sur un site Web, il s'agit d'un fichier entier. Dans une application Android, il s'agit d'une section du fichier manifeste de l'application. Les relevés peuvent être consultés et validés par n'importe quel utilisateur, à l'aide de méthodes non propriétaires. Pour en savoir plus, consultez la liste des relevés.
  • Une déclaration: une instruction est une construction JSON étroitement structurée qui se compose d'une relation (ce que l'instruction indique de faire, par exemple : "Activer le partage d'identifiants") et d'une cible (le site Web ou l'application à laquelle la relation s'applique). Par conséquent, chaque instruction ressemble à une phrase, où le principal indique relation sur target.
  • Consommateur de relevés:un consommateur de relevés demande la liste des relevés à un compte principal, vérifie la présence d'un relevé par rapport à un compte principal donné et, s'il existe, peut exécuter l'action spécifiée. Pour en savoir plus, consultez la déclaration sur la consommation.

Exemple d'utilisation rapide

Voici un exemple très simplifié de la manière dont le site Web www.example.com peut utiliser Digital Asset Links pour spécifier que tous les liens vers les URL de ce site doivent s'ouvrir dans une application désignée plutôt que dans le navigateur:

  1. Le site Web www.example.com publie une liste d'instructions à l'adresse https://www.example.com/.well-known/assetlinks.json. Il s'agit du nom et de l'emplacement officiels d'une liste de relevés sur un site. Les listes de relevés dans tout autre emplacement ou avec tout autre nom ne sont pas valides pour ce site. Dans notre exemple, la liste des instructions consiste en une seule instruction autorisant l'application Android à ouvrir des liens sur son site :
    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target" : { "namespace": "android_app", "package_name": "com.example.app",
                   "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
    }]
    Une liste de instructions est compatible avec un tableau de déclarations compris entre les signes [ ], mais notre fichier d'exemple ne contient qu'une seule instruction. sha256_cert_fingerprints correspond aux empreintes SHA256 du certificat de signature de votre application. Pour en savoir plus, consultez la documentation sur les liens vers une application Android.
  2. L'application Android répertoriée dans l'instruction ci-dessus comporte un filtre d'intent qui spécifie le schéma, l'hôte et le format de chemin des URL qu'il souhaite gérer: dans ce cas, https://www.example.com. Le filtre d'intent inclut un attribut spécial android:autoVerify, nouveau sur Android M, qui indique qu'Android doit vérifier l'instruction sur le site Web décrit dans le filtre d'intent lorsque l'application est installée.
  3. Un utilisateur installe l'application. Android voit le filtre d'intent avec l'attribut autoVerify et vérifie la présence de la liste d'instructions sur le site spécifié. Le cas échéant, Android vérifie si ce fichier inclut une instruction accordant la gestion des liens à l'application, puis la compare à l'instruction par hachage de certificat. Si tout fonctionne, Android transfère les intents https://www.example.com vers l'application example.com.
  4. L'utilisateur clique sur un lien vers https://www.example.com/chiots sur son appareil. Ce lien peut se trouver n'importe où dans un navigateur, dans une suggestion Google Search Appliance ou ailleurs. Android transfère l'intent vers l'application example.com.
  5. L'application example.com reçoit l'intent et choisit de la gérer, ce qui ouvre la page des chiots dans l'application. Si, pour une raison quelconque, l'application a refusé de gérer le lien ou si l'application ne se trouvait pas sur l'appareil, le lien aurait été envoyé au gestionnaire d'intents par défaut suivant ce schéma d'intent (souvent le navigateur).

Remarques et limites importantes:

  • Le protocole n'authentifie pas le compte principal à l'origine de l'instruction, mais celle-ci se trouve dans un emplacement spécifique fortement associé au compte principal et sous le contrôle du compte principal.
  • Le protocole n'authentifie pas la cible de l'instruction, mais il fournit à l'appelant un moyen d'authentifier la cible (par exemple, une instruction identifie les cibles d'applications mobiles par hachage de certificat et nom de package).
  • Le protocole n'effectue aucune action d'instruction de manière native ; il permet d'exposer des instructions qu'une application consommatrice doit valider, puis de décider si elle peut agir et de quelle manière. Android M effectue ces étapes de manière native pour vous. Par exemple, si un site Web délègue la gestion des liens à une application spécifique, Android vérifie et valide l'instruction, valide l'application cible, puis offre à l'application la possibilité de gérer le lien donné.
  • Le protocole ne permet pas de faire des déclarations sur deux tiers: le site Web A peut faire une déclaration sur le site Web B, mais le site Web A ne peut pas faire de déclaration sur le lien entre le site Web B et le site C. Toutefois, si le site Web B fait confiance au site Web A, il peut rechercher une instruction accordant l'autorisation d'accès au site Web C, puis décider de l'implémenter.

Étapes suivantes

  1. Vérifiez si vous disposez d'une documentation explicite pour votre cas d'utilisation.
  2. Découvrez comment créer une instruction.