Update FedCM: Menampilkan domain iframe

Mulai Chrome 142, Anda dapat memilih untuk menampilkan domain iframe di UI FedCM saat Pihak Tepercaya (RP) disematkan sebagai iframe pihak ketiga di situs lain. Fitur ini meningkatkan transparansi bagi pengguna saat mereka login ke layanan yang disematkan di situs lain.

Latar belakang

Sebelumnya, saat FedCM dipanggil dari dalam iframe lintas origin, UI dialog FedCM hanya akan menampilkan domain situs tingkat teratas. Hal ini dapat menimbulkan kebingungan bagi pengguna jika layanan yang mereka gunakan berbeda dengan situs tingkat teratas. Misalnya, pengguna mungkin berada di situs berita yang menyematkan widget komentar. Saat pengguna mencoba login ke widget komentar, dialog FedCM hanya akan menampilkan domain situs berita, bukan domain layanan komentar:

Judul dialog FedCM menyertakan teks: 'Login ke news-site.example dengan fedcm-demo-idp.dev'.
Saat FedCM dipanggil dari dalam iframe, domain iframe tidak ditampilkan di UI.

Untuk mengatasi hal ini, Chrome kini memiliki cara bagi IdP untuk menunjukkan domain iframe tempat token dikirim dalam dialog FedCM selain domain situs level teratas. Hal ini memberikan gambaran yang lebih jelas kepada pengguna tentang layanan pihak ketiga yang terlibat dalam proses login.

Judul dialog FedCM menyertakan teks: 'Sign in to news-site.example with fedcm-demo-idp.dev. news-site.example embeds content from widget.example'.
Saat FedCM dipanggil dari dalam iframe, IdP dapat memilih untuk menampilkan domain iframe dan situs penyematan dalam dialog UI.

Penerapan

Endpoint metadata klien IdP menerima client_id dan secara opsional top_frame_origin, misalnya:

GET /client_metadata_endpoint?client_id=1234&top_frame_origin=https%3A%2F%2Ftop-frame.example HTTP/1.1
Host: idp.example
Origin: https://iframe.example/
Accept: application/json
Sec-Fetch-Dest: webidentity

Kemudian, IdP dapat menerapkan logika kustom untuk menentukan apakah RP dan situs tingkat teratas adalah pihak yang sama. Jika RP memiliki situs level teratas dan iframe, IdP dapat memilih untuk hanya menampilkan domain level teratas, yang merupakan perilaku default. Untuk menampilkan kedua domain, IdP harus menyertakan properti client_is_third_party_to_top_frame_origin dalam respons endpoint metadata klien dan menetapkan nilainya ke true.

Berikut adalah contoh tampilan respons endpoint metadata klien:

// In the client metadata endpoint
const clientIsThirdParty = isClientOriginDifferentFromTopFrame();
responseData = {
  privacy_policy_url: "..."
  terms_of_service_url: "...",
  client_is_third_party_to_top_frame_origin: clientIsThirdParty,
}

Jika properti ini ditetapkan ke true dan RP disematkan sebagai iframe di situs lain, dialog FedCM akan menampilkan domain situs level teratas dan domain iframe. Hal ini memberikan lebih banyak konteks kepada pengguna tentang permintaan login.

Nilai default untuk client_is_third_party_to_top_frame_origin adalah false, sehingga penerapan yang sudah ada tidak akan terpengaruh oleh perubahan ini.

Ada detail selengkapnya di dokumentasi tentang penerapan FedCM di Penyedia Identitas.

Cobalah

Anda dapat melihat demo langsung fitur ini di fedcm-demo-rp.dev/iframe. Kode dihosting di repositori GitHub demo.

Kami menerima masukan Anda tentang fitur ini dan fitur FedCM lainnya. Bagikan pendapat Anda dan laporkan masalah apa pun di repositori GitHub FedCM.

Pelajari lebih lanjut