Mendukung autentikasi ulang otomatis di FedCM

Chrome mendukung autentikasi ulang otomatis di FedCM

Federated Credential Management API (FedCM) adalah API web untuk penggabungan identitas yang menjaga privasi. Dengan penggabungan identitas, RP (pihak tepercaya) mengandalkan IdP (penyedia identitas) untuk memberikan akun tanpa memerlukan nama pengguna dan {i>password<i} baru.

FedCM memungkinkan browser memahami konteks RP dan IdP bertukar informasi. Hal ini memberi tahu pengguna tentang informasi dan hak istimewa dibagikan dan mencegah penyalahgunaan yang tidak diinginkan. FedCM telah tersedia di Chrome sejak versi 108.

Di Chrome 115, FedCM mendapatkan dukungan untuk autentikasi ulang otomatis yang meningkatkan dialami pengguna dan memungkinkan otentikasi ulang yang lebih sederhana ke RP setelah persetujuan awal.

Autentikasi ulang otomatis

Saat ini, setelah pengguna membuat akun gabungan di RP dengan IdP melalui FedCM API, saat berikutnya mereka mengunjungi {i>website<i} yang mereka butuhkan untuk melakukan langkah-langkah yang sama dalam antarmuka pengguna. Artinya, pengguna harus mengonfirmasi ulang secara eksplisit dan manual untuk melakukan autentikasi ulang dan melanjutkan proses login.

Walaupun pengalaman pengguna yang eksplisit bisa diterima sebelum pengguna membuat akun gabungan untuk mencegah pelacakan (yang merupakan salah satu sasaran utama FedCM), rumit sekali setelah pengguna melakukannya satu kali: setelah pengguna memberikan izin untuk memungkinkan komunikasi antara RP dan IdP, tidak ada manfaat privasi atau keamanan untuk memberlakukan pengguna eksplisit lainnya konfirmasi untuk sesuatu yang telah mereka akui sebelumnya. Itu sebabnya kami memperkenalkan UX yang lebih sederhana yang dapat dipilih oleh RP untuk digunakan pengguna yang kembali.

FedCM autentikasi ulang otomatis (singkatnya ("auto-reauthn") memungkinkan pengguna melakukan otentikasi ulang secara otomatis, saat mereka kembali setelah otentikasi awal dengan menggunakan FedCM. "Nilai autentikasi" di sini berarti pengguna membuat akun atau masuk ke RP situs Anda dengan mengetuk tombol "Lanjutkan sebagai..." pada dialog login FedCM untuk pertama kalinya pada instance browser yang sama.

Dialog yang diketuk pengguna untuk membuat akun atau mengautentikasi.
Dialog yang diketuk pengguna untuk membuat akun atau untuk melakukan autentikasi.

Pilih opsi autentikasi ulang otomatis

Sementara kami memperkenalkan autentikasi ulang otomatis untuk memberikan UX yang lebih baik dan untuk menyelaraskan dengan spesifikasi, pengalaman pengguna {i>default<i} akan berbeda tanpa kode apa pun berubah. Dengan tersedianya autentikasi ulang otomatis, browser akan mengubah perilakunya tergantung pada opsi yang Anda pilih di opsi mediation yang disediakan developer 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 Pengelolaan Kredensial API, perilakunya dalam hal yang sama seperti itu lakukan untuk PasswordCredential dan FederatedCredential dan didukung sebagian oleh PublicKeyCredential juga. Properti ini menerima empat nilai berikut:

  • 'required': Selalu mewajibkan mediasi untuk dilanjutkan, misalnya, mengklik "Lanjutkan" pada UI. Pilih opsi ini jika pengguna Anda diminta memberikan izin akses secara eksplisit setiap kali mereka perlu diotentikasi.
  • 'optional'(default): Autentikasi ulang otomatis jika memungkinkan, memerlukan mediasi jika tidak. Rab sebaiknya pilih opsi ini di halaman login.
  • 'silent': Autentikasi ulang otomatis jika memungkinkan, gagal secara otomatis tanpa memerlukan mediasi jika tidak. Sebaiknya pilih opsi ini pada halaman selain halaman {i>sign-in<i} khusus, tetapi Anda ingin membuat pengguna tetap {i>login<i}—untuk misalnya, halaman item di situs pengiriman atau halaman artikel tentang berita situs Anda.
  • 'conditional': Digunakan untuk WebAuthn dan tidak tersedia untuk FedCM saat ini.

Dengan panggilan ini, autentikasi ulang otomatis terjadi dalam kondisi berikut:

  • FedCM tersedia untuk 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.
  • Pengguna login ke IdP dengan akun tersebut.
  • Autentikasi otomatis tidak terjadi dalam 10 menit terakhir.
  • RP belum memanggil navigator.credentials.preventSilentAccess() setelahnya proses login sebelumnya.

Jika kondisi di atas terpenuhi, upaya untuk melakukan autentikasi ulang secara otomatis pengguna memulai segera setelah navigator.credentials.get() FedCM dipanggil.

Pengguna mengautentikasi ulang secara otomatis melalui FedCM.

Menerapkan mediasi dengan preventSilentAccess()

Autentikasi ulang otomatis pengguna segera setelah mereka logout tidak akan membuat pengalaman pengguna yang sangat baik. Itu sebabnya FedCM memiliki masa tenang 10 menit setelah autentikasi ulang otomatis untuk mencegah perilaku ini. Ini berarti bahwa autentikasi ulang otomatis terjadi paling banyak sekali dalam setiap 10 menit, kecuali jika pengguna masuk kembali dalam 10 menit. RP harus memanggil navigator.credentials.preventSilentAccess() untuk secara eksplisit meminta browser untuk menonaktifkan autentikasi ulang otomatis RP secara eksplisit, misalnya, dengan mengklik tombol {i>sign-out<i}.

function signout() {
  navigator.credentials.preventSilentAccess();
  location.href = '/signout';
}

Pengguna dapat memilih untuk tidak mengaktifkan autentikasi ulang otomatis di setelan

Pengguna dapat memilih untuk tidak menggunakan autentikasi ulang otomatis dari menu setelan:

  • Di Chrome desktop, buka chrome://password-manager/settings > Login secara otomatis.
  • Di Android Chrome, buka Setelan > Pengelola Sandi > Ketuk roda gigi di sudut kanan atas > Login otomatis.

Dengan menonaktifkan tombol beralih, pengguna dapat memilih untuk tidak menggunakan autentikasi ulang otomatis secara bersamaan. Setelan ini disimpan dan disinkronkan di seluruh perangkat, jika pengguna login ke akun Google pada instance Chrome dan sinkronisasi mengaktifkan pembuatan versi.

Berikan masukan

Jika Anda menguji FedCM, Anda dapat memberikan masukan atau masalah apa pun yang Anda hadapi di crbug.com pada bagian "Blink>Identity>FedCM" komponen.

Foto oleh Noah Samuel Franz di Unsplash