Pelajari tentang Petunjuk Kredensial Kunci Publik / User-Agent WebAuthn, ketersediaannya, cara penggunaannya, serta batasan dan rekomendasi yang ada.
Vincent
Created: August 8, 2025
Updated: August 8, 2025
See the original blog version in English here.
Our mission is to make the Internet a safer place, and the new login standard passkeys provides a superior solution to achieve that. That's why we want to help you understand passkeys and its characteristics better.
WebAuthn dan passkey mendapatkan momentum yang kuat dan semakin banyak diadopsi. Selain itu, dari sudut pandang teknis, standar WebAuthn juga berkembang pesat. Petunjuk kredensial kunci publik WebAuthn (juga disebut Petunjuk User-agent) adalah tambahan terbaru pada Web Authentication API, yang bertujuan untuk meningkatkan cara developer mengimplementasikan autentikasi passkey dalam aplikasi mereka.
Dalam artikel ini, kita akan menjawab pertanyaan-pertanyaan berikut:
Mari kita mulai dengan melihat motivasinya terlebih dahulu.
Saat ini, ada berbagai tempat di mana kita bisa membuat dan menyimpan passkey:
Bagi pengguna, ini bisa menawarkan fleksibilitas dan kebebasan memilih. Namun, beberapa aplikasi dan skenario mengharuskan pembatasan beberapa opsi ini, misalnya jika Anda hanya ingin mengizinkan kunci keamanan perangkat keras karena persyaratan keamanan yang lebih tinggi.
Untuk memengaruhi pembuatan passkey dan penyimpanannya, kita memiliki properti authenticatorAttachment
.
authenticatorAttachment
memungkinkan relying party untuk membatasi di mana passkey dapat dibuat.
platform
menunjukkan authenticator yang terpasang di perangkat yang menjalankan WebAuthn. WebAuthn berkomunikasi dengannya menggunakan metode transport khusus untuk platform tersebut, seperti API spesifik platform. Kredensial kunci publik yang ditautkan ke authenticator platform disebut kredensial platform. Dari daftar di atas, pengelola kredensial / lokasi berikut dapat menyimpan kredensial platform:
Windows 11 dan Chrome:
macOS 15 (Sequoia) dan Chrome:
Saat mengklik Batal, modal berikut akan muncul:
macOS 15 (Sequoia) dan Safari:
cross-platform
menunjukkan authenticator yang berada di luar perangkat yang menjalankan WebAuthn (roaming authenticator) karena dapat digunakan di beberapa perangkat. WebAuthn berinteraksi dengannya menggunakan protokol transport lintas platform seperti Bluetooth atau NFC. Kredensial kunci publik yang terkait dengan roaming authenticator disebut kredensial roaming. Dari daftar di atas, pengelola kredensial / lokasi berikut dapat menyimpan kredensial lintas platform:
Windows 11 dan Chrome:
macOS 15 (Sequoia) dan Chrome:
macOS 15 (Sequoia) dan Safari:
Tidak ditentukan menunjukkan bahwa baik authenticator platform maupun authenticator lintas platform dapat digunakan. Di sini, pengguna dapat memilih di mana mereka ingin menyimpan passkey.
Windows 11 dan Chrome:
macOS 15 (Sequoia) dan Chrome:
macOS 15 (Sequoia) dan Safari:
Saat mengklik Batal, modal berikut akan muncul:
authenticatorAttachment
telah digunakan cukup lama. Namun, properti ini juga tidak fleksibel terhadap perkembangan baru seperti Autentikasi Lintas Perangkat (melalui kode QR dan Bluetooth). Di sini, passkey juga disimpan misalnya di Google Password Manager (kredensial platform) tetapi dipicu dengan cross-platform
oleh relying party. Selain itu, kontrol dari relying party untuk memengaruhi jenis passkey yang harus digunakan dalam proses login (bukan registrasi) hanya dapat dilakukan dengan memodifikasi nilai transports
dari sebuah kredensial.
Di sinilah Petunjuk Kredensial Kunci Publik WebAuthn berperan.
Petunjuk kredensial kunci publik WebAuthn adalah parameter baru yang diperkenalkan dalam Web Authentication API (secara resmi di WebAuthn Level 3). Petunjuk ini memberikan panduan kepada browser tentang jenis authenticator yang kemungkinan akan digunakan pengguna selama proses autentikasi. Hal ini membantu memberikan pengalaman pengguna yang lebih lancar dan intuitif dengan memfokuskan UI browser pada opsi yang paling relevan.
Tiga Jenis Petunjuk
Petunjuk ini hadir dalam tiga jenis:
security-key
: Menunjukkan bahwa pengguna diharapkan menggunakan kunci keamanan perangkat keras (misalnya, YubiKey).client-device
: Menyarankan bahwa pengguna akan menggunakan authenticator platform yang terpasang pada perangkat klien (seperti Touch ID di macOS, Face ID di iOS, atau Windows Hello di Windows).hybrid
: Menyiratkan bahwa pengguna mungkin menggunakan smartphone atau tablet untuk autentikasi lintas perangkat melalui kode QR dan Bluetooth.Petunjuk ini bukan persyaratan ketat dari relying party, melainkan berfungsi sebagai panduan untuk meningkatkan pengalaman pengguna sebagai petunjuk bagi browser.
Berikut ini, Anda akan melihat tangkapan layar untuk macOS Sequoia (Edge + Chrome) dan Windows 10 (Chrome) dengan authenticatorAttachment
tidak ditentukan dan Petunjuk User-agent WebAuthn diatur ke security-key
.
Di sini, kita melihat batasan lain, bahwa petunjuk security-key
tidak dihormati di Windows 10, setidaknya tidak secara langsung. Alurnya pada dasarnya sama dengan petunjuk client-device
.
Saat mengklik Batal, modal berikut akan muncul:
Berikut ini, Anda akan melihat tangkapan layar untuk macOS Sequoia (Edge + Chrome) dan Windows 10 (Chrome) dengan authenticatorAttachment
tidak ditentukan dan Petunjuk User-agent WebAuthn diatur ke client-device
.
Saat mengklik Batal, modal berikut akan muncul:
Saat mengklik Batal, modal berikut akan muncul:
Saat mengklik Batal, modal berikut akan muncul:
Berikut ini, Anda akan melihat tangkapan layar untuk macOS Sequoia (Edge + Chrome) dan Windows 10 (Chrome) dengan authenticatorAttachment
tidak ditentukan dan Petunjuk User-agent WebAuthn diatur ke hybrid
.
Dengan diperkenalkannya petunjuk, developer sekarang dapat memberikan serangkaian preferensi dalam urutan prioritas menurun, yang menawarkan lebih banyak fleksibilitas.
Cuplikan kode di bawah ini memberitahu browser bahwa pengguna kemungkinan akan melakukan autentikasi menggunakan kunci keamanan perangkat keras, sehingga UI akan difokuskan sesuai.
Untuk kompatibilitas dengan user agent yang lebih lama, saat petunjuk ini digunakan dalam PublicKeyCredentialCreationOptions, authenticatorAttachment
harus diatur ke cross-platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, hints: ['security-key'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });
Petunjuk security
sangat berharga dalam kasus dengan jaminan keamanan tinggi di mana situs web / relying party hanya ingin mengizinkan kunci keamanan perangkat keras dan mendorong pengguna ke arah ini.
Dalam contoh ini, petunjuk menyarankan bahwa pengguna mungkin akan menggunakan authenticator platform bawaan perangkat saat ini.
Untuk kompatibilitas dengan user agent yang lebih lama, saat petunjuk ini digunakan dalam PublicKeyCredentialCreationOptions, authenticatorAttachment
harus diatur ke platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, residentKey: true, hints: ['client-device'], authenticatorSelection: { authenticatorAttachment: 'platform' } } });
Mengatur petunjuk client-device
bermanfaat jika ada beberapa passkey yang terkait dengan akun pengguna dan beberapa di antaranya mungkin tersedia di perangkat yang sedang login, sementara yang lain disimpan di perangkat yang berbeda. Jika sistem (passkey intelligence) mendeteksi bahwa pengguna yang mencoba login memiliki kemungkinan besar passkey lokal yang tersedia, maka petunjuk ini dapat diatur dalam PublicKeyCredentialRequestOptions sehingga pengguna tidak perlu melakukan satu klik tambahan untuk memilih passkey yang tepat.
Dalam contoh ini, petunjuk menyarankan bahwa pengguna mungkin akan menggunakan smartphone atau perangkat serupa untuk autentikasi.
Untuk kompatibilitas dengan user agent yang lebih lama, saat petunjuk ini digunakan dalam PublicKeyCredentialCreationOptions, authenticatorAttachment
harus diatur ke cross-platform
.
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, residentKey: true, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'cross-platform' } } });
Petunjuk hybrid
dapat membantu jika pengguna memiliki beberapa kunci dan sistem (passkey intelligence) mendeteksi bahwa pada perangkat saat ini, kemungkinan tidak ada passkey lokal yang tersedia. Untuk meningkatkan UX dan menghemat satu klik, Anda dapat mengatur petunjuk User-agent WebAuthn ini dan langsung meminta pengguna untuk melakukan autentikasi lintas perangkat (melalui kode QR dan Bluetooth). Selain itu, jika Anda mencoba membangun sistem passkey mobile-first, maka mengatur petunjuk ini sangat masuk akal.
Untuk mencoba sendiri berbagai opsi, kami merekomendasikan untuk melihat Passkeys Debugger.
Sangat penting untuk memahami bagaimana Petunjuk Kredensial Kunci Publik WebAuthn berinteraksi dengan parameter WebAuthn lainnya seperti authenticatorAttachment
dan credential transports
.
Pertama, penting untuk dicatat bahwa petunjuk ini bukan persyaratan yang ketat. Petunjuk ini tidak mengikat user-agent (browser) tetapi berfungsi sebagai panduan untuk memberikan pengalaman terbaik dengan memanfaatkan informasi kontekstual yang Anda miliki tentang permintaan tersebut. Ini berarti browser dapat memilih untuk mempertimbangkan petunjuk tersebut tetapi tidak diwajibkan untuk mengikutinya secara ketat.
Petunjuk diberikan sebagai sebuah array dalam urutan preferensi menurun. Urutan ini menentukan bagaimana browser harus memprioritaskannya:
Contoh:
hints: ['security-key', 'hybrid', 'client-device']
Dalam array ini:
security-key
.hybrid
.client-device
(authenticator platform pada perangkat klien).Petunjuk dapat bertentangan dengan informasi yang terkandung dalam authenticatorAttachment
dan credential transports
. Ketika ini terjadi, petunjuk lebih diutamakan. Ini menawarkan lebih banyak fleksibilitas dibandingkan dengan penggunaan authenticatorAttachment
yang sebelumnya ketat, yang membatasi authenticator hanya untuk platform
atau cross-platform
.
Contoh dengan Parameter yang Bertentangan:
const credential = await navigator.credentials.create({ publicKey: { challenge: /* your challenge here */, hints: ['hybrid'], authenticatorSelection: { authenticatorAttachment: 'platform' // Bertentangan dengan petunjuk } } });
Dalam kasus ini:
hybrid
.platform
, yang biasanya membatasi authenticator pada perangkat klien.authenticatorAttachment
, dengan fokus pada opsi hybrid
.Saat ini, petunjuk kredensial kunci publik WebAuthn hanya tersedia di Chrome (sejak versi 128). Sampai sekarang, Edge dan Safari telah mengindikasikan rencana untuk mengintegrasikan fitur ini, sementara Firefox belum mengonfirmasi jadwal rilisnya.
Browser | Chrome | Edge | Safari | Firefox |
---|---|---|---|---|
Ketersediaan | ✅ sejak versi 128 | ✅ sejak versi 128 | Direncanakan | t/a |
Penting untuk diingat bahwa di Chrome, parameter authenticatorAttachment
terus dihormati untuk saat ini. Ini berarti bahwa saat ini authenticatorAttachment
adalah faktor penentu, tidak peduli petunjuk mana yang diatur. Namun, kami berharap bahwa di versi Chrome mendatang, petunjuk kredensial kunci publik akan menjadi pendekatan yang lebih disukai dan satu-satunya.
Meskipun versi Chrome terbaru mendukung Petunjuk User-agent WebAuthn, petunjuk ini tidak dihormati oleh Windows 11 dan Windows Hello / Windows Security. Alasan utamanya adalah karena UI dikendalikan oleh sistem operasi (Windows Hello / Windows Security) itu sendiri.
Selain itu, untuk passkey yang disimpan di Google Password Manager dan disinkronkan ke Windows 11, Petunjuk User-agent WebAuthn tidak dihormati, karena autentikasi lokal terakhir di Windows 11 terjadi dengan Windows Hello / Windows Security. Dengan sinkronisasi passkey yang akan datang di Windows 11 melalui akun Microsoft, kami juga mengharapkan perbaikan untuk Windows 11 dan Petunjuk User-agent WebAuthn.
Di Windows 10, Petunjuk User-agent WebAuthn dihormati, karena UI WebAuthn ditangani oleh Chrome dan bukan oleh Windows Hello / Windows Security. Namun selama pengujian kami, kami tidak melihat efek untuk security-key
. Ketika petunjuk ini diatur, alurnya terlihat seperti alur untuk client-device
.
Petunjuk kredensial kunci publik (user-agent) WebAuthn membawa berbagai manfaat bagi developer dan pengguna. Fitur ini masih baru dan belum diluncurkan ke semua browser dan sistem operasi (per Oktober 2024).
Penting untuk menyadari batasan saat ini yang terutama datang dengan Windows 11. Di Windows 11, UI passkey ditangani oleh Windows Hello (modal keamanan Windows Hello) dan ini saat ini mengesampingkan dukungan Chrome / Edge untuk Petunjuk User-agent WebAuthn. Ini juga berlaku untuk passkey yang disinkronkan dari Google Password Manager ke Windows (di sini, petunjuk juga belum berpengaruh).
Ini berarti petunjuk kredensial kunci publik WebAuthn benar-benar hanya berfungsi di macOS dan Windows 10 (dari sistem operasi desktop utama).
Selain itu, per Oktober 2024, bahkan jika Chrome / Edge digunakan pada sistem operasi ini, jika authenticatorAttachment
diatur, maka ini juga akan mengesampingkan Petunjuk User-agent WebAuthn (seperti yang dinyatakan oleh Google).
Dari perspektif kasus penggunaan, kami melihat kasus penggunaan yang direkomendasikan berikut untuk mendapatkan nilai maksimal dari fitur baru ini.
Saat membangun backend dan passkey intelligence Anda, cobalah untuk menyertakan penggunaan petunjuk kredensial kunci publik yang tepat untuk memfasilitasi login dan menghemat klik yang tidak perlu bagi pengguna. Misalnya, jika sistem Anda mendeteksi bahwa pengguna login di perangkat di mana kemungkinan besar passkey lokal tersedia, gunakan petunjuk client-device
.
Jika pengguna mengakses situs web dari perangkat baru dan passkey intelligence Anda tahu bahwa passkey mungkin tersedia di perangkat seluler pengguna, atur petunjuk ke hybrid
, sehingga pengguna dapat dengan cepat memindai kode QR dan menggunakan passkey hybrid.
Tujuan utamanya di sini adalah untuk memberikan pengalaman pengguna yang lebih mulus dan intuitif. Dengan memandu browser tentang authenticator mana yang kemungkinan akan digunakan, developer dapat mengurangi kebingungan dan gesekan pengguna selama proses login. Alih-alih pengguna dibanjiri dengan opsi autentikasi yang tidak perlu, petunjuk memungkinkan browser untuk fokus pada pilihan yang paling relevan, yang mengarah pada pengalaman yang lebih cepat dan lebih lugas.
Perusahaan dengan jaminan keamanan tinggi atau organisasi pemerintah yang telah menstandarkan penggunaan kunci keamanan perangkat keras untuk autentikasi pengguna akan menemukan petunjuk kredensial passkey sangat berguna. Dengan menggunakan petunjuk security-key
, mereka dapat memastikan bahwa browser menampilkan opsi kunci keamanan perangkat keras secara menonjol.
Ini sangat berguna untuk organisasi besar di mana karyawan telah diberikan kunci keamanan perangkat keras dan di mana metode autentikasi lain (seperti authenticator platform) tidak diizinkan. Petunjuk security-key
memungkinkan perusahaan untuk mengunci alur autentikasi mereka tanpa membatasi fleksibilitas mereka untuk perbaikan di masa depan.
Petunjuk hybrid
bersinar dalam skenario di mana autentikasi lintas perangkat dan pendekatan mobile-first diinginkan atau ketika pengguna sering berpindah antar perangkat atau platform.
Contoh kasus penggunaan ini adalah aplikasi yang menghadap konsumen yang mengantisipasi sebagian besar penggunanya akan menggunakan smartphone mereka untuk autentikasi, baik melalui metode biometrik atau aplikasi authenticator berbasis web (passkey mobile-first). Dengan menentukan hybrid
sebagai petunjuk, developer memastikan bahwa UI browser mendorong penggunaan smartphone, meningkatkan kenyamanan dan aksesibilitas.
Petunjuk kredensial kunci publik WebAuthn menawarkan cara yang fleksibel untuk meningkatkan pengalaman pengguna selama autentikasi passkey. Mari kita tinjau kembali pertanyaan-pertanyaan dari pendahuluan dengan wawasan yang telah kita kumpulkan:
Apa itu Petunjuk Kredensial Kunci Publik WebAuthn?
Mereka adalah saran opsional yang diberikan oleh situs web / aplikasi untuk memandu klien tentang metode autentikasi yang paling mungkin digunakan pengguna – apakah itu kunci keamanan perangkat keras, authenticator platform, atau solusi hybrid seperti autentikasi lintas perangkat.
Mengapa kita memerlukan Petunjuk Kredensial Kunci Publik WebAuthn?
Mereka menyederhanakan proses autentikasi dengan mempersempit opsi yang disajikan kepada pengguna, mengurangi gesekan / klik yang tidak perlu, dan meningkatkan pengalaman secara keseluruhan.
Bagaimana cara kerja Petunjuk Kredensial Kunci Publik WebAuthn?
Developer menentukan petunjuk seperti security-key
, client-device
, atau hybrid
berdasarkan konteks, memungkinkan browser untuk memprioritaskan metode autentikasi yang relevan bagi pengguna. Meskipun petunjuk ini bukan persyaratan yang ketat, mereka membantu mengoptimalkan alur UI selama autentikasi.
Apa saja batasan dan kasus penggunaan yang direkomendasikan?
Saat ini, dukungan penuh untuk petunjuk ini terbatas pada Chrome dan Edge, dengan browser dan sistem operasi lain seperti Windows 11 menunjukkan tingkat kompatibilitas yang bervariasi. Kasus penggunaan yang paling efektif termasuk meningkatkan UX login, memberlakukan penggunaan kunci keamanan perangkat keras di lingkungan keamanan tinggi, dan memungkinkan autentikasi lintas perangkat dalam aplikasi mobile-first.
Sebagai kesimpulan, Petunjuk Kredensial Kunci Publik WebAuthn memungkinkan developer untuk menciptakan proses autentikasi yang lebih intuitif dan ramah pengguna dengan memandu browser ke opsi yang paling sesuai untuk setiap skenario pengguna. Meskipun masih berkembang, fitur ini dapat secara signifikan meningkatkan keamanan dan pengalaman pengguna dalam implementasi passkey.
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents