Memulai

Ringkasan

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

Berikut adalah beberapa kemungkinan penggunaan Digital Asset Links:

  • Situs A menyatakan bahwa link ke situsnya harus dibuka di aplikasi yang ditentukan di perangkat seluler, jika aplikasi tersebut diinstal.
  • Situs A menyatakan bahwa situs tersebut dapat membagikan kredensial pengguna Chrome-nya ke situs B sehingga pengguna tidak perlu login ke situs B jika sudah login ke situs A.
  • Aplikasi A menyatakan bahwa aplikasi tersebut dapat membagikan setelan perangkat, seperti lokasi, ke situs B.

Istilah utama

  • Prinsipal: Prinsipal adalah aplikasi atau situs yang membuat pernyataan. Di Digital Asset Links, pokoknya selalu berupa aplikasi atau situs yang menghosting daftar pernyataan.
  • Daftar pernyataan: Pernyataan terdapat dalam daftar pernyataan yang berisi satu atau beberapa pernyataan. Daftar pernyataan adalah teks biasa dan dapat diakses secara publik, di lokasi yang dikontrol oleh prinsipal dan sulit dipalsukan atau dirusak. File ini dapat berupa file mandiri, atau bagian dari item lain yang lebih besar. Misalnya, di situs, ini adalah seluruh file; di aplikasi Android, ini adalah bagian dalam manifes aplikasi. Pernyataan dapat dilihat dan diverifikasi oleh siapa saja, menggunakan metode non-hak milik. Lihat dokumentasi daftar pernyataan untuk mengetahui informasi selengkapnya.
  • Pernyataan: Pernyataan adalah konstruksi JSON yang terstruktur dengan ketat yang terdiri dari relasi (apa yang dikatakan pernyataan untuk dilakukan, misalnya: Aktifkan berbagi kredensial) dan target (situs atau aplikasi yang relasinya berlaku). Oleh karena itu, setiap pernyataan seperti kalimat, di mana principal mengatakan relation tentang target.
  • Konsumen pernyataan: Konsumen pernyataan meminta daftar pernyataan dari akun utama, memeriksa keberadaan pernyataan terhadap akun utama tertentu, dan jika ada, dapat melakukan tindakan yang ditentukan. Lihat dokumentasi penggunaan pernyataan untuk mengetahui informasi selengkapnya.

Contoh penggunaan cepat

Berikut adalah contoh yang sangat disederhanakan tentang cara situs www.example.com dapat menggunakan Digital Asset Links untuk menentukan bahwa setiap link ke URL di situs tersebut harus terbuka di aplikasi yang ditentukan, 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 kepada aplikasi Android-nya 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 file contoh kita 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 skema, host, dan pola jalur URL yang ingin ditangani: dalam hal ini, https://www.example.com. Filter intent mencakup atribut khusus android:autoVerify, yang baru di 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 memeriksa apakah file tersebut menyertakan pernyataan yang memberikan penanganan link ke aplikasi, dan memverifikasi aplikasi berdasarkan pernyataan dengan hash sertifikat. Jika semuanya sudah diperiksa, 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 tempat lain. Android meneruskan intent ke aplikasi example.com.
  5. Aplikasi example.com menerima intent dan memilih untuk menanganinya, dengan membuka halaman anak di aplikasi. Jika karena alasan tertentu aplikasi menolak untuk menangani link, atau jika aplikasi tidak ada di perangkat, maka link akan dikirim ke penangan intent default berikutnya yang cocok dengan pola intent tersebut (biasanya browser).

Pertimbangan dan batasan penting:

  • Protokol tidak mengautentikasi prinsipal yang membuat pernyataan, tetapi pernyataan tersebut berada di lokasi tertentu yang sangat terkait dengan prinsipal, dan di bawah kendali prinsipal.
  • Protokol tidak mengautentikasi target pernyataan, tetapi menyediakan cara bagi pemanggil untuk mengautentikasi target (misalnya, pernyataan mengidentifikasi target aplikasi seluler berdasarkan hash sertifikat dan nama paket).
  • Protokol tidak secara native melakukan tindakan pernyataan apa pun; melainkan, protokol memungkinkan kemampuan untuk mengekspos pernyataan, yang harus divalidasi oleh aplikasi yang menggunakan, lalu memutuskan apakah dan bagaimana cara menindaklanjutinya. Android M secara native melakukan langkah-langkah ini untuk Anda; misalnya, jika situs mendelegasikan penanganan link ke aplikasi tertentu, Android memeriksa dan memverifikasi pernyataan, memverifikasi aplikasi target, lalu menawarkan opsi kepada aplikasi untuk menangani link yang diberikan.
  • Protokol ini 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 B dapat memeriksa situs A untuk mengetahui pernyataan yang memberikan izin kepada situs C, dan memutuskan untuk menerapkannya.

Langkah berikutnya

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