Maksimalkan kenyamanan pengguna dengan mengaktifkan berbagi kredensial lintas platform yang lancar di seluruh aplikasi dan situs Anda. Saat beberapa situs dan aplikasi Android berbagi backend pengelolaan akun, fitur ini memungkinkan pengguna menyimpan kredensial sekali dan membuatnya otomatis disarankan di situs atau aplikasi Android yang ditautkan.
Praktik terbaik
Untuk pengalaman pengguna dan keamanan yang optimal, terapkan berbagi kredensial yang lancar di seluruh poin kontak ini:
- Formulir login: Mengaktifkan pengisian kredensial otomatis.
- Formulir pendaftaran: Menyimpan kredensial baru dengan aman untuk digunakan di seluruh platform.
- Formulir perubahan sandi: Menyinkronkan pembaruan sandi di semua platform.
- Formulir reset sandi: Mengizinkan reset sandi tunggal untuk memperbarui semua platform.
- Domain WebView: Memperluas berbagi kredensial ke domain webview dalam aplikasi Anda yang menangani pengelolaan akun (formulir login host, pendaftaran, perubahan sandi, atau reset sandi).
- Aplikasi Android
Pendekatan ini menciptakan sistem pengelolaan kredensial terpadu, yang meningkatkan kemudahan dan keamanan pengguna.
Saat mendesain situs pengelolaan akun, sebaiknya ikuti praktik terbaik berikut untuk situs pengelolaan akun:
- Rancang formulir pendaftaran Anda sesuai dengan praktik terbaik
- Mendesain formulir login sesuai dengan praktik terbaik
- Menambahkan URL populer untuk mengubah sandi
Saat mendesain aplikasi Android, sebaiknya integrasikan aplikasi Anda dengan Pengelola Kredensial Android.
Prasyarat
Sebelum menyiapkan berbagi kredensial yang lancar, pastikan Anda memiliki hal berikut untuk setiap platform:
Untuk setiap aplikasi Android:
- ID aplikasi Android, seperti yang dideklarasikan dalam file
build.gradle
aplikasi. - Sidik jari SHA256 dari sertifikat penandatanganan.
- (Direkomendasikan) Login pengguna yang diterapkan dengan Credential Manager API.
Untuk setiap situs:
- Kemampuan untuk memublikasikan file
/.well-known/assetlinks.json
di setiap domain, dengan mengikuti sintaksis Digital Asset Links (DAL). - Semua domain pengelolaan akun (login, pendaftaran, perubahan sandi, atau formulir reset sandi) harus dapat diakses melalui HTTPS.
Mengaktifkan berbagi kredensial yang lancar di seluruh aplikasi dan situs Android
Untuk mengonfigurasi berbagi kredensial yang lancar di seluruh aplikasi dan situs, Anda membuat dan memublikasikan daftar pernyataan Digital Asset Links yang mendeklarasikan entitas mana (situs atau aplikasi Android) yang diizinkan untuk berbagi kredensial.
Untuk mendeklarasikan hubungan berbagi kredensial:
Buat file
assetlinks.json
dengan pernyataan yang ditautkan ke situs dan ke aplikasi Android, dengan mengikuti sintaksis daftar pernyataan DAL:[ { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"web", "site":URL } }, { "relation":[ "delegate_permission/common.get_login_creds" ], "target":{ "namespace":"android_app", "package_name":"APP_ID", "sha256_cert_fingerprints":[ "SHA_HEX_VALUE" ] } } ]
Dengan
URL
adalah URL situs Anda,APP_ID
adalah ID aplikasi Android, danSHA_HEX_VALUE
adalah sidik jari SHA256 dari sertifikat penandatanganan aplikasi Android Anda.Kolom
relation
menjelaskan hubungan yang dideklarasikan. Untuk mendeklarasikan bahwa aplikasi dan situs berbagi kredensial login, tentukan hubungan sebagaidelegate_permission/common.get_login_creds
. Pelajari lebih lanjut String Relasi di DAL.Kolom
target
adalah objek yang menentukan aset tempat deklarasi berlaku.Kolom berikut mengidentifikasi situs:
namespace
web
site
URL situs, dalam format
https://domain[:optional_port
]; misalnya, https://www.example.com.domain
harus sepenuhnya memenuhi syarat, danoptional_port
harus dihilangkan saat menggunakan port 443 untuk HTTPS.Target
site
hanya dapat berupa domain root: Anda tidak dapat membatasi pengaitan aplikasi ke subdirektori tertentu. Jangan sertakan jalur dalam URL, seperti garis miring.Subdomain tidak dianggap cocok: yaitu, jika Anda menentukan
domain
sebagai www.example.com, domain www.counter.example.com tidak akan dikaitkan dengan aplikasi Anda.Kolom berikut mengidentifikasi aplikasi Android:
namespace
android_app
package_name
Nama paket yang dideklarasikan dalam manifes aplikasi. Misalnya, com.example.android
sha256_cert_fingerprints
Sidik jari SHA256 dari sertifikat penandatanganan aplikasi Anda.
Menghosting file JSON Digital Asset Links di lokasi berikut pada domain login:
https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json
, denganDOMAIN
sepenuhnya memenuhi syarat, danOPTIONAL_PORT
harus dihilangkan saat menggunakan port 443 untuk HTTPS.Deklarasikan pengaitan di aplikasi Android dengan menyematkan pernyataan dalam file
res/values/strings.xml
aplikasi Android yang ditautkan ke daftar pernyataan yang Anda buat di Langkah 1. Tambahkan objek yang menentukan fileassetlinks.json
untuk dimuat. Contoh:<string name="asset_statements" translatable="false"> [{ \"include\": \"https://DOMAIN[:OPTIONAL_PORT]/.well-known/assetlinks.json\" }] </string>
Ganti
DOMAIN
danOPTIONAL_PORT
(harus dihilangkan saat menggunakan port 443 untuk HTTPS)—misalnyahttps://www.example.com
. Escape apostrof dan tanda kutip yang Anda gunakan dalam string.Anda juga dapat menambahkan cuplikan JSON dalam file
strings.xml
seperti yang ditunjukkan dalam dokumentasi DAL, tetapi dengan menggunakan pernyataaninclude
, Anda dapat mengubah pernyataan tanpa memublikasikan versi baru aplikasi.Referensikan pernyataan dalam manifes dengan menambahkan baris berikut ke file
AndroidManifest.xml
aplikasi Anda di bagian<application>
:<meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>
Publikasikan versi baru aplikasi Android ke Konsol Google Play
Setelah mengikuti langkah-langkah ini, Anda telah berhasil menyiapkan berbagi kredensial yang lancar antara situs dan aplikasi Android Anda.
Perhatikan bahwa ini bukan satu-satunya cara yang valid untuk menyiapkan DAL guna berbagi kredensial, tetapi pendekatan ini menyederhanakan proses penambahan entitas baru ke jaringan berbagi kredensial yang lancar di masa mendatang, mendorong penggunaan kembali kode, dan mengurangi potensi error selama update.