Update FedCM: Multi IdP API di desktop, Button Mode API, dan Paket Lanjutan untuk Chrome di uji coba origin Android

Natalia Markoborodova
Natalia Markoborodova

Mulai Chrome 128, Multi-IdP API akan memulai uji coba origin di desktop, lalu Button Mode API dan Paket lanjutan memulai uji coba origin di Android. Dengan fitur Multi IdP, developer dapat menentukan array dari beberapa Penyedia Identitas yang didukung dalam satu panggilan get(). Button Mode API menambahkan UI baru. Dengan Button Mode API, penyedia identitas dapat menggunakan FedCM API meskipun pengguna mereka tidak memiliki sesi IdP yang aktif setelah panggilan API. Paket Lanjutan terdiri dari Continuation API dan Parameters API, yang mengaktifkan pengalaman seperti alur otorisasi OAuth yang melibatkan dialog izin yang disediakan IdP. Paket ini juga mencakup perubahan lain seperti Fields API, Multiple configURL, dan Custom Account Labels.

Uji coba origin: Multi IdP API

Fitur ini memungkinkan pengguna memilih akun dari serangkaian IdP yang didukung, dan RP mendapatkan manfaat dari rasio login dan pendaftaran yang lebih tinggi. Jika pengguna login dengan beberapa IdP, mereka akan diminta untuk login ke RP menggunakan salah satu IdP.

Pengguna login dengan IdP yang berbeda menggunakan multi-IdP API.

IdP diprioritaskan berdasarkan akun pengguna yang sudah ada dan stempel waktu yang terkait.

  • Jika pengguna sebelumnya telah login ke RP dengan IdP tertentu (yaitu, mereka memiliki "akun yang kembali"), IdP tersebut akan dicantumkan terlebih dahulu.
  • Dalam akun yang ditampilkan, IdP diurutkan lebih lanjut berdasarkan stempel waktu penggunaan terbarunya, dengan IdP yang terakhir digunakan muncul di bagian atas daftar. Dalam beberapa kasus, Chrome mungkin tidak memiliki data stempel waktu untuk akun yang kembali. Hal ini mungkin terjadi karena pengguna login sebelum log stempel waktu diterapkan di FedCM. Akun ini tercantum di bawah akun yang memiliki stempel waktu.
  • Jika pengguna tidak memiliki akun yang kembali dengan IdP apa pun, urutan yang diberikan RP akan dihormati.

FedCM mengizinkan autentikasi ulang otomatis jika developer memintanya, dan jika ada satu akun yang kembali. Dalam kasus Multi-IdP, jika akun yang ditampilkan ada untuk beberapa IdP, pengguna tidak akan diautentikasi ulang secara otomatis. Memiliki akun yang kembali adalah persyaratan kuat untuk autentikasi ulang otomatis. Browser hanya akan memulai autentikasi ulang otomatis jika browser telah mengenali akun secara eksplisit. Hal ini menyiratkan bahwa pengguna sebelumnya harus menggunakan FedCM dengan akun khusus ini di RP ini.

Jika status login pengguna disetel ke logout untuk IdP, memanggil FedCM tidak akan mengambil akun untuk IdP tersebut. Demikian pula, jika status pengguna logout untuk semua IdP yang tersedia, perintah login FedCM tidak akan otomatis ditampilkan dalam mode widget.

Jika status login yang disimpan di browser untuk IdP telah login, tetapi tidak ada akun untuk IdP ini yang ditampilkan oleh permintaan pengambilan (misalnya, jika sesi pengguna telah berakhir, tetapi status login belum diperbarui oleh browser), UI ketidakcocokan akan ditampilkan untuk IdP, yang menyarankan pengguna untuk login dengan IdP yang tidak cocok.

Saat status login pengguna login, tetapi sesi telah berakhir, UI yang tidak cocok akan ditampilkan.

Untuk mengetahui informasi selengkapnya tentang status login, lihat dokumentasi. Lihat panduan developer untuk detail penerapan selengkapnya.

Uji coba origin: Multi IdP API

Anda dapat mencoba Multi IdP API sebagai pengguna di RP demo, atau sebagai developer yang menggunakan Chrome 128 atau yang lebih baru.

Coba sebagai pengguna

Coba sendiri sebagai pengguna. Pastikan:

  • Chrome tidak dikonfigurasi untuk memblokir perintah login pihak ketiga di halaman: chrome://settings/content/federatedIdentityApi.
  • Anda login ke beberapa IdP demo. Ikuti petunjuk di halaman demo.

Perhatikan bahwa untuk mencoba Multi-IdP di situs yang asalnya tidak terdaftar untuk uji coba origin, Anda harus mengaktifkan tombol fitur di bagian chrome://flags/#fedcm-multi-idp.

Cobalah sebagai developer

Jika penyedia login memiliki SDK JavaScript yang disematkan di RP (direkomendasikan), panggilan navigator.credentials.get() untuk mengaktifkan beberapa IdP dapat diterapkan oleh penyedia, dan developer RP tidak perlu mengubah kode mereka. Jika tidak, RP harus memanggil FedCM API sendiri.

Untuk menguji Multi-IdP di RP, tentukan array penyedia yang didukung sebagai berikut:

try {
  const cred = await navigator.credentials.get({
    identity: {
      providers: [
        {
          configUrl: "https://idp1.example/foo.json", // first IdP
          clientId: "123",
        },
        {
          configUrl: "https://idp2.example/bar.json", // second IdP
          clientId: "456",
        }
      ]
    }
  });

  const token = cred.token;
  const currentConfigFileUrl = cred.configURL;

  if (cred.configURL === 'https://idp1.example/foo.json')  {
    // handle the token for idp1.example
  } else if (cred.configURL === 'https://idp2.example/bar.json') {
    // handle the token for idp2.example
  }
} catch (error) {
  console.error("Error during credential retrieval:", error);
}

Atribut configURL dalam objek yang dihasilkan menyimpan URL file konfigurasi untuk IdP yang digunakan pengguna untuk melakukan autentikasi. RP dapat menentukan cara menangani token yang dihasilkan karena berbeda-beda bergantung pada IdP.

Berpartisipasi dalam uji coba asal

Uji coba origin memungkinkan Anda mencoba fitur baru dan memberikan masukan terkait kegunaan, kepraktisan, dan efektivitasnya. Untuk informasi selengkapnya, lihat Memulai uji coba origin.

Anda dapat mencoba fitur Multi-IdP dengan mendaftar ke uji coba origin mulai dari Chrome 128.

Untuk mencoba Multi IdP, RP dapat mendaftarkan originnya dan menjalankan uji coba origin pihak pertama. IdP juga dapat mendaftar ke uji coba origin pihak ketiga dan menyediakan fitur Multi IdP untuk semua RP mereka menggunakan SDK JavaScript.

Langkah-langkah untuk berpartisipasi dalam uji coba origin:

  1. Buka halaman pendaftaran uji coba origin Multi IdP API.
  2. Klik tombol Register, lalu isi formulir untuk meminta token.
  3. Untuk mendaftar ke uji coba origin pihak pertama, masukkan origin RP di kolom "Origin Web". Untuk uji coba origin pihak ketiga, masukkan origin JavaScript SDK IdP dan centang kotak "Pencocokan pihak ketiga".
  4. Klik Kirim.
  5. Masukkan token yang diterbitkan di halaman RP:
    • Untuk peserta uji coba origin pihak pertama:
      • Sebagai tag meta di <head>: <meta http-equiv="origin-trial" content="TOKEN_GOES_HERE">
      • Sebagai header HTTP: Origin-Trial: TOKEN_GOES_HERE
    • Untuk peserta uji coba origin pihak ketiga:
      • Dengan memberikan token secara terprogram.

Button Mode API untuk Chrome di Android

Mulai Chrome versi 128, uji coba origin Button Mode API akan dimulai di Chrome di Android, setelah uji coba awal di desktop. Dengan Button Mode API, penyedia identitas dapat menggunakan FedCM API meskipun penggunanya logout dari IdP setelah panggilan API. Alur login dimulai oleh gestur pengguna, yang lebih mencerminkan niat pengguna.

Di Chrome 128, fitur baru diperkenalkan yang memungkinkan IdP menyertakan ikon logo resmi RP langsung di respons endpoint metadata klien. Tindakan ini akan meningkatkan UI di perangkat seluler dalam mode tombol.

Serupa dengan branding IdP dalam file konfigurasi, ikon RP dapat dikonfigurasi di sisi IdP dan ditampilkan dalam respons client_metadata_endpoint sebagai berikut:

  "privacy_policy_url": "https://rp.example/privacy_policy.html",
  "terms_of_service_url": "https://rp.example/terms_of_service.html",
  "icons": [{
      "url": "https://idp.example/rp-icon.ico",
      "size": 40
   }]
Ikon logo IdP dan RP.
Ikon logo IdP dan RP di UI pengungkapan di perangkat seluler.

Untuk mempelajari dukungan ikon lebih lanjut, lihat dokumentasi developer.

Jika pengguna belum login, FedCM akan meminta pengguna untuk login ke IdP menggunakan login_url yang disediakan oleh IdP melalui Tab Kustom Chrome (CCT).

Pengguna login melalui mode tombol di ponsel.

Jika pengguna mengautentikasi ulang dengan akun yang kembali, UI pengungkapan tidak akan ditampilkan.

Pengguna login dengan akun yang kembali. UI pengungkapan tidak ditampilkan.

Untuk mendaftar uji coba origin, lihat petunjuk untuk Button Mode API di desktop. Jika Anda telah mendaftar ke uji coba origin di desktop, fitur ini akan otomatis tersedia untuk Anda di Chrome di Android mulai dari Chrome 128.

Paket Continuation API untuk Chrome di Android

Mulai Chrome versi 128, paket Continuation API akan tersedia untuk Chrome di Android sebagai bagian dari uji coba origin, setelah uji coba awalnya di desktop. Paket ini terdiri dari beberapa fitur FedCM, termasuk Continuation API, Parameters API, Fields API, Beberapa configURL, dan Label Akun Kustom.

Continuation API memungkinkan alur login multi-langkah. Parameters API memungkinkan penerusan parameter tambahan ke IdP. Fields API memungkinkan RP meminta atribut akun tertentu untuk UI pengungkapan di dialog FedCM. Selain itu, Beberapa configURL mendukung beberapa file konfigurasi untuk IdP, dan Label Akun Kustom memungkinkan IdP menganotasi akun sehingga RP dapat memfilternya berdasarkan label ini.

Untuk mempelajari paket Continuation API lebih lanjut, lihat postingan blog tentang paket Continuation API di desktop. Untuk mendaftar ke uji coba origin, ikuti petunjuk ini. Jika Anda telah mendaftar ke uji coba origin di desktop, fitur ini akan otomatis tersedia untuk Anda di Chrome di Android mulai dari Chrome 128.

Berinteraksi dan memberikan masukan

Jika Anda memiliki masukan atau mengalami masalah, Anda dapat mengajukan masalah. Kami akan terus memperbarui panduan developer FedCM kanonis, beserta halaman log update yang terakumulasi.