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 Beziehungdelegate_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.