Pelajari cara mengintegrasikan kunci sandi ke layanan Anda.
Anatomi sistem kunci sandi
Sistem kunci sandi terdiri dari beberapa komponen:
- Pihak yang mengontrol: Dalam konteks kunci sandi, pihak tepercaya (disingkat RP) menangani penerbitan dan autentikasi kunci sandi. RP harus mengoperasikan klien — yaitu situs atau aplikasi yang membuat kunci sandi atau melakukan autentikasi dengan kunci sandi — dan server untuk mendaftarkan, menyimpan, dan memverifikasi kredensial yang dibuat oleh kunci sandi pada klien tersebut. Aplikasi seluler kunci sandi harus terikat dengan domain server RP menggunakan mekanisme pengaitan yang disediakan OS seperti Digital Asset Links.
- Pengautentikasi: Perangkat komputasi seperti ponsel, tablet, laptop, atau komputer desktop yang dapat membuat dan memverifikasi kunci sandi menggunakan fitur kunci layar yang ditawarkan oleh sistem operasi.
- Pengelola sandi: Software yang diinstal di perangkat pengguna akhir yang menyalurkan, menyimpan, dan menyinkronkan kunci sandi, seperti Pengelola Sandi Google.
Alur pendaftaran
Gunakan WebAuthn API di situs atau library Pengelola Kredensial di aplikasi Android untuk membuat dan mendaftarkan kunci sandi baru.
Untuk membuat kunci sandi baru, ada beberapa komponen utama yang perlu disediakan:
- ID RP: Berikan ID pihak tepercaya dalam bentuk domain web.
- Informasi pengguna: ID pengguna, nama pengguna, dan nama tampilan.
- Kredensial yang akan dikecualikan: Informasi tentang kunci sandi yang disimpan sebelumnya untuk mencegah pendaftaran duplikat.
- Jenis kunci sandi: Apakah akan menggunakan perangkat itu sendiri ("pengautentikasi platform") sebagai pengautentikasi, atau kunci keamanan yang dapat dilepas ("pengautentikasi lintas platform / roaming"). Selain itu, pemanggil dapat menentukan apakah akan membuat kredensial dapat ditemukan sehingga pengguna dapat memilih akun yang akan digunakan untuk login.
Setelah RP meminta pembuatan kunci sandi dan pengguna memverifikasinya dengan membuka kunci layar, kunci sandi baru akan dibuat dan kredensial kunci publik akan ditampilkan. Kirimkan ke server dan simpan ID kredensial dan kunci publik untuk autentikasi di masa mendatang.
Pelajari cara membuat dan mendaftarkan kunci sandi secara mendetail:
- Di web: Membuat kunci sandi untuk login tanpa sandi
- Di Android: Menghadirkan autentikasi lancar ke aplikasi Anda dengan kunci sandi menggunakan Credential Manager API
Alur autentikasi
Gunakan WebAuthn API di situs atau library Pengelola Kredensial di aplikasi Android untuk melakukan autentikasi dengan kunci sandi terdaftar.
Untuk melakukan autentikasi dengan kunci sandi, ada beberapa komponen utama yang perlu disediakan:
- ID RP: Berikan ID pihak tepercaya dalam bentuk domain web.
- Tantangan: Tantangan buatan server yang mencegah serangan replay.
Setelah RP meminta autentikasi dengan kunci sandi dan pengguna memverifikasinya dengan membuka kunci layar, kredensial kunci publik akan ditampilkan. Kirimkan ke server dan verifikasi tanda tangan dengan kunci publik yang disimpan.
Pelajari cara melakukan autentikasi dengan kunci sandi secara mendetail:
- Di web: Login dengan kunci sandi melalui isi otomatis formulir
- Di Android: Menghadirkan autentikasi lancar ke aplikasi Anda dengan kunci sandi menggunakan Credential Manager API
Integrasi sisi server
Setelah membuat kunci sandi, server perlu menyediakan parameter utama seperti tantangan, informasi pengguna, ID kredensial yang perlu dikecualikan, dan lainnya. Selanjutnya, sistem akan memverifikasi kredensial kunci publik yang dibuat yang dikirim dari klien dan menyimpan kunci publik tersebut dalam database. Untuk mengautentikasi dengan kunci sandi, server harus memvalidasi kredensial dengan cermat dan memverifikasi tanda tangan agar pengguna dapat login.
Pelajari lebih lanjut di panduan sisi server kami:
- Pengantar implementasi kunci sandi sisi server
- Pendaftaran kunci sandi sisi server
- Autentikasi kunci sandi sisi server
Mekanisme autentikasi yang sudah ada (lama)
Jika Anda mendukung kunci sandi di layanan yang sudah ada, transisi dari mekanisme autentikasi lama seperti sandi ke kunci sandi tidak akan dapat dilakukan dalam satu hari. Kami tahu Anda cenderung akan menghilangkan metode autentikasi yang lebih lemah sesegera mungkin, tetapi hal ini dapat menyebabkan kebingungan pengguna atau meninggalkan beberapa pengguna. Untuk sementara, sebaiknya pertahankan metode autentikasi yang ada.
Ada beberapa alasan:
- Ada pengguna di lingkungan kunci sandi yang tidak kompatibel: Dukungan kunci sandi diperluas secara luas di beberapa sistem operasi dan browser, tetapi mereka yang menggunakan versi lama belum dapat menggunakan kunci sandi.
- Ekosistem kunci sandi belum berkembang: Ekosistem kunci sandi terus berkembang. Detail UX dan kompatibilitas teknis antara lingkungan yang berbeda dapat meningkat.
- Pengguna mungkin belum siap untuk menggunakan kunci sandi: Ada orang yang ragu untuk melakukan hal baru. Seiring berkembangnya ekosistem kunci sandi, mereka akan memahami cara kerja kunci sandi dan manfaatnya bagi mereka.
Meninjau kembali mekanisme autentikasi yang ada
Meskipun kunci sandi membuat autentikasi Anda lebih mudah dan aman, mempertahankan mekanisme lama ibarat mencari celah. Sebaiknya tinjau kembali dan tingkatkan mekanisme autentikasi yang sudah ada.
Sandi
Membuat sandi yang kuat dan mengelolanya untuk setiap situs adalah tugas yang menantang bagi pengguna. Sebaiknya gunakan pengelola sandi bawaan sistem atau pengelola sandi secara mandiri. Dengan melakukan perubahan kecil pada formulir login, situs dan aplikasi dapat membuat perbedaan besar pada keamanan dan pengalaman login. Lihat cara melakukan perubahan tersebut:
- Praktik terbaik formulir login (Web)
- Praktik terbaik formulir pendaftaran (Web)
- Memproses login pengguna dengan Pengelola Kredensial (Android)
Autentikasi 2 langkah
Meskipun penggunaan pengelola sandi dapat membantu pengguna menangani sandi, tidak semua pengguna menggunakannya. Meminta kredensial tambahan yang disebut sandi sekali pakai (OTP) adalah praktik umum untuk melindungi pengguna tersebut. OTP biasanya disediakan melalui email, pesan SMS, atau aplikasi pengautentikasi seperti Google Authenticator. Karena OTP biasanya berupa teks pendek yang dihasilkan secara dinamis dan hanya valid untuk rentang waktu terbatas, hal ini mengurangi kemungkinan pembajakan akun. Metode ini tidak sekuat kunci sandi, tetapi jauh lebih baik daripada memberi pengguna hanya sandi.
Jika Anda memilih SMS sebagai cara untuk mengirimkan OTP, lihat praktik terbaik berikut untuk menyederhanakan pengalaman pengguna dalam memasukkan OTP.
Penggabungan identitas
Penggabungan identitas adalah opsi lain untuk memungkinkan pengguna login dengan aman dan mudah. Dengan penggabungan identitas, situs dan aplikasi dapat mengizinkan pengguna login menggunakan identitas pengguna dari penyedia identitas pihak ketiga. Misalnya, Login dengan Google menghasilkan konversi yang besar bagi developer, dan pengguna merasa lebih mudah dan lebih baik daripada autentikasi berbasis sandi. Gabungan identitas merupakan pelengkap kunci sandi. Cara ini cocok untuk mendaftar karena situs atau aplikasi dapat memperoleh informasi profil dasar pengguna dalam satu langkah, sedangkan kunci sandi sangat bagus untuk menyederhanakan autentikasi ulang.
Perlu diingat, setelah Chrome menghentikan cookie pihak ketiga pada tahun 2024, beberapa sistem gabungan identitas mungkin akan terpengaruh, bergantung pada cara sistem tersebut dibuat. Untuk mengurangi dampak tersebut, API browser baru yang disebut Federated Credential Management API (singkatnya FedCM) sedang dikembangkan. Jika Anda menjalankan penyedia identitas, lihat detailnya dan lihat apakah Anda perlu menggunakan FedCM.
- Federated Credential Management API (Web, FedCM)
- Ringkasan Login dengan Google untuk Web (Web, Login dengan Google)
- Ringkasan login Sekali Ketuk di Android (Android, login Sekali Ketuk)
"Link Ajaib"
Login dengan link ajaib adalah metode autentikasi yang memungkinkan layanan mengirimkan link login melalui email, sehingga pengguna dapat mengkliknya untuk mengautentikasi sendiri. Meskipun cara ini membantu pengguna login tanpa mengingat sandi, beralih antara browser/aplikasi dan program email akan menjadi hambatan. Selain itu, karena mekanisme autentikasi bergantung pada email, keamanan yang lemah dari penyedia email dapat membahayakan akun pengguna.
Referensi pembelajaran
Web
Untuk mengintegrasikan kunci sandi ke situs Anda, gunakan Web Authentication API (WebAuthn). Untuk mempelajari lebih lanjut, lihat referensi berikut:
- Membuat kunci sandi untuk login tanpa sandi: Artikel yang membahas cara mengizinkan pengguna membuat kunci sandi untuk situs.
- Login dengan kunci sandi melalui isi otomatis formulir: Artikel yang membahas cara mendesain login tanpa sandi dengan kunci sandi sekaligus mengakomodasi pengguna sandi yang sudah ada.
- Mengimplementasikan kunci sandi dengan isi otomatis formulir di aplikasi web: Codelab yang memungkinkan Anda mempelajari cara mengimplementasikan kunci sandi dengan isi otomatis formulir di aplikasi web untuk membuat proses login yang lebih mudah dan lebih aman.
- Pelajari cara mengimplementasikan kunci sandi dengan isi otomatis formulir di aplikasi web: Video workshop yang membahas codelab Mengimplementasikan kunci sandi dengan isi otomatis formulir di aplikasi web untuk mengimplementasikan kunci sandi dengan isi otomatis formulir di aplikasi web untuk membuat proses login yang lebih mudah dan aman.
- Build aplikasi WebAuthn pertama Anda: Codelab yang memungkinkan Anda mempelajari cara membuat fungsi autentikasi ulang sederhana dengan kunci sandi di situs Anda.
Android
Untuk mengintegrasikan kunci sandi ke aplikasi Android Anda, gunakan library Pengelola Kredensial. Untuk mempelajari lebih lanjut, lihat referensi berikut:
- Memproses login pengguna dengan Pengelola Kredensial: Artikel yang membahas cara mengintegrasikan Pengelola Kredensial di Android. Pengelola Kredensial adalah API Jetpack yang mendukung beberapa metode login, seperti nama pengguna dan sandi, kunci sandi, serta solusi login gabungan (seperti Login dengan Google) dalam satu API
- Menghadirkan autentikasi lancar ke aplikasi Anda dengan kunci sandi menggunakan Credential Manager API: Artikel yang membahas cara mengintegrasikan kunci sandi melalui Pengelola Kredensial di Android.
- Pelajari cara menyederhanakan perjalanan autentikasi menggunakan Credential Manager API di aplikasi Android: Pelajari cara menerapkan Credential Manager API untuk memberikan autentikasi yang lancar & aman di aplikasi menggunakan kunci sandi atau sandi.
- Aplikasi Contoh Pengelola Kredensial: Kode contoh yang menjalankan Pengelola Kredensial yang mengakomodasi kunci sandi.
- Mengintegrasikan Pengelola Kredensial dengan solusi penyedia kredensial Anda | Android Developer
UX
Pelajari rekomendasi pengalaman pengguna kunci sandi: