Informationen für Einsteiger

Übersicht

Das Digital Asset Links-Protokoll und die API ermöglichen es einer App oder Website, öffentliche, überprüfbare Aussagen über andere Apps oder Websites zu machen. So kann eine Website beispielsweise deklarieren, dass sie mit einer bestimmten Android-App verknüpft ist, oder dass sie Nutzeranmeldedaten mit einer anderen Website teilen möchte.

Hier sind einige mögliche Anwendungsfälle für Digital Asset Links:

  • Website A gibt an, dass Links zu ihrer Website auf Mobilgeräten in einer bestimmten App geöffnet werden sollen, sofern die App installiert ist.
  • Website A deklariert, dass sie ihre Chrome-Anmeldedaten mit Website B teilen kann, sodass sich der Nutzer nicht bei Website B anmelden muss, wenn er bei Website A angemeldet ist.
  • App A gibt an, dass sie Geräteeinstellungen wie den Standort mit Website B teilen kann.

Wichtige Begriffe

  • Hauptkonto:Das Hauptkonto ist die App oder Website, die die Erklärung abgibt. In Digital Asset Links ist das Prinzipal immer die App oder Website, auf der die Anweisungsliste gehostet wird.
  • Anweisungsliste: Anweisungen sind in einer Anweisungsliste enthalten, die eine oder mehrere Anweisungen enthält. Eine Erklärungsliste ist im Klartext und öffentlich zugänglich an einem Ort, der vom Rechtssubjekt kontrolliert wird und an dem es schwierig ist, sie zu fälschen oder zu manipulieren. Es kann sich um eine eigenständige Datei oder einen Abschnitt eines anderen, größeren Elements handeln. Auf einer Website ist es beispielsweise eine ganze Datei, in einer Android-App ein Abschnitt im App-Manifest. Aussagen können von jedem mit nicht proprietären Methoden eingesehen und überprüft werden. Weitere Informationen finden Sie in der Dokumentation zur Anweisungsliste.
  • Erklärung : Eine Erklärung ist ein streng strukturiertes JSON-Konstrukt, das aus einer Beziehung (was in der Erklärung gesagt wird, z. B. „Anmeldedaten freigeben“) und einem Ziel (die Website oder App, auf die sich die Beziehung bezieht) besteht. Jede Aussage ist also wie ein Satz, in dem das Hauptkonto Beziehung zum Ziel angibt.
  • Aussagenempfänger:Ein Aussagenempfänger fordert eine Aussagenliste von einem Prinzipal an, prüft, ob eine Aussage für einen bestimmten Prinzipal vorhanden ist, und kann, falls dies der Fall ist, die angegebene Aktion ausführen. Weitere Informationen finden Sie in der Dokumentation zur Anweisung.

Kurzes Nutzungsbeispiel

Hier ein stark vereinfachtes Beispiel dafür, wie die Website www.beispiel.de Digital Asset Links verwenden könnte, um festzulegen, dass alle Links zu URLs auf dieser Website in einer bestimmten App und nicht im Browser geöffnet werden sollen:

  1. Die Website www.beispiel.de veröffentlicht eine Anweisungsliste unter https://www.beispiel.de/.well-known/assetlinks.json. Dies ist der offizielle Name und Speicherort für eine Erklärungsliste auf einer Website. Erklärungslisten an anderen Speicherorten oder mit anderen Namen sind für diese Website nicht gültig. In unserem Beispiel besteht die Anweisungsliste aus einer Anweisung, die der Android-App die Berechtigung erteilt, Links auf der Website zu öffnen:
    [{
        "relation": ["delegate_permission/common.handle_all_urls"],
        "target" : { "namespace": "android_app", "package_name": "com.example.app",
                     "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
      }]
    Eine Anweisungsliste unterstützt ein Array von Anweisungen innerhalb der [ ]-Markierungen, aber unsere Beispieldatei enthält nur eine Anweisung. sha256_cert_fingerprints sind die SHA256-Fingerabdrücke des Signaturzertifikats Ihrer App. Weitere Informationen finden Sie in der Dokumentation zu Android-App-Links.
  2. Die oben aufgeführte Android-App hat einen Intent-Filter, der das Schema, den Host und das Pfadmuster von URLs angibt, die sie verarbeiten möchte. In diesem Fall ist das https://www.beispiel.de. Der Intent-Filter enthält ein spezielles Attribut android:autoVerify, das in Android M neu ist. Es gibt an, dass Android die Anweisung auf der im Intent-Filter beschriebenen Website überprüfen soll, wenn die App installiert wird.
  3. Ein Nutzer installiert die App. Android erkennt den Intent-Filter mit dem Attribut autoVerify und prüft, ob die Anweisungsliste auf der angegebenen Website vorhanden ist. Wenn ja, prüft Android, ob diese Datei eine Anweisung enthält, die der App die Verarbeitung von Links erlaubt, und vergleicht die App anhand des Zertifikathashs mit der Anweisung. Wenn alles in Ordnung ist, leitet Android alle https://www.beispiel.de-Intents an die beispiel.de-App weiter.
  4. Der Nutzer klickt auf seinem Gerät auf einen Link zu https://www.beispiel.de/welpen. Dieser Link kann sich überall befinden: in einem Browser, in einem Vorschlag der Google Search Appliance oder an einem anderen Ort. Android leitet den Intent an die example.com-App weiter.
  5. Die example.com-App empfängt den Intent und entscheidet sich, ihn zu verarbeiten. Die Seite „Welpen“ wird in der App geöffnet. Wenn die App aus irgendeinem Grund die Verarbeitung des Links abgelehnt hätte oder wenn die App nicht auf dem Gerät vorhanden wäre, wäre der Link an den nächsten Standard-Intent-Handler gesendet worden, der dem Intent-Muster entspricht (oft der Browser).

Wichtige Hinweise und Einschränkungen:

  • Das Protokoll authentifiziert nicht das Hauptkonto, das die Aussage macht. Die Aussage befindet sich jedoch an einem bestimmten Ort, der stark mit dem Hauptkonto verknüpft ist und unter der Kontrolle des Hauptkontos steht.
  • Das Protokoll authentifiziert das Ziel der Anweisung nicht, bietet dem Aufrufer aber die Möglichkeit, das Ziel zu authentifizieren (z. B. werden mobile App-Ziele in einer Anweisung anhand des Zertifikathashs und des Paketnamens identifiziert).
  • Das Protokoll führt keine Anweisungsvorgänge nativ aus, sondern ermöglicht es, Anweisungen zu präsentieren, die von einer verarbeitenden Anwendung validiert werden müssen. Anschließend muss entschieden werden, ob und wie darauf reagiert werden soll. Unter Android M werden diese Schritte automatisch ausgeführt. Wenn eine Website beispielsweise die Linkverarbeitung an eine bestimmte App delegiert, prüft und bestätigt Android die Anweisung, bestätigt die Ziel-App und bietet der App dann die Möglichkeit, den angegebenen Link zu verarbeiten.
  • Das Protokoll ermöglicht keine Aussagen über zwei Drittanbieter: Website A kann eine Aussage über Website B treffen, aber Website A kann keine Aussage über die Beziehung von Website B zu Website C treffen. Wenn Website B jedoch Website A vertraut, kann sie auf Website A nach einer Anweisung suchen, die Website C die Berechtigung erteilt, und diese Anweisung implementieren.

Nächste Schritte

  1. Prüfen Sie, ob es eine explizite Dokumentation für Ihren Anwendungsfall gibt.
  2. Informationen zum Erstellen einer Erklärung