Memulai

Ringkasan

Protokol dan API Digital Asset Links memungkinkan aplikasi atau situs membuat pernyataan yang dapat diverifikasi dan publik tentang aplikasi atau situs lain. Misalnya, situs dapat mendeklarasikan bahwa situs tersebut terkait dengan aplikasi Android tertentu, atau dapat mendeklarasikan bahwa situs tersebut ingin membagikan kredensial pengguna ke situs lain.

Berikut ini beberapa kemungkinan penggunaan Digital Asset Links:

  • Situs A mendeklarasikan bahwa link ke situsnya akan terbuka pada aplikasi yang ditentukan di perangkat seluler, jika aplikasi tersebut sudah terinstal.
  • Situs A mendeklarasikan bahwa kredensial pengguna Chrome-nya dapat dibagikan ke situs B sehingga pengguna tersebut tidak perlu login ke situs B jika login ke situs A.
  • Aplikasi A mendeklarasikan bahwa aplikasi tersebut dapat berbagi setelan perangkat, seperti lokasi, dengan situs B.

Istilah utama

  • Prinsip: Akun utama adalah aplikasi atau situs yang membuat pernyataan. Dalam Digital Asset Links, akun utama selalu aplikasi atau situs yang menghosting daftar pernyataan.
  • Daftar pernyataan: Pernyataan dimuat dalam daftar pernyataan yang berisi satu atau beberapa pernyataan. Daftar pernyataan adalah cleartext dan dapat diakses secara publik, di lokasi yang dikontrol oleh utama dan sulit untuk di-spoofing atau dirusak. Hal ini dapat berupa file yang berdiri sendiri, atau bagian dari item lain yang lebih besar. Misalnya, di situs, ini adalah seluruh file; di aplikasi Android, ini adalah bagian dalam manifes aplikasi. Laporan mutasi dapat dilihat dan diverifikasi oleh siapa saja menggunakan metode non-pemilik. Lihat dokumentasi daftar pernyataan untuk informasi selengkapnya.
  • Pernyataan: Pernyataan adalah konstruksi JSON yang terstruktur erat yang terdiri dari hubungan (apa yang dikatakan pernyataan tersebut, misalnya: Mengaktifkan kredensial berbagi) dan target (situs atau aplikasi yang menerapkan hubungan). Oleh karena itu, setiap pernyataan menyerupai kalimat, dengan principal mengatakan relation tentang target.
  • Konsumen pernyataan: Konsumen pernyataan meminta daftar pernyataan dari akun utama, memeriksa keberadaan pernyataan terhadap prinsip utama tertentu, dan jika ada, dapat melakukan tindakan yang ditentukan. Lihat pernyataan yang berisi dokumentasi untuk mengetahui informasi selengkapnya.

Contoh penggunaan cepat

Berikut adalah contoh yang sangat sederhana tentang bagaimana situs www.example.com dapat menggunakan Digital Asset Links untuk menentukan bahwa setiap link ke URL di situs tersebut harus dibuka di aplikasi khusus, bukan di browser:

  1. Situs www.example.com memublikasikan daftar pernyataan di https://www.example.com/.well-known/assetlinks.json. Ini adalah nama dan lokasi resmi untuk daftar pernyataan di situs; daftar pernyataan di lokasi lain, atau dengan nama lain, tidak valid untuk situs ini. Dalam contoh kami, daftar pernyataan terdiri dari satu pernyataan, yang memberikan izin ke aplikasi Android untuk membuka link di situsnya:
    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target" : { "namespace": "android_app", "package_name": "com.example.app",
                   "sha256_cert_fingerprints": ["hash_of_app_certificate"] }
    }]
    Daftar pernyataan mendukung array pernyataan dalam tanda [ ], tetapi contoh file kami hanya berisi satu pernyataan. sha256_cert_fingerprints adalah sidik jari SHA256 dari sertifikat penandatanganan aplikasi Anda. Temukan detail selengkapnya di dokumentasi Link Aplikasi Android.
  2. Aplikasi Android yang tercantum dalam pernyataan di atas memiliki filter intent yang menentukan pola, host, dan pola jalur URL yang ingin ditangani: dalam hal ini, https://www.example.com. Filter intent menyertakan atribut khusus android:autoVerify, baru untuk Android M, yang menunjukkan bahwa Android harus memverifikasi pernyataan di situs yang dijelaskan dalam filter intent saat aplikasi diinstal.
  3. Pengguna menginstal aplikasi. Android melihat filter intent dengan atribut autoVerify dan memeriksa keberadaan daftar pernyataan di situs yang ditentukan; jika ada, Android akan memeriksa apakah file tersebut menyertakan pernyataan yang memberikan penanganan link ke aplikasi dan memverifikasi aplikasi terhadap pernyataan dengan hash sertifikat. Jika semuanya selesai, Android akan meneruskan intent https://www.example.com ke aplikasi example.com.
  4. Pengguna mengklik link ke https://www.example.com/puppies di perangkatnya. Link ini dapat berada di mana saja: di browser, di saran Google Search Appliance, atau di mana saja. Android meneruskan intent ke aplikasi example.com.
  5. Aplikasi example.com menerima intent dan memilih untuk menanganinya, membuka halaman anak di aplikasi. Jika karena alasan tertentu aplikasi menolak menangani link, atau jika aplikasi tidak berada di perangkat, link akan dikirim ke pengendali intent default berikutnya yang cocok dengan pola intent tersebut (seringnya browser).

Batasan dan pertimbangan penting:

  • Protokol tidak mengautentikasi entity utama yang membuat pernyataan, tetapi pernyataan ini terletak di lokasi tertentu yang sangat terkait dengan entity utama, dan di bawah kontrol utama.
  • Protokol tidak mengautentikasi target pernyataan, tetapi menyediakan cara bagi pemanggil untuk mengautentikasi target (misalnya, pernyataan mengidentifikasi target aplikasi seluler dengan hash sertifikat dan nama paket).
  • Protokol ini tidak melakukan tindakan pernyataan apa pun secara native; tetapi, protokol tersebut memungkinkan kemampuan untuk mengekspos pernyataan, yang harus divalidasi oleh aplikasi pengguna, lalu menentukan apakah dan cara menindaklanjutinya. Android M secara native melakukan langkah-langkah ini untuk Anda; misalnya, jika situs mendelegasikan penanganan link ke aplikasi tertentu, Android akan memeriksa dan memverifikasi pernyataan, memverifikasi aplikasi target, lalu menawarkan aplikasi opsi untuk menangani link yang diberikan.
  • Protokol tidak memungkinkan pembuatan pernyataan tentang dua pihak ketiga: yaitu, situs A dapat membuat pernyataan tentang situs B, tetapi situs A tidak dapat membuat pernyataan tentang hubungan situs B dengan situs C. Namun, jika situs B memercayai situs A, situs dapat memeriksa pernyataan A yang memberikan izin ke situs C, dan memutuskan untuk menerapkannya.

Langkah berikutnya

  1. Lihat apakah ada dokumentasi eksplisit untuk kasus penggunaan Anda.
  2. Pelajari cara membuat laporan.