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 :
-
Site Web cible "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
-
Cible de l'application Android "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 Javakeytool
, comme illustré ci-dessous :openssl x509 -in $CERTFILE -noout -fingerprint -sha256
keytool -printcert -file $CERTFILE | grep SHA256
["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
ouopenssl
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.