API web untuk federasi identitas yang menjaga privasi.
Apa yang dimaksud dengan FedCM?
FedCM (Pengelolaan Kredensial Gabungan) adalah pendekatan yang menjaga privasi untuk layanan identitas gabungan (seperti "Login dengan...") yang tidak mengandalkan cookie pihak ketiga atau pengalihan navigasi.
Status penerapan
- Status Platform Chrome
- FedCM dikirimkan di Chrome 108.
- Proposal FedCM terbuka untuk diskusi publik.
- FedCM belum didukung di browser lain.
- Mozilla mengimplementasikan prototipe untuk Firefox dan Apple telah menyatakan minat dan dukungan umum untuk bekerja sama dalam proposal FedCM.
Ke depannya, kami berencana untuk memperkenalkan sejumlah fitur baru berdasarkan masukan yang kami terima dari penyedia identitas (IdP), pihak tepercaya (RP), dan vendor browser. Meskipun kami berharap penyedia identitas akan mengadopsi FedCM, perlu diketahui bahwa FedCM masih merupakan API yang sedang dalam pengembangan aktif.
Untuk meminimalkan tantangan dalam men-deploy perubahan yang tidak kompatibel dengan versi lama, kami memiliki dua rekomendasi untuk penyedia identitas:
- Berlangganan newsletter kami tempat kami akan mengirimkan update seiring perkembangan API.
- Sebaiknya IdP mendistribusikan FedCM API menggunakan SDK JavaScript saat API berkembang, dan tidak menganjurkan RP untuk menghosting sendiri SDK. Hal ini akan memastikan IdP dapat melakukan perubahan seiring perkembangan API, tanpa harus meminta semua pihak tepercaya untuk men-deploy ulang.
Mengapa kita memerlukan FedCM?
Selama dekade terakhir, federasi identitas telah memainkan peran sentral dalam meningkatkan standar autentikasi di web, dalam hal kepercayaan, kemudahan penggunaan (misalnya, single sign-on tanpa sandi) dan keamanan (misalnya, peningkatan ketahanan terhadap serangan phishing dan credential stuffing) dibandingkan dengan nama pengguna dan sandi per situs.
Dengan federasi identitas, RP (pihak tepercaya) mengandalkan IdP (penyedia identitas) untuk memberi pengguna akun tanpa memerlukan nama pengguna dan sandi baru.
Sayangnya, mekanisme yang menjadi andalan federasi identitas (iframe, pengalihan, dan cookie) secara aktif disalahgunakan untuk melacak pengguna di seluruh web. Karena agen pengguna tidak dapat membedakan antara federasi identitas dan pelacakan, mitigasi untuk berbagai jenis penyalahgunaan membuat deployment federasi identitas menjadi lebih sulit.
Federated Credential Management API (FedCM) menyediakan abstraksi khusus kasus penggunaan untuk alur identitas gabungan di web, dengan mengekspos dialog yang dimediasi browser yang memungkinkan pengguna memilih akun dari IdP untuk login ke situs.
FedCM adalah perjalanan multi-langkah untuk membuat identitas di web menjadi lebih baik. Pada langkah pertama, kami berfokus untuk mengurangi dampak pembatasan cookie pihak ketiga pada identitas gabungan (lihat bagian Roadmap untuk beberapa langkah selanjutnya).
Apa yang diperkirakan akan terpengaruh?
Melalui upaya komunitas dan riset kami, kami mengetahui bahwa ada beberapa integrasi terkait federasi identitas yang terpengaruh oleh pembatasan cookie pihak ketiga:
- Logout Front-Channel OpenID Connect
- Pengelolaan Sesi OpenID Connect
- Perpanjangan token latar belakang berbasis iframe
- Widget login berbasis iframe
Sasaran pertama FedCM adalah mengurangi dampak pembatasan cookie pihak ketiga terhadap federasi identitas, dan berikut adalah area yang diperkirakan akan terpengaruh. Jika ada kasus penggunaan tambahan yang tidak tercantum, Anda dapat berinteraksi dan memberikan masukan.
FedCM sebagai sinyal tepercaya untuk API lainnya
Selain menangani identitas gabungan, FedCM juga berfungsi sebagai sinyal kepercayaan untuk Privacy Sandbox API lainnya.
Mulai Chrome 131, Storage Access API (SAA) menggunakan FedCM sebagai sinyal kepercayaan. Integrasi ini berguna untuk situs yang mengandalkan FedCM untuk autentikasi dan SAA untuk mengaktifkan iframe lintas origin guna mengakses penyimpanan yang diperlukan.
Saat pengguna melakukan autentikasi dengan FedCM, dengan keikutsertaan RP, konten IdP yang disematkan
di situs RP dapat memanggil metode requestStorageAccess()
untuk
mendapatkan akses penyimpanan secara otomatis
ke cookie tingkat teratas tanpa memerlukan perintah pengguna tambahan. Izin
akan otomatis diberikan hanya selama pengguna login dengan FedCM
dan status login FedCM aktif. Baca dokumentasi Storage Access API
untuk mengetahui detail selengkapnya.
Siapa yang harus menggunakan FedCM?
Kami berharap FedCM bermanfaat bagi Anda hanya jika semua kondisi berikut berlaku:
- Anda adalah penyedia identitas (IdP).
- Anda terpengaruh oleh pembatasan cookie pihak ketiga.
- RP Anda adalah situs pihak ketiga. Jika RP Anda adalah situs yang terkait secara signifikan, Anda mungkin akan lebih baik dilayani oleh Set Situs Terkait.
Anda adalah IdP
FedCM memerlukan dukungan dari penyedia identitas. Pihak tepercaya tidak dapat menggunakan FedCM secara independen. Jika Anda adalah RP, Anda dapat meminta IdP untuk memberikan petunjuk.
Anda terpengaruh oleh batasan cookie pihak ketiga
Anda hanya boleh menggunakan FedCM jika integrasi saat ini terpengaruh oleh pembatasan cookie pihak ketiga.
Jika tidak yakin apakah federasi identitas Anda akan terus berfungsi saat cookie pihak ketiga tidak tersedia, Anda dapat menguji efeknya di situs dengan memblokir cookie pihak ketiga di Chrome.
Jika tidak ada dampak yang dapat ditemukan pada federasi identitas Anda tanpa cookie pihak ketiga, Anda dapat terus menggunakan integrasi saat ini tanpa FedCM.
Jika Anda tidak yakin apa yang harus diperiksa, baca selengkapnya tentang fitur terkenal yang diperkirakan akan terpengaruh oleh pembatasan cookie pihak ketiga.
RP Anda adalah pihak ketiga
Jika Anda adalah penyedia identitas yang RP-nya memiliki hubungan pihak pertama dengan IdP, kami berharap Set Situs Terkait mungkin merupakan opsi yang lebih baik. Kumpulan Situs Terkait (RWS) adalah cara bagi organisasi untuk menyatakan hubungan antar-situs, sehingga browser mengizinkan akses cookie pihak ketiga yang terbatas untuk tujuan tertentu. Hal ini memungkinkan cookie pihak ketiga berfungsi di antara kumpulan situs yang terkait secara signifikan, meskipun cookie pihak ketiga dibatasi.
Bagaimana pengguna akan berinteraksi dengan FedCM?
Fokus utama FedCM adalah memitigasi dampak pembatasan cookie pihak ketiga. Pengguna dapat mengaktifkan atau menonaktifkan FedCM di setelan pengguna Chrome.
FedCM dirancang agar tidak bergantung pada protokol dan menawarkan fungsi terkait autentikasi berikut.
Lihat demo kami untuk melihat cara kerjanya.
Login ke pihak tepercaya
FedCM memiliki dua mode UI:
Mode pasif. Mode pasif tidak memerlukan interaksi pengguna agar perintah FedCM muncul. Saat pengguna membuka situs pihak tepercaya (RP), dialog login FedCM dapat muncul saat navigator.credentials.get()
dipanggil dan pengguna login ke IdP \
Mode aktif. Dalam mode aktif, interaksi pengguna (seperti klik tombol) diperlukan untuk memicu perintah FedCM.
Jika pengguna tidak memiliki akun di RP dengan IdP, dialog pendaftaran akan muncul dengan teks pengungkapan tambahan seperti persyaratan layanan dan kebijakan privasi RP jika disediakan.
Pengguna dapat menyelesaikan login dengan mengetuk Lanjutkan sebagai.... Jika berhasil, browser akan menyimpan fakta bahwa pengguna telah membuat akun gabungan di RP dengan IdP.
RP diharapkan dapat berfungsi di browser yang tidak mendukung FedCM. Pengguna harus dapat menggunakan proses login non-FedCM yang ada di browser tersebut. Pelajari lebih lanjut cara kerja login di FedCM.
Setelan untuk mengaktifkan atau menonaktifkan FedCM
Pengguna dapat mengaktifkan atau menonaktifkan FedCM dalam mode pasif. Hal ini tidak memengaruhi mode aktif karena permintaan login dimulai oleh gestur pengguna, dan browser harus membantu pengguna menyelesaikan alur login.
Desktop
Pengguna dapat mengaktifkan atau menonaktifkan FedCM untuk Chrome di desktop di chrome://settings/content/federatedIdentityApi
.
Android
Untuk mengaktifkan atau menonaktifkan FedCM di Chrome untuk Android, pengguna dapat membuka Setelan Chrome > Setelan situs > Login pihak ketiga, lalu mengubah tombol.
Periode tunggu perintah
Jika pengguna menutup UI secara manual, entri akan ditambahkan untuk sementara ke UI setelan dan UI tidak akan ditampilkan di situs yang sama selama jangka waktu tertentu. UI akan diaktifkan kembali setelah periode tersebut, tetapi durasinya akan diperluas secara eksponensial saat ditutup secara berurutan. Misalnya, di Chrome:
Waktu berturut-turut ditutup | Jangka waktu saat perintah FedCM dinonaktifkan |
---|---|
1 | Dua jam |
2 | Satu hari |
3 | Satu minggu |
4+ | Empat minggu |
Browser lain mungkin menentukan periode waktu cooldown mereka sendiri yang berbeda.
Pengguna dapat mengaktifkan kembali FedCM di RP secara manual dengan membuka halaman setelan atau mengklik UI PageInfo (ikon gembok di samping kolom URL) dan mereset izin.
Roadmap
Kami sedang berupaya menerapkan sejumlah perubahan pada FedCM. Lihat Update untuk mengetahui detail selengkapnya.
- Log Perubahan: Pembaruan Federated Credential Management API.
Ada beberapa hal yang kami ketahui yang masih perlu dilakukan, termasuk masalah yang kami dengar dari IdP, RP, dan vendor browser. Kami yakin kami tahu cara menyelesaikan masalah ini:
- Dukungan iframe lintas origin: IdP dapat memanggil FedCM dari dalam iframe lintas origin (update).
- Tombol yang dipersonalisasi: IdP dapat menampilkan identitas pengguna yang kembali di tombol login dari dalam iframe lintas origin milik IdP (update).
- Endpoint metrik: Memberikan metrik performa ke IdP.
Selain itu, ada masalah yang belum terselesaikan yang sedang kami pelajari secara aktif, termasuk proposal tertentu yang sedang kami evaluasi atau buat prototipenya:
- CORS: Kami berdiskusi dengan Apple dan Mozilla untuk memastikan peningkatan spesifikasi pengambilan FedCM.
- API Multi-IdP: Kami sedang mempelajari cara untuk mendukung beberapa IdP agar dapat berdampingan secara kooperatif di pemilih akun FedCM.
- IdP Sign-in Status API: Mozilla telah mengidentifikasi masalah serangan pengukuran waktu, dan kami sedang mempelajari cara agar IdP dapat secara proaktif memberi tahu browser tentang status login pengguna untuk memitigasi masalah tersebut. (update)
- Login ke IdP API: Untuk mendukung berbagai skenario, saat pengguna tidak login ke IdP, browser akan menyediakan UI bagi pengguna untuk login tanpa keluar dari RP.
Terakhir, ada hal-hal yang kami yakini masih perlu dilakukan, berdasarkan masukan dari Mozilla, Apple dan peninjau TAG. Kami sedang berupaya mengevaluasi solusi terbaik untuk pertanyaan terbuka berikut:
- Meningkatkan pemahaman pengguna dan mencocokkan intent: Seperti yang dinyatakan Mozilla, kami ingin terus mengeksplorasi berbagai formulasi UX dan area platform, serta kriteria pemicu.
- Atribut Identitas dan Pengungkapan Selektif: Seperti yang dinyatakan oleh Peninjau TAG, kami ingin menyediakan mekanisme untuk membagikan atribut identitas secara selektif (seperti email, rentang usia, nomor telepon, dan sebagainya).
- Meningkatkan Properti Privasi: Seperti yang disarankan Mozilla dalam posisi standarnya, kami ingin terus mempelajari mekanisme untuk menawarkan jaminan privasi yang lebih baik, seperti kebutaan IdP, ID terarah.
- Hubungan dengan WebAuthn: Seperti yang disarankan oleh Apple, kami sangat senang melihat progres kunci sandi dan berupaya memberikan pengalaman yang koheren dan terpadu antara FedCM, Sandi, WebAuthn, dan WebOTP.
- Status Login: Seperti yang disarankan Apple dengan Login Status API Privacy CG, kami memiliki intuisi yang sama bahwa status login pengguna adalah informasi kecil yang berguna yang dapat membantu browser membuat keputusan yang tepat, dan kami tidak sabar untuk melihat peluang apa yang muncul darinya. (update)
- Perusahaan dan Pendidikan: Seperti yang jelas di FedID CG, masih ada banyak kasus penggunaan yang tidak terlayani dengan baik oleh FedCM yang ingin kami kerjakan, seperti logout saluran depan (kemampuan IdP untuk mengirim sinyal ke RP untuk logout) dan dukungan untuk SAML.
- Hubungan dengan mDL/VC/dll: terus berupaya memahami cara mengakomodasi hal ini dalam FedCM, misalnya dengan Mobile Document Request API.
Menggunakan FedCM API
Anda memerlukan konteks yang aman (HTTPS atau localhost) di IdP dan RP di Chrome untuk menggunakan FedCM.
Untuk berintegrasi dengan FedCM, Anda perlu membuat file yang dikenal, file konfigurasi, dan endpoint untuk daftar akun, penerbitan pernyataan, dan (opsional) metadata klien. Dari sana, FedCM mengekspos JavaScript API yang dapat digunakan RP untuk login dengan IdP.
Untuk mempelajari cara menggunakan FedCM API, lihat panduan developer FedCM.
Berinteraksi dan memberikan masukan
- GitHub: Baca penjelasan, ajukan masalah, dan ikuti diskusi.
- Dukungan developer: Ajukan pertanyaan dan bergabunglah dalam diskusi di repo Dukungan Developer Privacy Sandbox.
Kepatuhan terhadap hukum ePrivacy
Menggunakan FedCM, baik sebagai IdP maupun RP, melibatkan penyimpanan informasi di peralatan terminal pengguna atau akses ke informasi yang sudah disimpan di dalamnya, dan karenanya merupakan aktivitas yang tunduk pada hukum ePrivacy di Wilayah Ekonomi Eropa (EEA) dan Inggris Raya yang umumnya memerlukan izin pengguna. Anda bertanggung jawab untuk menentukan apakah penggunaan FedCM Anda sangat diperlukan untuk menyediakan layanan online yang secara eksplisit diminta oleh pengguna, sehingga dikecualikan dari persyaratan izin. Untuk informasi selengkapnya, sebaiknya baca FAQ Kepatuhan terkait Privasi Privacy Sandbox kami.