1. Ringkasan
Apakah pengguna Anda mengakses layanan Anda di situs dan aplikasi Android? Memaksa mereka login secara terpisah di setiap platform akan menimbulkan gesekan yang tidak perlu dan dapat menyebabkan pengabaian.
Digital Asset Links (DAL) memecahkan masalah ini dengan memungkinkan Anda mendeklarasikan pengaitan antara situs dan aplikasi Anda. Hal ini memungkinkan pengelola sandi, seperti Pengelola Sandi Google, membagikan sandi dan kunci sandi tersimpan di antara keduanya.
Secara khusus, mengonfigurasi file Digital Asset Links Anda memerlukan hubungan yang berbeda, bergantung pada apa yang ingin Anda bagikan:
- Untuk Sandi: Menyertakan
delegate_permission/common.get_login_credsmemungkinkan pengelola sandi membagikan sandi tersimpan antara situs dan aplikasi Anda. - Untuk Kunci Sandi: Karena kunci sandi terikat secara ketat ke domain web tertentu, Android memerlukan bukti kepemilikan domain. Oleh karena itu, Anda harus menyertakan
delegate_permission/common.handle_all_urls. Meskipun Anda mungkin mengenal izin ini sebagai izin yang digunakan untuk Link Aplikasi Android (deep linking), izin ini juga merupakan persyaratan ketat untuk mengizinkan penggunaan kunci sandi yang dibuat di satu platform pada platform lain.
Hasilnya? Pengguna dapat login dengan lancar di seluruh platform afiliasi Anda menggunakan sandi atau kunci sandi yang disimpan hanya untuk salah satu platform tersebut.

Menerapkan berbagi kredensial tanpa hambatan dapat meningkatkan pengalaman pengguna secara signifikan. Misalnya, eBay mengalami peningkatan keberhasilan login sebesar 10% setelah menerapkan DAL untuk berbagi kredensial.
Dalam codelab ini, Anda akan mempelajari cara menggunakan Digital Asset Links untuk mengaktifkan berbagi kredensial antara situs dan aplikasi Android Anda.
Prasyarat
- Pengetahuan dasar tentang JSON dan pengembangan Android.
- Pemahaman tentang prasyarat Android Credential Manager.
Yang akan Anda pelajari
- Cara menyiapkan berbagi kredensial menggunakan Konsol Google Play (Direkomendasikan).
- Cara membuat file
assetlinks.jsonsecara manual. - Cara mengonfigurasi aplikasi Android untuk penautan manual.
- Cara mengaktifkan kunci sandi di aplikasi Android dengan mengaitkannya ke domain situs.
- Cara menggunakan alat untuk membuat dan memvalidasi penyiapan Anda.
Yang Anda butuhkan
- Situs: Kemampuan untuk menghosting file JSON di
https://{your-domain}/.well-known/assetlinks.json. - Aplikasi Android:
- Untuk metode Konsol Play: Aplikasi yang dipublikasikan di Google Play.
- Untuk metode manual: Project Android yang dapat Anda ubah dan bangun. Perhatikan bahwa agar berbagi kredensial dengan Pengelola Sandi Google berfungsi, aplikasi harus dipublikasikan di Google Play.
Cara kerjanya
Agar berbagi kredensial berfungsi, Anda harus membuat kepercayaan dua arah:
- Web -> Aplikasi: Situs Anda harus menghosting file
assetlinks.jsonyang menyatakan bahwa situs tersebut memercayai aplikasi Android Anda. - Aplikasi -> Web: Aplikasi Android Anda harus dikonfigurasi agar memercayai situs Anda.
Kami akan membahas dua cara untuk melakukannya: cara otomatis menggunakan Konsol Google Play (direkomendasikan), dan cara manual menggunakan Digital Asset Links secara langsung.
2. Menyiapkan menggunakan Konsol Google Play (Direkomendasikan)
Cara termudah untuk mengaktifkan berbagi kredensial antara situs dan aplikasi Android Anda adalah melalui Konsol Google Play. Metode ini memungkinkan Anda mengaitkan aplikasi dengan situs tanpa perlu mengubah manifes aplikasi atau memublikasikan versi baru aplikasi. Google Play mengelola pengaitan sisi aplikasi untuk Anda.
Prasyarat
- Izin Konsol Play untuk mengakses halaman Deep link.
- Kemampuan untuk memublikasikan file
/.well-known/assetlinks.jsondi domain Anda.
Untuk informasi selengkapnya tentang deep link, lihat Link Aplikasi Android.
Langkah
- Di Konsol Play, buka Mendorong pertumbuhan > Deep link.
- Jika domain Anda tidak tercantum, klik Tambahkan domain di bagian Konfigurasi aplikasi.
- Temukan domain Anda dan cari kolom Berbagi kredensial. Klik Aktifkan (atau pastikan Aktifkan berbagi kredensial diaktifkan untuk domain baru).
- Salin cuplikan JSON yang dihasilkan oleh Konsol Play.
- Publikasikan konten JSON ini ke
https://{your-domain}/.well-known/assetlinks.json. (Jika Anda sudah memiliki file ini, tambahkan pernyataan baru ke file tersebut). - Kembali di Konsol Play, klik Buat objek atribusi situs atau Aktifkan berbagi kredensial.
Konsol Play kini akan memverifikasi penyiapan hosting Anda.

Agar berbagi kredensial berfungsi, host situs Anda harus memenuhi persyaratan berikut:
- URL dapat diakses melalui HTTPS.
- Server merespons dengan
Content-Type: application/json. - URL dapat diakses tanpa pengalihan.
Setelah diverifikasi, berbagi kredensial akan aktif. Diperlukan waktu 1-2 minggu agar perubahan konfigurasi diterapkan.
3. Menyiapkan secara manual menggunakan Digital Asset Links
Perlu kontrol lainnya? Atau tidak memiliki akses ke Konsol Play? Anda dapat mengonfigurasi berbagi kredensial antara situs dan aplikasi Android Anda secara manual. Hal ini melibatkan dua tugas utama: menghosting file JSON di situs Anda dan memperbarui manifes aplikasi Android Anda.
1. Mendapatkan sidik jari digital aplikasi Anda
Sebelum menyiapkan berbagi kredensial tanpa hambatan, pastikan Anda memiliki hal berikut untuk setiap platform:
Untuk setiap aplikasi Android:
- ID aplikasi Android, seperti yang dideklarasikan dalam file
build.gradleaplikasi. - Sidik jari SHA256 sertifikat penandatanganan.
- (Direkomendasikan) Login pengguna diterapkan dengan Credential Manager API.
2. Membuat file asosiasi
Anda perlu membuat file assetlinks.json yang menyatakan hubungan antara situs dan aplikasi Anda. Gunakan delegate_permission/common.get_login_creds untuk memberikan izin berbagi sandi, dan delegate_permission/common.handle_all_urls untuk mengaktifkan deep linking dan berbagi kunci sandi.
Buat file bernama assetlinks.json dengan konten berikut. Ganti nilai contoh dengan URL situs, nama paket, dan sidik jari Anda sendiri:
[{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints":
["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"]
}
}]
3. Menghosting file
Upload file assetlinks.json Anda ke direktori .well-known di root domain Anda.
Lokasi: https://{your-domain}/.well-known/assetlinks.json
Agar berbagi kredensial berfungsi, host situs Anda harus memenuhi persyaratan berikut:
- URL dapat diakses melalui HTTPS.
- Server merespons dengan
Content-Type: application/json. - URL dapat diakses tanpa pengalihan.

4. Mengonfigurasi aplikasi Android Anda
Sekarang, beri tahu aplikasi Android Anda untuk memercayai situs. Anda akan menambahkan referensi dalam manifes yang mengarah ke file resource yang berisi URL assetlinks.json Anda.
1. Menambahkan resource string
Di res/values/strings.xml, tambahkan string baru asset_statements. Perhatikan tanda petik yang di-escape.
<resources>
<string name="asset_statements" translatable="false">
[{
\"include\": \"https://www.example.com/.well-known/assetlinks.json\"
}]
</string>
</resources>
2. Menambahkan metadata ke manifes
Di AndroidManifest.xml, tambahkan tag <meta-data> dalam elemen <application> yang mereferensikan resource string ini:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Setelah menyelesaikan langkah-langkah ini dan memublikasikan versi baru aplikasi Android Anda, pengelola sandi yang mendukung Digital Asset Links (seperti Pengelola Sandi Google) akan dapat menyarankan kredensial yang disimpan untuk www.example.com saat pengguna mencoba login ke com.example.app, dan sebaliknya.
4. Memverifikasi penyiapan Anda
Sebelum mengirimkan, Anda harus memverifikasi konfigurasi Digital Asset Links. JSON yang salah atau file yang tidak dapat dijangkau akan gagal tanpa pemberitahuan.
Gunakan alat Generator dan Validator Pernyataan resmi.

- Masukkan domain situs dan nama paket aplikasi Anda.
- Klik Test Statement.
- Alat ini akan memeriksa apakah file
assetlinks.jsondihosting dengan benar dan berisi asosiasi yang valid.
5. Membagikan kredensial di antara beberapa situs

Jika Anda memiliki beberapa situs yang menggunakan sistem login yang sama (misalnya, example.com dan example.co.uk), Anda dapat mendeklarasikannya sebagai situs afiliasi sehingga kredensial dapat dibagikan di antara situs tersebut.
Membagikan sandi di beberapa situs
Untuk membagikan sandi antar-situs, Anda dapat menyatakan asosiasi web-ke-web menggunakan delegate_permission/common.get_login_creds.
Misalnya, agar example.com dapat berbagi sandi dengan example.co.uk, file assetlinks.json yang dihosting di https://example.com/.well-known/assetlinks.json harus menyertakan pernyataan yang menargetkan example.co.uk:
[{
"relation": ["delegate_permission/common.get_login_creds"],
"target": {
"namespace": "web",
"site": "https://example.co.uk"
}
}]
Demikian pula, https://example.co.uk/.well-known/assetlinks.json harus menyertakan pernyataan yang menargetkan example.com.
Membagikan kunci sandi di antara beberapa situs
Agar beberapa situs dapat berbagi kunci sandi yang sama, situs tersebut harus menggunakan ID Pihak Tepercaya (RP ID) yang sama. Di WebAuthn dan kunci sandi, ID RP menentukan cakupan kredensial berdasarkan nama domain. Saat Anda membuat kunci sandi, kunci sandi tersebut akan terikat ke ID RP tertentu, dan hanya dapat digunakan di domain yang berada dalam cakupan ID tersebut. Menentukan ID RP Anda dengan benar akan memastikan pengalaman kunci sandi yang lancar di seluruh subdomain, origin lintas situs, dan aplikasi seluler pihak pertama. Anda dapat mempelajari lebih lanjut cara menyetel ID RP di Memahami ID Pihak Tepercaya (RP ID). Dengan Permintaan Origin Terkait, satu situs dapat menentukan origin lain yang diizinkan untuk menggunakan ID RP-nya, sehingga pengguna dapat menggunakan kembali kunci sandi yang sama di beberapa situs yang Anda operasikan. Perhatikan bahwa ini berbeda dengan berbagi kunci sandi antara situs dan aplikasi Android, yang menggunakan delegate_permission/common.handle_all_urls di Digital Asset Links.
Misalnya, jika Anda ingin example.com dan example.co.uk berbagi kunci sandi, Anda dapat memutuskan bahwa example.com akan menjadi ID RP kanonis. Agar ini berfungsi, example.co.uk harus menggunakan rpId: 'example.com' dalam panggilan WebAuthn API-nya, dan example.com harus menghosting file di https://example.com/.well-known/webauthn untuk memasukkan example.co.uk ke dalam daftar yang diizinkan:
{
"origins": [
"https://example.co.uk"
]
}
Hal ini memungkinkan example.co.uk membuat dan menggunakan kunci sandi yang terkait dengan example.com.
6. Kesimpulan
Selamat! Anda telah berhasil menyiapkan berbagi kredensial tanpa hambatan.
Pengguna Anda kini dapat menyimpan sandi dan kunci sandi di situs Anda dan menggunakannya untuk login ke aplikasi Android Anda dengan sekali ketuk (dan sebaliknya). Perubahan sederhana ini dapat meningkatkan rasio konversi login dan kepuasan pengguna secara signifikan.
Apa langkah selanjutnya?
- Baca Dokumentasi Resmi Digital Asset Links.
- Pelajari lebih lanjut Dasar-Dasar Berbagi Kredensial.
- Baca Studi Kasus eBay untuk melihat dampaknya.