Chrome mendukung autentikasi ulang otomatis di FedCM
Federated Credential Management API (FedCM) adalah API web untuk federasi identitas yang menjaga privasi. Dengan federasi identitas, RP (pihak tepercaya) mengandalkan IdP (penyedia identitas) untuk memberi pengguna akun tanpa memerlukan nama pengguna dan sandi baru.
FedCM memungkinkan browser memahami konteks tempat RP dan IdP bertukar informasi. Banner ini memberi tahu pengguna tentang informasi dan tingkat hak istimewa yang dibagikan serta mencegah penyalahgunaan yang tidak disengaja. FedCM telah tersedia di Chrome sejak versi 108.
Di Chrome 115, FedCM mendapatkan dukungan untuk autentikasi ulang otomatis yang meningkatkan pengalaman pengguna dan memungkinkan autentikasi ulang yang lebih sederhana ke RP setelah izin awal.
Autentikasi ulang otomatis
Saat ini, setelah pengguna membuat akun gabungan di RP dengan IdP melalui FedCM API, saat berikutnya mereka mengunjungi situs, mereka harus melalui langkah-langkah yang sama di antarmuka pengguna. Artinya, pengguna harus mengonfirmasi ulang secara eksplisit dan manual untuk melakukan autentikasi ulang dan melanjutkan alur login.
Meskipun pengalaman pengguna eksplisit masuk akal sebelum pengguna membuat akun gabungan untuk mencegah pelacakan (yang merupakan salah satu sasaran utama FedCM), pengalaman ini tidak perlu rumit setelah pengguna melakukannya sekali: setelah pengguna memberikan izin untuk mengizinkan komunikasi antara RP dan IdP, tidak ada manfaat privasi atau keamanan untuk menerapkan konfirmasi pengguna eksplisit lain untuk sesuatu yang telah mereka akui sebelumnya. Itulah sebabnya kami memperkenalkan UX yang lebih sederhana yang dapat dipilih RP untuk pengguna yang kembali.
Autentikasi ulang otomatis FedCM (singkatnya "auto-reauthn") dapat memungkinkan pengguna melakukan autentikasi ulang secara otomatis, saat mereka kembali setelah autentikasi awal menggunakan FedCM. "Autentikasi awal" di sini berarti pengguna membuat akun atau login ke situs RP dengan mengetuk tombol "Lanjutkan sebagai..." pada dialog login FedCM untuk pertama kalinya di instance browser yang sama.

Pilih opsi untuk autentikasi ulang otomatis
Meskipun kami memperkenalkan autentikasi ulang otomatis untuk memberikan UX yang lebih baik dan selaras dengan
spesifikasi, pengalaman pengguna default akan berbeda tanpa perubahan
kode apa pun. Dengan tersedianya autentikasi ulang otomatis, browser akan mengubah perilakunya bergantung
pada opsi yang Anda pilih di opsi mediation
yang disediakan developer dengan
navigator.credentials.get()
.
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: "https://idp.example/fedcm.json",
clientId: "1234",
}],
},
mediation: 'optional', // this is the default
});
mediation
adalah properti di Credential Management
API,
dan berperilaku dengan cara
yang sama seperti
yang dilakukan untuk
PasswordCredential
dan
FederatedCredential
dan juga didukung sebagian oleh
PublicKeyCredential. Properti ini menerima empat nilai berikut:
'required'
: Selalu memerlukan mediasi untuk melanjutkan, misalnya, mengklik tombol "Lanjutkan" di UI. Pilih opsi ini jika pengguna Anda diharapkan untuk memberikan izin secara eksplisit setiap kali mereka perlu diautentikasi.'optional'
(default): Otomatis melakukan autentikasi ulang jika memungkinkan, memerlukan mediasi jika tidak. Sebaiknya pilih opsi ini di halaman login.'silent'
: Otomatis melakukan autentikasi ulang jika memungkinkan, gagal secara diam-diam tanpa memerlukan mediasi jika tidak. Sebaiknya pilih opsi ini di halaman selain halaman login khusus, tetapi di halaman tempat Anda ingin pengguna tetap login—misalnya, halaman item di situs pengiriman atau halaman artikel di situs berita.'conditional'
: Digunakan untuk WebAuthn dan saat ini tidak tersedia untuk FedCM.
Dengan panggilan ini, autentikasi ulang otomatis terjadi dalam kondisi berikut:
- FedCM dapat digunakan. Misalnya, pengguna belum menonaktifkan FedCM secara global atau untuk RP di setelan.
- Pengguna hanya menggunakan satu akun dengan FedCM API untuk login ke situs di browser ini.
- Pengguna login ke IdP dengan akun tersebut.
- Autentikasi ulang otomatis tidak terjadi dalam 10 menit terakhir.
- RP belum memanggil
navigator.credentials.preventSilentAccess()
setelah login sebelumnya.
Jika kondisi di atas terpenuhi, upaya untuk mengautentikasi ulang pengguna secara otomatis akan dimulai segera setelah navigator.credentials.get()
FedCM dipanggil.
Menerapkan mediasi dengan preventSilentAccess()
Mengautentikasi ulang pengguna secara otomatis segera setelah mereka logout tidak akan memberikan pengalaman pengguna yang sangat baik. Itulah sebabnya FedCM memiliki periode tenang 10 menit setelah autentikasi ulang otomatis untuk mencegah perilaku ini. Artinya, autentikasi ulang otomatis terjadi maksimal sekali dalam setiap 10 menit, kecuali jika pengguna login kembali dalam 10 menit. RP harus memanggil navigator.credentials.preventSilentAccess() untuk meminta browser secara eksplisit untuk menonaktifkan autentikasi ulang otomatis saat pengguna logout dari RP secara eksplisit, misalnya, dengan mengklik tombol logout.
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
Pengguna dapat memilih untuk tidak mengaktifkan autentikasi ulang otomatis di setelan
Pengguna dapat memilih untuk menonaktifkan otorisasi ulang otomatis dari menu setelan:
- Di Chrome desktop, buka
chrome://password-manager/settings
> Login secara otomatis. - Di Chrome Android, buka Setelan > Pengelola Sandi > Ketuk gear di sudut kanan atas > Login otomatis.
Dengan menonaktifkan tombol, pengguna dapat memilih untuk tidak menggunakan perilaku autentikasi ulang otomatis. Setelan ini disimpan dan disinkronkan di seluruh perangkat, jika pengguna login ke Akun Google di instance Chrome dan sinkronisasi diaktifkan.
Berikan masukan
Jika menguji FedCM, Anda dapat membagikan masukan atau masalah yang Anda alami di crbug.com di bagian komponen "Blink>Identity>FedCM".
Foto oleh Noah Samuel Franz di Unsplash