Organisasi dan developer menghadapi kendala yang signifikan saat memindahkan pengguna dari sandi ke kunci sandi. Meskipun kunci sandi memberikan upgrade keamanan yang penting, proses pembuatan manual sering kali menimbulkan hambatan. Dalam lingkungan e-commerce bervolume tinggi, setiap detik keraguan sangat penting, karena setiap penundaan berpotensi mengganggu jalur pembelian dan menyebabkan pengabaian keranjang. Selain itu, menyinkronkan status kredensial antara server dan perangkat pengguna sangat penting untuk mencegah error login dan frustrasi pengguna.
adidas menghadapi tantangan yang sama persis. Sasaran utama mereka adalah menghilangkan hambatan dari proses login dan menyederhanakan pengalaman di seluruh platform dan perangkat web dan aplikasi. Meskipun keamanan tetap menjadi prioritas utama, tim produk berfokus untuk membuat alur pendaftaran dan login semulus mungkin dengan kunci sandi.
Untuk mengatasi tantangan ini, adidas menerapkan Conditional Create untuk mengupgrade pengguna sandi ke kunci sandi secara otomatis dan Signal API untuk menjaga kredensial tetap konsisten. Selain itu, mereka men-deploy Permintaan Asal Terkait untuk mendukung penggunaan lintas-domain jika diperlukan.
Hasil
Strategi adidas untuk mengotomatiskan pembuatan kunci sandi dan menjaga keandalan kredensial memberikan hasil yang langsung terukur dalam adopsi dan keandalan login:
- Tingkat penggunaan yang tinggi: Sejak meluncurkan proses login kunci sandi, adidas telah mencapai tingkat pembuatan kunci sandi keseluruhan sebesar 47%. Hal ini mencakup Pembuatan Bersyarat otomatis dan keikutsertaan yang dimulai pengguna saat diminta selama alur pendaftaran atau login. Penggunaan ini sangat tinggi di perangkat seluler, yang memiliki rasio konversi 52% (dibandingkan dengan 34% di desktop).
- Upgrade yang dipercepat menggunakan Pembuatan Bersyarat: Selain perintah eksplisit, adidas memperoleh peningkatan 8% dalam pembuatan kunci sandi dengan mengupgrade pengguna sandi yang ada di latar belakang secara lancar, tanpa memerlukan tindakan pengguna manual.
- Keandalan login yang hampir sempurna: Kunci sandi memberikan rasio keberhasilan lebih dari 99% setelah login dimulai. Hal ini merupakan peningkatan keamanan yang signifikan dibandingkan dengan tingkat keberhasilan sandi historis adidas sebesar 70%, yang sering kali berkurang karena kesalahan manusia seperti salah ketik atau lupa kredensial.
- Meminimalkan gesekan dan kesalahan: Dengan men-deploy Signal API untuk menyinkronkan kredensial perangkat dan server secara otomatis, adidas berhasil menjaga kesalahan
PASSKEY_NOT_FOUNDhingga kurang dari 0,3% dari upaya login. Hal ini secara efektif menghilangkan kekesalan pengguna akibat kunci sandi yang tidak terkait.
47 %
Rasio pembuatan kunci sandi
8 %
Peningkatan pembuatan kunci sandi menggunakan Pembuatan Bersyarat
>99 %
Tingkat keberhasilan login dengan kunci sandi setelah dimulai
<0,3 %
Tingkat error kunci sandi yang tidak terkait
Cara adidas memecahkan masalah
Berikut cara adidas mengatasi tantangan ini:
1. Mempercepat adopsi dengan Pembuatan Bersyarat
Untuk membantu pengguna mengadopsi kunci sandi dengan lancar, adidas menerapkan Pembuatan Bersyarat. Fitur ini memungkinkan situs otomatis membuat kunci sandi saat pengguna login dengan sandi yang disimpan di pengelola sandi mereka. Untuk memastikan tingkat keberhasilan tertinggi, sistem memanggil API segera setelah login berhasil sehingga sistem mengenali penggunaan sandi sebagai yang terbaru.
const cred = await navigator.credentials.create({
publicKey: options,
mediation: 'conditional' // Enables automatic passkey creation
});
adidas mengintegrasikan fitur ini dengan logika kustom yang pertama-tama memvalidasi lingkungan pengguna. Secara khusus, sistem akan memeriksa apakah fitur Pembuatan Bersyarat didukung oleh browser. Sistem juga menghormati preferensi pengguna dengan menekan perintah jika pengguna telah melewati pembuatan kunci sandi tiga kali dalam enam bulan terakhir.
Jika lingkungan kompatibel, sistem akan mencoba membuat kunci sandi di latar belakang, segera setelah autentikasi pengguna berhasil. Waktu
tertentu ini meningkatkan kemungkinan prasyarat terpenuhi. Yang penting, penerapan ini menangani pengecualian WebAuthn dengan filosofi "fail-open" untuk selalu memprioritaskan akses pengguna. Jika browser melaporkan InvalidStateError, yang menunjukkan bahwa kunci sandi kemungkinan sudah ada, sistem akan menghentikan pembuatan di latar belakang dan langsung membuat pengguna login. Sebaliknya, jika NotAllowedError
terjadi, yang berarti kondisi tertentu untuk pembuatan otomatis tidak terpenuhi,
sistem akan mendeteksi status ini dan mengarahkan pengguna ke layar "Pengumpul Kunci Sandi"
untuk memandu mereka melalui proses penyiapan manual. Dengan membedakan batasan teknis dan perilaku pengguna ini, adidas memastikan bahwa upaya peningkatan kualitas kunci sandi meningkatkan pengalaman login, bukan mengganggunya.
2. Memastikan keandalan dengan Signal API
Saat pengguna mengelola kredensial mereka di seluruh perangkat, inkonsistensi dapat muncul. Misalnya, kunci sandi mungkin dihapus dari server, tetapi tetap ada di perangkat pengguna. Untuk mencegah kegagalan login yang disebabkan oleh kredensial "phantom" ini, adidas menerapkan Signal API. API ini memungkinkan server memberi sinyal status kredensial ke penyedia kunci sandi.
adidas menggunakan ketiga metode Signal API yang tersedia untuk mempertahankan konsistensi ini. Daripada menebak kredensial mana yang harus dihapus, adidas memetakan peristiwa siklus proses pengguna tertentu ke panggilan API yang sesuai:
- Kegagalan pendaftaran: Jika kunci sandi dibuat di klien, tetapi gagal
mendaftar di backend, adidas menggunakan
signalUnknownCredentialuntuk segera menghapus kredensial yang tidak terkait. - Login tidak valid: Jika pengguna mencoba login dengan kunci sandi yang dicabut atau sudah tidak berlaku,
signalUnknownCredentialakan memberi sinyal kepada penyedia untuk menyembunyikannya. - Pengelolaan pengguna: Saat pengguna menghapus kunci sandi secara eksplisit di setelan akunnya,
signalAllAcceptedCredentialsmenyinkronkan daftar yang diizinkan. Hal ini memastikan kunci sandi yang dihapus tidak lagi ditawarkan. - Pembaruan akun: Saat pengguna mengubah email atau nama penggunanya,
signalCurrentUserDetailsakan memperbarui metadata di perangkat agar cocok dengan server.
// Detect authentication failure due to lack of the credential
if (result.status === 404) {
if (PublicKeyCredential.signalUnknownCredential) {
await PublicKeyCredential.signalUnknownCredential({
rpId: "adidas.com",
credentialId: "..." // base64url encoded credential ID
});
}
}
3. Menyatukan akses dengan Permintaan Origin Terkait dan Digital Asset Links
Untuk lebih mendukung arsitektur multi-pasar mereka, adidas menerapkan Permintaan Asal Terkait. Meskipun sebagian besar pengguna tetap menggunakan pasar lokal mereka (misalnya, adidas.nl), konfigurasi ini memungkinkan pengguna yang berpindah antar-region menggunakan kembali kunci sandi di seluruh domain yang diizinkan dengan menargetkan satu ID Pihak Tepercaya (adidas.com).
Untuk mengaktifkannya, adidas menghosting file konfigurasi webauthn di domain ID Pihak Tepercaya (RP ID) utamanya. File ini berisi daftar yang diizinkan secara eksplisit untuk asal yang diizinkan menggunakan adidas.com untuk pendaftaran dan autentikasi kunci sandi. Dengan menentukan hubungan ini, browser dapat memverifikasi bahwa kunci sandi yang dibuat di satu situs regional valid untuk digunakan di situs lain, sehingga memberikan pengalaman yang lancar bagi pengguna global.
// https://www.adidas.com/.well-known/webauthn
{
"origins": [
"https://www.adidas.fi",
"https://www.adidas.nl",
// ... abridged (the full file lists 50+ regional domains)
]
}
Yang penting, adidas juga menyediakan dukungan kunci sandi yang lancar dalam aplikasi seluler Android mereka menggunakan Digital Asset Links. Karena aplikasi menggunakan WebView yang dihosting di idp.adidas.com untuk autentikasi, Digital Asset Links diperlukan untuk membuat hubungan tepercaya antara aplikasi Android dan ID Pihak Tepercaya (adidas.com). Verifikasi ini memungkinkan aplikasi mengakses kunci sandi yang sama yang digunakan di web, sehingga menciptakan pengalaman login yang lancar dan terpadu di seluruh platform.
Untuk mencapainya, adidas menghosting file Digital Asset Links (assetlinks.json) di domain web masing-masing. File ini secara publik mendeklarasikan asosiasi kriptografi dengan aplikasi Android mereka. Demikian pula, untuk mendukung ekosistem iOS, adidas menggunakan Associated Domains.
Dengan menghosting file apple-app-site-association, mereka membuat koneksi aman yang memungkinkan aplikasi iOS mereka menggunakan kunci sandi dengan aman di tampilan web.
// https://www.adidas.fi/.well-known/assetlinks.json
[
{
"relation": [
"delegate_permission/common.handle_all_urls",
"delegate_permission/common.get_login_creds"
],
"target": {
"namespace": "android_app",
"package_name": "com.adidas.app",
"sha256_cert_fingerprints": [
"B2:55:43:78:89:F6:F6:FD:BB:16:5C:43:EE:66:14:18:D4:E8:33:6D:3A:1F:68:86:C3:A8:7C:89:2B:51:45:96",
"..."
]
}
},
// ... abridged
]
Apa langkah selanjutnya bagi adidas?
Dengan fondasi yang kuat berupa upgrade otomatis dan kredensial yang disinkronkan yang sudah aktif di adidas.fi dan adidas.nl, adidas akan men-deploy penyiapan yang lancar ini ke semua pasar global lainnya paling lambat akhir April 2026. Selain itu, adidas sedang menjajaki pengalaman login yang lebih lancar dengan menguji uji coba origin mediasi langsung. Rencana mendatang mencakup memungkinkan pengguna membuat akun secara langsung dengan kunci sandi. Hal ini menghapus persyaratan saat ini untuk mendaftar dengan metode alternatif terlebih dahulu. Tim juga menyelidiki "pemicuan cerdas" untuk memanggil dialog kunci sandi sistem secara langsung pada langkah kedua proses login. Hal ini menghilangkan kebutuhan akan klik tambahan jika ada keyakinan tinggi bahwa pengguna memiliki kunci sandi yang tersedia di perangkatnya saat ini.
Mengapa hal ini penting bagi Anda
Pergeseran ke autentikasi tanpa sandi berhasil jika pengalaman pengguna tetap lancar. Dengan menerapkan Pembuatan Bersyarat, Anda dapat memigrasikan pengguna dari sandi dengan mudah tanpa mengganggu kebiasaan mereka. Dengan menggunakan Permintaan Asal Terkait, Anda dapat membagikan kunci sandi tersebut di seluruh domain Anda, sehingga pengguna dapat mengakses seluruh ekosistem Anda dengan lancar menggunakan satu kunci sandi. Terakhir, menggabungkan hal ini dengan Signal API memastikan pengalaman terpadu tanpa sandi Anda tetap andal dan bebas error.