Syntax der Anweisungsliste

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

Speicherort der Erklärungsliste

Informationen dazu, wo diese Liste gespeichert werden sollte, finden Sie unter Erklärung erstellen.

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 Anweisungen können in beliebiger Reihenfolge stehen. So sieht die allgemeine Syntax aus:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
relation
Ein Array mit einem oder mehreren Strings, die die Beziehung zum Ziel beschreiben. Liste der definierten Beziehungsstrings Beispiel:delegate_permission/common.handle_all_urls
Ziel
Das Ziel-Asset, auf das sich diese Aussage bezieht. Verfügbare Zieltypen:
relation_extensions (optional)

Sie können einer Erklärung ein optionales relation_extensions-Feld hinzufügen, um weitere Informationen zu den Berechtigungen und Verknüpfungen anzugeben, die Sie gewähren möchten. Dieses Feld sollte ein Objekt sein, in dem jeder Schlüssel ein Beziehungsstring ist und der Wert ein Objekt mit den Erweiterungen für diese Beziehung. Clients, die diese Erklärungen anfordern, müssen aktualisiert werden, damit diese Felder berücksichtigt werden.

relation_extensions für die Beziehung delegate_permission/common.handle_all_urls könnte beispielsweise so aussehen:

  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.app",
      "sha256_cert_fingerprints": ["..."]
    },
    "relation_extensions": {
      "delegate_permission/common.handle_all_urls": {...}
    }
  }
  

Die DAL API unterstützt die Rückgabe von „relation_extensions“ in API-Aufrufen, wenn der Parameter return_relation_extensions=true in der Anfrage festgelegt ist.

Beispielliste mit Aussagen

Hier ist ein Beispiel für eine Website-Anweisungsliste, die Anweisungen zu Websites und Apps enthält: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Auf Dutzende von Kontoauszügen oder mehr skalieren

In einigen Fällen möchte ein Rechtssubjekt möglicherweise viele verschiedene Erklärungen zu verschiedenen Zielen abgeben oder es ist erforderlich, Erklärungen von verschiedenen Rechtssubjekten an dieselben Ziele zu richten. Eine Website ist beispielsweise möglicherweise in vielen verschiedenen länderspezifischen Top-Level-Domains verfügbar und alle möchten eine Aussage zur selben mobilen App machen.

In diesen Fällen können Include-Anweisungen hilfreich sein. Mit diesem Mechanismus können Sie Zeiger von vielen verschiedenen Principals auf einen zentralen Ort einrichten, an dem Anweisungen für alle Principals definiert werden.

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

Um einen Verweis von einer Website auf die Include-Datei einzurichten, ändern Sie `https://example.com/.well-known/assetlinks.json` in:

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

Wenn Sie einen Zeiger von einer Android-App zur Include-Datei einrichten möchten, ändern Sie `res/values/strings.xml` so:

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

Weitere Informationen

Eine detailliertere Erläuterung des Anweisungslistenformats und der zugrunde liegenden Konzepte finden Sie in unserem Spezifikationsdokument.