Memulai
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
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 mendeklarasikan bahwa situs tersebut terkait dengan aplikasi Android tertentu, atau dapat mendeklarasikan
bahwa situs tersebut ingin membagikan kredensial pengguna dengan situs lain.
Berikut ini beberapa kemungkinan penggunaan Digital Asset Links:
- Situs A mendeklarasikan bahwa link ke situsnya harus terbuka di aplikasi yang ditetapkan di
perangkat seluler, jika aplikasi telah diinstal.
- Situs A mendeklarasikan bahwa situs tersebut dapat membagikan kredensial pengguna Chrome-nya dengan situs
B sehingga pengguna tidak perlu login ke situs B jika login ke situs A.
- Aplikasi A mendeklarasikan bahwa aplikasi dapat membagikan setelan perangkat, seperti lokasi, ke situs B.
Istilah utama
- Principal: Principal adalah aplikasi atau situs yang membuat pernyataan. Di Digital Asset Links, akun utama selalu merupakan aplikasi atau situs yang menghosting daftar pernyataan.
- Daftar pernyataan: Pernyataan terdapat dalam daftar pernyataan yang berisi
satu atau beberapa pernyataan. Daftar pernyataan bersifat cleartext dan dapat diakses oleh publik, di lokasi yang dikontrol oleh akun utama dan sulit untuk dipalsukan atau diubah.
Item ini dapat berupa file yang berdiri sendiri, atau bagian dari item lain yang lebih besar. Misalnya, pada situs web, itu adalah file secara keseluruhan; dalam aplikasi Android, itu adalah bagian dalam manifes aplikasi.
Pernyataan dapat dilihat dan diverifikasi oleh siapa saja, menggunakan metode non-eksklusif. Lihat dokumentasi daftar pernyataan untuk informasi selengkapnya.
- Pernyataan: Pernyataan adalah konstruksi JSON yang terstruktur ketat yang terdiri dari relation (apa yang dinyatakan oleh pernyataan tersebut, misalnya: Mengaktifkan kredensial berbagi) dan relation (situs atau aplikasi tempat relasi tersebut berlaku). Oleh karena itu, tiap pernyataan seperti kalimat, yang mana principal menyatakan 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 pernyataan ringkasan untuk informasi selengkapnya.
Contoh penggunaan cepat
Berikut adalah contoh yang sangat sederhana 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 ditetapkan, bukan di browser:
- Situs www.example.com memublikasikan daftar pernyataan di
https://www.example.com/.well-known/assetlinks.json. Ini adalah nama
resmi dan lokasi untuk daftar laporan di situs; daftar pernyataan di
lokasi lain mana pun, atau dengan nama lainnya, tidak valid untuk situs ini. Dalam
contoh ini, daftar pernyataan terdiri dari satu pernyataan, yang memberi
aplikasi Android-nya izin 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 hanya berisi satu pernyataan.
sha256_cert_fingerprints
adalah sidik jari SHA256 dari sertifikat penandatanganan aplikasi Anda.
Temukan detail selengkapnya di dokumentasi Link Aplikasi Android.
- 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
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.
- Pengguna menginstal aplikasi. Android akan 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 berdasarkan pernyataan tersebut dengan hash
sertifikat. Jika semuanya cocok, Android kemudian akan meneruskan intent https://www.example.com ke aplikasi example.com.
- Pengguna mengklik link ke https://www.example.com/pupids di
perangkatnya. Link ini dapat berada di mana saja: di browser, di saran Google Search Appliance, atau di mana saja. Android
akan meneruskan intent ke aplikasi example.com.
- Aplikasi example.com menerima intent dan memilih untuk menanganinya, membuka halaman anak-anak di aplikasi. Jika karena alasan tertentu
aplikasi menolak menangani link, atau jika aplikasi tidak ada di
perangkat, link akan dikirim ke pengendali intent default berikutnya
yang cocok dengan pola intent tersebut (sering kali browser).
Pertimbangan dan batasan penting:
- Protokol ini tidak mengautentikasi akun utama yang membuat
pernyataan, tetapi pernyataan tersebut berada di lokasi tertentu
yang sangat terkait dengan akun utama, dan di bawah kontrol akun utama.
- Protokol ini 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 ini tidak secara native menjalankan tindakan pernyataan apa pun; sebaliknya, protokol mengaktifkan kemampuan mengekspos pernyataan, yang harus divalidasi oleh aplikasi yang menggunakannya, lalu memutuskan apakah akan ditindaklanjuti atau tidak. 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 opsi untuk menangani link yang diberikan kepada aplikasi.
- Protokol tersebut 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 mencari pernyataan yang memberikan izin ke situs C, dan memutuskan untuk menerapkannya.
Langkah berikutnya
- Lihat apakah ada dokumentasi eksplisit untuk kasus penggunaan Anda.
- Pelajari cara membuat pernyataan.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-06-26 UTC.
[null,null,["Terakhir diperbarui pada 2024-06-26 UTC."],[[["\u003cp\u003eDigital Asset Links enable apps and websites to make verifiable statements about their relationships with other apps and websites, such as link handling or credential sharing.\u003c/p\u003e\n"],["\u003cp\u003eThese statements are stored in a publicly accessible statement list, typically an "assetlinks.json" file hosted by the app or website making the statement.\u003c/p\u003e\n"],["\u003cp\u003eAndroid M and above automatically uses Digital Asset Links to verify website-to-app associations and direct links to the appropriate app if installed.\u003c/p\u003e\n"],["\u003cp\u003eThe protocol provides a foundation for trust and delegation between digital entities but relies on consumers to validate and act upon the statements.\u003c/p\u003e\n"]]],[],null,["# Getting Started\n\nOverview\n--------\n\nThe Digital Asset Links protocol and API enable an app or website to make public,\nverifiable *statements* about other apps or websites. For example, a website\ncan declare that it is associated with a specific Android app, or it can declare that\nit wants to share user credentials with another website.\n\nHere are some possible uses for Digital Asset Links:\n\n- Website A declares that links to its site should open in a designated app on mobile devices, if the app is installed.\n- Website A declares that it can share its Chrome user credentials with website B so that the user won't have to log in to website B if it is logged into website A.\n- App A declares that it can share device settings, such as location, with website B.\n\n### Key terms\n\n- **Principal:** The principal is the app or website making the statement. In Digital Asset Links, the principal is always the app or website that hosts the statement list.\n- **Statement list** : Statements are contained in a *statement list* that contains one or more statements. A statement list is cleartext and publicly accessible, in a location that is controlled by the principal and difficult to spoof or tamper with. It can be a free-standing file, or a section of another, larger item. For example, on a website, it is an entire file; in an Android app, it is a section in the app manifest. Statements can be viewed and verified by anyone, using non-proprietary methods. [See the statement list documentation for more information](/digital-asset-links/v1/create-statement).\n- **Statement:** A statement is a tightly structured JSON construct that consists of a *relation* (what the statement says to do, for example: Enable sharing credentials) and a *target* (the website or app that the relation applies to). Therefore, each statement is like a sentence, where *principal* says *relation* about *target* . \n- **Statement consumer:** A statement consumer requests a statement list from a principal, checks for the presence of a statement against a given principal, and if it exists, can perform the action specified. [See the statement comsuming documentation for more information](/digital-asset-links/v1/consuming)*.*\n\nQuick usage example\n-------------------\n\nHere's a very simplified example of how the website www.example.com could\nuse Digital Asset Links to specify that any links to URLs in that site should\nopen in a designated app rather than the browser:\n\n1. The website www.example.com publishes a statement list at https://www.example.com/.well-known/assetlinks.json. This is the official name and location for a statement list on a site; statement lists in any other location, or with any other name, are not valid for this site. In our example, the statement list consists of one statement, granting its Android app the permission to open links on its site: \n\n ```\n [{\n \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n \"target\" : { \"namespace\": \"android_app\", \"package_name\": \"com.example.app\",\n \"sha256_cert_fingerprints\": [\"hash_of_app_certificate\"] }\n }]\n ```\n A statement list supports an array of statements within the \\[ \\] marks, but our example file contains only one statement. `sha256_cert_fingerprints` is the SHA256 fingerprints of your app's signing certificate. Find more details in the [Android App Links documentation](https://developer.android.com/training/app-links/verify-android-applinks#web-assoc).\n2. The Android app listed in the statement above has an intent filter that specifies the scheme, host, and path pattern of URLs that it wants to handle: in this case, https://www.example.com. The intent filter includes a special attribute `android:autoVerify`, new to Android M, which indicates that Android should verify the statement on the website described in the intent filter when the app is installed.\n3. A user installs the app. Android sees the intent filter with the `autoVerify` attribute and checks for the presence of the statement list at the specified site; if present, Android checks whether that file includes a statement granting link handling to the app, and verifies the app against the statement by certificate hash. If everything checks out, Android will then forward any https://www.example.com intents to the example.com app.\n4. The user clicks a link to https://www.example.com/puppies on their device. This link could be anywhere: in a browser, in a Google Search Appliance suggestion, or anywhere else. Android forwards the intent to the example.com app.\n5. The example.com app receives the intent and chooses to handle it, opening the puppies page in the app. If for some reason the app had declined to handle the link, or if the app were not on the device, then the link would have been sent to the next default intent handler matching that intent pattern (often the browser).\n\nImportant considerations and limitations:\n-----------------------------------------\n\n- The protocol does not authenticate the principal making the statement, but the statement is located in a specific location strongly associated with the principal, and under control of the principal.\n- The protocol does not authenticate the statement target, but it provides a means for the caller to authenticate the target (for example, a statement identifies mobile app targets by certificate hash and package name).\n- The protocol does not natively perform any statement actions; rather, it enables the ability to expose statements, which a consuming application must validate and then decide whether and how to act upon. Android M natively performs these steps for you; for example, if a website delegates link handling to a specific app, Android checks and verifies the statement, verifies the target app, and then offers the app the option to handle the given link.\n- The protocol does not enable making statements about two third parties: that is, website A can make a statement about website B, but website A cannot make a statement about website B's relationship to website C. However, if website B trusts website A, it can check website A for a statement granting permission to website C, and decide to implement that.\n\nNext steps\n----------\n\n1. [See if there is explicit documentation for your use case.](/digital-asset-links/v1/using)\n2. [Learn about creating a statement.](/digital-asset-links/v1/create-statement)"]]