Syntax der Anweisungsliste

Eine Anweisungsliste ist eine JSON-codierte Datei oder ein Snippet an einem bekannten Speicherort.

Speicherort der Liste der Erklärungen

Weitere Informationen dazu, wo diese Liste gespeichert werden sollte, finden Sie unter Erstellen einer Erklärungsliste.

Syntax

Die Erklärungsliste oder das Snippet besteht aus einem JSON-Array mit einer oder mehreren Website- oder App-Erklärungen als JSON-Objekte. Diese Aussagen können in beliebiger Reihenfolge erfolgen. Hier ist die allgemeine Syntax:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
Beziehung
Ein Array mit einem oder mehreren Strings, die die Beziehung beschreiben, die für das Ziel deklariert wird. Liste der Strings für definierte Beziehungen Beispiel: delegate_permission/common.handle_all_urls
Ziel
Das Ziel-Asset, auf das sich diese Erklärung bezieht. Verfügbare Zieltypen:
  • "target": {
      "namespace": "web",
      "site": "site_root_url"
    }
    Namespace
    Muss für Websites web sein.
    Website
    URI der Website, die das Ziel der Anweisung ist, im Format http[s]://<hostname>[:<port>], wobei <hostname> vollständig qualifiziert ist und <port> bei Verwendung von Port 80 für HTTP oder Port 443 für HTTPS weggelassen werden muss. Ein Websiteziel kann nur eine Stammdomain sein. können Sie dies nicht auf ein bestimmtes Unterverzeichnis beschränken. werden alle Verzeichnisse unter diesem Stamm übereinstimmen. Subdomains sollten nicht als übereinstimmend betrachtet werden. Wenn die Erklärungsdatei auf www.beispiel.de gehostet wird, sollte www.welpen.beispiel.de nicht als übereinstimmend betrachtet werden. Regeln und Beispiele für den Abgleich von Websitezielen finden Sie in der Dokumentation zu den Zielen. Beispiel:http://www.example.com
  • "target": {
      "namespace": "android_app",
      "package_name": "fully_qualified_package_name",
      "sha256_cert_fingerprints": ["cert_fingerprint"]
    }
    Namespace
    Muss android_app für Android-Apps sein.
    package_name
    Der voll qualifizierte Paketname der App, auf die sich diese Erklärung bezieht. Beispiel: com.google.android.apps.maps
    sha256_cert_fingerprints
    Der SHA265-Fingerabdruck in Großbuchstaben des Zertifikats für die App, die für die der Bericht gilt. Sie können dies mit openssl oder Java keytool wie hier gezeigt berechnen:
    • openssl x509 -in $CERTFILE -noout -fingerprint -sha256
    • keytool -printcert -file $CERTFILE | grep SHA256
    Beispiel:["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"].

    Wenn Sie die Play App-Signatur verwenden für Ihre App, dann der Zertifikat-Fingerabdruck, der durch Ausführen von keytool generiert wird oder openssl lokal entspricht in der Regel nicht dem Wert auf des Nutzers Geräte. Sie können überprüfen, ob Sie die Play App-Signatur für Ihre App verwenden, in Ihrem Play Console-Entwicklerkonto unter Release > Setup > App Integrity; falls ja, Dort finden Sie auch das richtige Digital Asset Links-JSON-Snippet für Ihre App auf derselben Seite.

Beispielanweisungsliste

Hier ist ein Beispiel für eine Liste mit Aussagen zu Websites und Apps: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Skalierung auf Dutzende von Aussagen oder mehr

In einigen Fällen möchte ein Prinzipal viele verschiedene Erklärungen zu verschiedenen Zielen abgeben. Es kann auch vorkommen, dass Erklärungen von verschiedenen Prinzipalen für dieselben Ziele abgegeben werden müssen. Zum Beispiel kann eine Website auf vielen verschiedenen Top-Level-Domains pro Land verfügbar sein. können Sie eine Aussage zu derselben mobilen App treffen.

In diesen Fällen können Einschlussaussagen hilfreich sein. Mit diesem Mechanismus können Sie Cursor von vielen verschiedenen Hauptkonten an einem zentralen Ort, an dem Anweisungen für alle Hauptkonten definiert sind.

Sie können beispielsweise festlegen, dass der zentrale Speicherort https://beispiel.de/includedstatements.json sein soll. Diese Datei kann so konfiguriert werden, dass sie denselben Inhalt wie in den Beispielen oben enthält.

So richten Sie einen Zeiger von einer Website auf die Einschlussdatei ein: Ändern Sie „https://beispiel.de/.well-known/assetlinks.json“ in:

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

So richten Sie einen Zeiger von einer Android-App zum Einschließen ein: ändern Sie „res/values/strings.xml“ in:

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

Weitere Informationen

Eine ausführlichere Erläuterung des Formates für Erklärungslisten und der zugrunde liegenden Konzepte finden Sie in unserem Spezifikationsdokument.