Erste Schritte

Übersicht

Über das Protokoll und die API für digitale Assets können Apps oder Websites öffentliche, überprüfbare Anweisungen zu anderen Apps oder Websites abgeben. Beispielsweise kann eine Website deklarieren, dass sie mit einer bestimmten Android-App verknüpft ist, oder dass sie die Anmeldedaten eines anderen Nutzers für eine andere Website freigeben möchte.

Hier sind einige Verwendungsmöglichkeiten für Links zu digitalen Assets:

  • Website A gibt an, dass Links zu ihrer Website in einer dafür vorgesehenen App auf Mobilgeräten geöffnet werden sollen, sofern sie installiert ist.
  • Website A gibt an, dass sie ihre Chrome-Nutzeranmeldedaten für Website B freigeben darf, sodass der Nutzer sich nicht auf Website B anmelden muss, wenn er auf Website A angemeldet ist.
  • In App A wird festgelegt, dass Geräteeinstellungen wie der Standort an Website B weitergegeben werden dürfen.

Wichtige Begriffe

  • Hauptkonto:Das Hauptkonto ist die App oder Website, von der die Aussage stammt. In Digital Asset Links ist das Hauptkonto immer die App oder Website, die die Anweisungsliste hostet.
  • Anweisungsliste: Anweisungen sind in einer Anweisungsliste enthalten, die eine oder mehrere Anweisungen enthält. Eine Anweisungsliste ist Klartext und öffentlich zugänglich an einem Ort, der vom Hauptkonto kontrolliert wird und nur schwer zu manipulieren oder zu manipulieren ist. Es kann sich um eine frei stehende Datei oder einen Abschnitt eines anderen, größeren Elements handeln. Auf einer Website ist dies beispielsweise eine vollständige Datei. In einer Android-App ist es ein Abschnitt im App-Manifest. Kontoauszüge können von jedem Nutzer auf nicht urheberrechtlich geschützte Weise angesehen und überprüft werden. Weitere Informationen
  • Anweisung: Eine Anweisung ist ein eng strukturiertes JSON-Konstrukt, das aus einer Beziehung (z. B. Aktivierung von Freigabeanmeldedaten) und einem Ziel (der Website oder App, für die die Beziehung gilt) besteht. Daher ist jede Anweisung wie ein Satz, wobei Kapital Relation zu Ziel sagt.
  • Nutzer mit Kontoauszug: Ein Nutzer, der eine Anweisung ausfüllt, fordert eine Liste mit Kontoauszügen von einem Hauptkonto an. Es wird geprüft, ob eine Anweisung für ein bestimmtes Hauptkonto vorhanden ist. Ist dies der Fall, kann die angegebene Aktion ausgeführt werden. Weitere Informationen finden Sie in der Dokumentation zur Dokumentation.

Beispiel für eine schnelle Nutzung

Hier siehst du ein sehr vereinfachtes Beispiel dafür, wie die Website www.beispiel.de mit Digital Asset Links festlegen kann, dass alle Links zu URLs auf dieser Website in einer bestimmten App statt im Browser geöffnet werden sollen:

  1. Auf der Website www.beispiel.de wird eine Anweisungsliste unter https://www.beispiel.de/.well-known/assetlinks.json veröffentlicht. Das ist der offizielle Name und Standort für eine Anweisungsliste auf einer Website. Anweisungslisten an anderen Orten oder mit einem anderen Namen sind für diese Website nicht gültig. In unserem Beispiel besteht die Anweisungsliste aus einer Anweisung und gewährt ihrer Android-App die Berechtigung, Links auf der zugehörigen 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 eine Reihe von Anweisungen innerhalb der [ ]-Markierungen, unsere Beispieldatei enthält jedoch nur eine Anweisung. sha256_cert_fingerprints ist der SHA256-Fingerabdruck 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 der URLs angibt, die er verarbeiten möchte: in diesem Fall https://www.example.com. Der Intent-Filter enthält das spezielle Attribut android:autoVerify, das für Android M neu ist. Damit wird angegeben, dass Android die Anweisung auf der im Intent-Filter beschriebenen Website prü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. Ist dies der Fall, prüft Android, ob diese Datei eine Anweisung enthält, über die der App eine Verknüpfung verarbeitet werden kann. Die App wird dann anhand des Zertifikats-Hashwerts mit der Anweisung abgeglichen. Wenn alles auscheckt, 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.example.com/welpen. Dieser Link kann sich an beliebiger Stelle befinden: in einem Browser, in einem Vorschlag der Google Search Appliance oder an einer anderen Stelle. Android leitet den Intent an die beispiel.de-App weiter.
  5. Die beispiel.de-App empfängt den Intent und öffnet die Seite mit den Welpen in der App. Wenn die App den Link nicht verarbeiten konnte oder die App nicht auf dem Gerät vorhanden war, wurde der Link an den nächsten Standard-Intent-Handler gesendet, der diesem Intent-Muster entspricht (oft der Browser).

Wichtige Hinweise und Einschränkungen:

  • Das Protokoll authentifiziert das Hauptkonto, das die Anweisung erstellt, nicht, sondern befindet sich an einer bestimmten Stelle, die dem Hauptkonto zugeordnet ist und von ihm kontrolliert wird.
  • Mit dem Protokoll wird das Anweisungsziel nicht authentifiziert. Es bietet dem Betrachter aber die Möglichkeit, das Ziel zu authentifizieren, z. B. werden Ziele in mobilen Apps anhand des Zertifikats-Hashs und des Paketnamens identifiziert.
  • Mit dem Protokoll werden keine Anweisungsaktionen nativ ausgeführt. Es bietet vielmehr die Möglichkeit, Anweisungen bereitzustellen, die von einer verarbeitenden Anwendung validiert und dann entschieden werden müssen, ob und wie damit verfahren werden soll. Android M führt diese Schritte nativ aus. Wenn beispielsweise eine Website die Linkverarbeitung an eine bestimmte App delegiert, prüft und verifiziert Android die Anweisung, überprüft die Ziel-App und bietet der App dann die Möglichkeit, den angegebenen Link zu verarbeiten.
  • Das Protokoll erlaubt keine Aussagen über zwei Dritte: Das heißt, Website A kann eine Aussage über Website B treffen, aber Website A kann keine Aussagen über die Beziehung von Website B zu Website C treffen. Wenn Website B jedoch Website A vertraut, kann sie Website A auf eine Aussage überprüfen, die Website C die Berechtigung erteilt, und sie dann implementieren.

Nächste Schritte

  1. Prüfen Sie, ob eine explizite Dokumentation für Ihren Anwendungsfall vorliegt.
  2. Weitere Informationen