Autentikasi pengguna yang lancar dan pribadi dengan FedCM: Pendekatan Seznam

Natalia Markoborodova
Natalia Markoborodova

Dipublikasikan: 8 September 2025

Para pemimpin industri di berbagai sektor memahami betapa pentingnya melindungi privasi sekaligus memberikan pengalaman pengguna yang luar biasa. Seznam berdedikasi untuk memberikan pengalaman pengguna dan privasi yang tidak terkompromi, serta berhasil mengintegrasikan Federated Credential Management (FedCM).

Perusahaan yang memperoleh manfaat dari FedCM

Berbagai organisasi di berbagai domain mengintegrasikan FedCM dengan solusi mereka. Karena FedCM dirancang untuk pengelolaan identitas gabungan, penyedia identitas (IdP) adalah penerima manfaat utamanya. Mereka menggunakannya untuk menawarkan pengalaman login yang lebih baik. Penyedia layanan e-commerce dan penyedia pembayaran, yang sebagian besar juga bertindak sebagai penyedia identitas, juga mengidentifikasi peluang untuk meningkatkan pengalaman pengguna melalui FedCM.

Seznam

Seznam adalah perusahaan teknologi dan penyedia identitas Eropa yang menjangkau 90% populasi Ceko. Hub ini berfungsi sebagai hub sosial, pengetahuan, dan konten. Seznam mengadopsi FedCM untuk memungkinkan pelanggan toko online yang beroperasi di platform partnernya login menggunakan akun Seznam mereka.

Dialog FedCM di eshop.starkl.com, yang meminta pengguna untuk login dengan akun Seznam mereka.
Dialog FedCM yang meminta pengguna untuk login dengan Seznam di situs partner.

Dengan FedCM, Seznam mencapai peningkatan signifikan dalam rasio login pengguna di jaringan partner, peningkatan pengalaman pengguna, dan alur identitas yang konsisten terlepas dari ketersediaan cookie pihak ketiga.

Motivasi

Seznam memilih untuk menerapkan FedCM karena beberapa keuntungan yang diakui:

  • FedCM dirancang dengan mempertimbangkan pengguna akhir, sehingga pengguna memiliki kontrol atas informasi yang diberikan kepada IdP. Hal ini sejalan dengan visi Seznam untuk menciptakan lingkungan yang aman dan privat bagi penggunanya.
  • FedCM adalah fitur browser bawaan dan kompatibel dengan pengalaman login Seznam yang sudah ada, yang menggunakan standar OAuth 2.0.
  • FedCM adalah pendekatan penggabungan identitas yang mengutamakan privasi. Misalnya, kunjungan pengguna ke pihak tepercaya (RP) hanya dibagikan kepada IdP jika pengguna login. Hal ini sejalan dengan pandangan Seznam tentang bisnis berkelanjutan.

Detail implementasi

Seznam menerapkan FedCM sebagai lapisan di atas solusi OAuth yang sudah ada. Dalam arsitektur ini, alur FedCM mengirimkan kode otorisasi OAuth dengan aman dari IdP ke RP.

Alur FedCM, yang menampilkan token FedCM yang ditukar dengan kode otorisasi OAuth di sisi IdP
Alur FedCM yang terintegrasi dengan OAuth. Lihat kode diagram.

Upaya penerapan

Seznam mendapati bahwa penerapan FedCM mudah dan selaras dengan pendekatan yang ada. Riset dan penerapan API-nya berlangsung selama sebulan dan memerlukan dua developer. FedCM diluncurkan ke produksi dalam waktu kurang dari dua bulan. Prosesnya bersifat berulang, dengan waktu yang cukup banyak digunakan untuk mempelajari API.

Tantangan

Sebagai pengguna awal, Seznam mengidentifikasi beberapa tantangan dan memberikan masukan berharga yang membantu mematangkan API.

Dukungan untuk beberapa penyedia identitas

Seznam tertarik dengan dukungan FedCM untuk beberapa penyedia identitas. Dengan fitur ini, pengguna dapat memilih antara Akun Google atau Seznam di RP partner. Namun, saat Seznam pertama kali mendekati penerapan FedCM, fitur tersebut masih dalam tahap awal penerapan, dan developer harus mendaftar ke uji coba origin dan menggunakan token untuk mengaktifkan fitur bagi pengguna. Oleh karena itu, Seznam memilih untuk menunggu fitur tersebut diluncurkan di Chrome Stabil.

Fitur ini tersedia mulai Chrome 136, dan developer dapat mengonfigurasi dukungan untuk beberapa penyedia identitas. Misalnya, untuk mendukung penyedia identitas Seznam dan Google, IdP dapat menyertakan kedua penyedia dalam satu panggilan get(), dan RP dapat melakukannya secara terpisah:

  // Executed on the RP's side:
    const credential = await navigator.credentials.get({
      identity: {
        providers: [
          {
            // IdP1: Seznam config file URL
            configURL: 'https://szn.cz/.well-known/web-identity',
            clientId: '123',
          },
          {
            // Allow Google Sign-in
            configURL: 'https://accounts.google.com/gsi/fedcm.json',
            clientId: '456',
          },
        ],
      },
    });

Seznam menunjukkan bahwa fitur ini akan menjadi bagian dari solusinya. Selain itu, tim FedCM menerapkan dukungan untuk beberapa SDK, dengan dukungan untuk beberapa panggilan get().

DNS Pribadi

Seznam mengalami masalah terkait konfigurasi jaringannya selama fase pengujian. Server IdP pengujiannya berada dalam jaringan pribadi, yang hanya dapat diakses melalui DNS pribadi. Penyiapan ini umum untuk lingkungan pengujian dan pengembangan internal sebelum eksposur publik.

Namun, penyiapan ini menimbulkan tantangan: karena file well-known harus ditayangkan dari eTLD+1, dan domain pengembangan pribadi tidak terdaftar dalam Daftar Suffix Publik, browser tidak akan mengirim permintaan untuk mengambil file well-known yang dihosting di domain pengembangan:

  • login.idp.example: contoh domain produksi.
  • idp.example/.well-known/web-identity: contoh file well-known dalam produksi.
  • login.dev.idp.example: contoh domain pengembangan.
  • login.dev.idp.example/.well-known/web-identity: contoh file well-known di lingkungan pengembangan.

Jika penerapan FedCM dihosting di domain pribadi, permintaan browser ke file well-known akan menghasilkan error ini:

The fetch of the well-known file resulted in a network error: ERR_NAME_NOT_RESOLVED

Anda dapat mengatasi error ini dengan mengaktifkan tanda #fedcm-without-well-known-enforcement Chrome. Jika tanda ini diaktifkan, browser akan melewati pengambilan file well-known untuk tujuan pengujian. Pelajari cara mengaktifkan tanda pengujian di Chrome.

Pengungkapan informasi kustom

Seznam juga ingin menyertakan informasi tambahan bersama desain UI FedCM awal. Dialog FedCM standar menampilkan pesan tetap kepada pengguna, yang menyatakan bahwa data tertentu—biasanya gambar profil, nama, dan alamat email pengguna—dibagikan kepada RP.

Tim FedCM telah menerapkan masukan dan memperluas API untuk memungkinkan penyesuaian pengungkapan yang ditampilkan kepada pengguna. Misalnya, dengan fitur Lanjutkan di, IdP dapat mengalihkan pengguna ke halaman kustom untuk meminta informasi atau izin tambahan. Fitur Parameter kustom dan Kolom, yang didukung mulai Chrome 132, memungkinkan penyesuaian lebih lanjut.

Halaman IdP yang menunjukkan bahwa pengguna harus memberikan izin tambahan untuk melanjutkan pendaftaran FedCM, seperti melihat dan mendownload file Drive dan acara kalender.
Pengguna dapat meninjau dan memberikan izin tambahan yang diteruskan oleh RP ke endpoint pernyataan ID dengan API`Parameters`.

Validasi asal Pihak Tepercaya

Server IdP harus memvalidasi header HTTP Origin pada permintaan FedCM yang masuk untuk memastikan permintaan tersebut cocok dengan origin yang telah didaftarkan RP sebelumnya ke IdP. Hal ini memastikan bahwa permintaan pernyataan ID FedCM berasal dari RP yang sah, dan bukan dari penyerang yang menggunakan client_id.

Seznam memiliki kasus mendesak: saat RP partnernya mendaftar ke Seznam, Seznam tidak meminta data asal RP. Artinya, asal RP tidak dapat diverifikasi.

Integrasi FedCM Seznam dibangun berdasarkan solusi OAuth yang ada. Cara ini mengambil jalur alternatif untuk memvalidasi client_id dan client_secret RP guna memastikan solusi tetap aman tanpa memeriksa asal.

Domain yang terlihat pengguna untuk penyedia identitas

Infrastruktur autentikasi pengguna Seznam beroperasi terutama di domain szn.cz, tempat endpoint IdP yang diperlukan untuk FedCM dihosting. Namun, identitas perusahaan utamanya dan domain yang digunakan pengguna untuk mengenali dan memercayai layanannya secara luas adalah seznam.cz.

Dialog FedCM menampilkan domain asal sebenarnya dari endpoint IdP: szn.cz. Pengguna yang sudah familiar dengan merek seznam.cz mungkin akan merasa bingung dan ragu saat diminta untuk login dengan domain szn.cz yang kurang dikenal selama proses login.

Mulai Chrome 141, FedCM tidak mengizinkan menampilkan domain yang berbeda dengan domain yang menghosting penerapan IdP. Pembatasan ini merupakan pilihan desain yang disengaja dan dimaksudkan untuk memastikan transparansi pengguna. Namun, tim FedCM menyadari tantangan yang mungkin ditimbulkan oleh batasan ini dan sedang mendiskusikan potensi penyesuaian.

Dampak

Dengan FedCM API, Seznam kini dapat menyediakan alur otorisasi sekali ketuk kepada pengguna partner. Dokumen ini menyoroti manfaat UX FedCM dibandingkan dengan metode autentikasi lainnya.

Meskipun Seznam mencatat peningkatan signifikan dalam engagement pengguna di situs yang beralih ke login FedCM, Seznam tidak melakukan analisis komprehensif untuk mengisolasi dampak langsung yang tepat dari faktor lain. Sebelum integrasi FedCM, penerapan memungkinkan checkout tamu menggunakan email yang di-hash dengan izin untuk identifikasi pengguna. Tantangan dalam melakukan analisis tersebut adalah memperkirakan apakah konversi pengguna dapat diatribusikan ke FedCM, atau apakah pengguna akan menyelesaikan pembelian menggunakan checkout tamu. Hipotesis Seznam menunjukkan bahwa kemudahan penggunaan FedCM yang lebih baik mungkin telah berkontribusi pada rasio konversi yang lebih tinggi ini.

Kesimpulan

Seznam berhasil menerapkan FedCM, yang menyediakan alur otorisasi alternatif bersama dengan solusi OAuth yang ada. Meskipun Seznam menghadapi beberapa tantangan terkait dukungan penyedia identitas, penyiapan DNS pribadi, penyesuaian teks pengungkapan, validasi asal pihak tepercaya, dan tampilan domain yang ditampilkan kepada pengguna, API ini telah matang sejak penerapannya. Tim FedCM telah menggabungkan masukan dari Seznam dan pengadopsi awal lainnya, sehingga memungkinkan alat yang lebih baik untuk mengatasi tantangan ini. Sebagai langkah selanjutnya, Seznam berencana mengimplementasikan dukungan FedCM untuk beberapa penyedia identitas