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:
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.
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.