Syntaxe de la liste d'instructions

Une liste d'instructions est un fichier ou un extrait encodé au format JSON situé à un emplacement connu.

Emplacement de la liste des relevés

Consultez Créer une liste d'instructions pour savoir où stocker cette liste.

Syntaxe

La liste ou l'extrait d'instruction se compose des éléments suivants : Un tableau JSON contenant une ou plusieurs instructions de site Web ou d'application en tant qu'objets JSON. Ces instructions peuvent être dans n'importe quel ordre. Voici la syntaxe générale:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
Tableau d'une ou de plusieurs chaînes décrivant la relation déclarée concernant la cible. Consultez la liste des chaînes de relation définies. Exemple:delegate_permission/common.handle_all_urls
cible
Composant cible auquel cette instruction s'applique. Types de cibles disponibles :
  • "target": {
      "namespace": "web",
      "site": "site_root_url"
    }
    espace de noms
    Doit être défini sur web pour les sites Web.
    site
    L'URI du site qui est la cible de l'instruction, au format http[s]://<hostname>[:<port>], où <hostname> est complet et <port> doit être omis si vous utilisez le port 80 pour HTTP ou le port 443 pour HTTPS. Une cible de site Web ne peut être qu'un domaine racine. Vous ne pouvez pas vous limiter à un sous-répertoire spécifique. Tous les répertoires sous ce répertoire correspondent. Les sous-domaines ne doivent pas être considérés comme identiques : si le fichier d'instruction est hébergé sur www.example.com, www.puppies.example.com ne doit pas être considéré comme une correspondance. Pour obtenir des règles et des exemples de mise en correspondance des cibles de sites Web, consultez la documentation sur les cibles. Exemple:http://www.example.com
  • "target": {
      "namespace": "android_app",
      "package_name": "fully_qualified_package_name",
      "sha256_cert_fingerprints": ["cert_fingerprint"]
    }
    espace de noms
    Doit être android_app pour les applications Android.
    package_name
    Nom complet du package de l'application à laquelle cette instruction s'applique. Example : com.google.android.apps.maps
    sha256_cert_fingerprints
    Empreinte SHA265 en majuscules du certificat de l'application à laquelle cette instruction s'applique. Vous pouvez le calculer à l'aide de openssl ou de Java keytool, comme illustré ci-dessous :
    • openssl x509 -in $CERTFILE -noout -fingerprint -sha256
    • keytool -printcert -file $CERTFILE | grep SHA256
    Exemple:["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"].

    Si vous utilisez la signature d'application Play pour votre application, l'empreinte de certificat produite en exécutant keytool ou openssl localement ne correspond généralement pas à celle qui se trouve sur les appareils des utilisateurs. Vous pouvez vérifier si vous utilisez la signature d'application Play pour votre application dans votre Compte de développeur Play Console moins de Release > Setup > App Integrity ; si oui, vous trouverez également l'extrait JSON Digital Asset Links correspondant à votre application sur le .

Exemple de liste de déclarations

Voici un exemple de liste d'énoncés de site Web et d'applications: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Adaptation à des dizaines d'instructions ou plus

Dans certains cas, le compte principal peut vouloir formuler de nombreuses affirmations différentes. sur les différents objectifs, ou il peut être nécessaire de faire des déclarations comptes principaux vers le même ensemble de cibles. Par exemple, un site Web peut être disponible sur de nombreux domaines de premier niveau par pays, et tous peuvent vouloir faire une déclaration sur la même application mobile.

Dans ce cas, il peut être utile d'inclure des instructions. Ce mécanisme vous permet de configurer des pointeurs provenant de nombreux comptes principaux différents vers un emplacement central, qui définit les instructions pour tous les comptes principaux.

Par exemple, vous pouvez décider que l'emplacement central doit être "https://example.com/includedstatements.json". Ce fichier peut être configuré pour contenir le même contenu que dans les exemples ci-dessus.

Pour configurer un pointeur d'un site Web vers le fichier d'inclusion : Remplacez "https://example.com/.well-known/assetlinks.json" par:

[{
  "include": "https://example.com/includedstatements.json"
}]

Pour configurer un pointeur d'une application Android vers l'élément "include" , remplacez "res/values/strings.xml" par:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

Plus d'infos

Pour en savoir plus sur le format de la liste d'énoncés et les concepts sous-jacents, consultez notre document de spécifications.