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:
-
Websiteziel "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
-
Android-App-Ziel "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 Javakeytool
wie hier gezeigt berechnen: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"]
.Wenn Sie die Play App-Signatur verwenden für Ihre App, dann der Zertifikat-Fingerabdruck, der durch Ausführen von
keytool
generiert wird oderopenssl
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.