Autentikasi SAML di ChromeOS

Secara default, layanan akun Google yang dapat diakses secara eksternal menangani autentikasi untuk akun Google. Saat pengguna yang tidak diautentikasi membuka halaman Google yang memerlukan autentikasi, formulir login Google akan meminta alamat email dan sandi pengguna. Setelah pengguna mengirimkan email dan sandinya, autentikasi Google akan memverifikasi bahwa kredensial yang dimasukkan sudah benar. Jika kredensial benar, autentikasi Google akan menetapkan cookie login pengguna.

Beberapa perusahaan menggunakan model yang lebih canggih yang menggunakan penyedia identitas (IdP) pihak ketiga untuk menangani autentikasi. Autentikasi Google mendukung model ini melalui protokol Security Assertion Markup Language (SAML) standar industri. Administrator dapat mengonfigurasi domain untuk menggunakan autentikasi SAML.

Mendapatkan sandi pengguna

ChromeOS perlu mengidentifikasi sandi pengguna yang dimasukkan selama login untuk:

  • Enkripsi data pengguna yang disimpan di disk drive.
  • Melindungi layar kunci.
  • Mengaktifkan login offline saat tidak ada aksesibilitas jaringan.

Saat menggunakan SAML, sandi tidak dimasukkan langsung pada dialog sistem ChromeOS, tetapi di dalam webview yang dihosting oleh penyedia identitas. Meskipun ChromeOS memiliki akses ke HTML, tidak ada cara kanonis yang sederhana untuk mendapatkan sandi karena tidak jelas kolom formulir mana yang berisi data.

Ada dua cara untuk mendapatkan sandi pengguna saat menggunakan SAML: Credentials Passing API dan scraping sandi.

Chrome Credentials Passing API

Google menyediakan Credentials Passing API yang dapat diterapkan oleh penyedia identitas di halaman SAML, dalam JavaScript, untuk meneruskan data yang diperlukan ke ChromeOS. Autentikasi Google menggunakan API ini, tetapi penyedia identitas SAML mana pun juga dapat menggunakannya.

Pengambilan sandi

Penyedia identitas SAML dapat menggunakan scraping sandi jika mereka tidak mendukung Credentials Passing API.

Dalam metode ini:

  1. Layar autentikasi menyuntikkan skrip konten ke dalam webview yang menghosting proses login.
  2. Skrip konten mengidentifikasi kolom input HTML berjenis sandi dan menyalin isinya ke dalam array. Array diperbarui setiap kali konten kolom sandi berubah.
  3. Sandi yang di-scraping dikirim ke halaman latar belakang yang mengumpulkannya. Dengan cara ini, sandi dapat diambil meskipun alur login mencakup beberapa pengalihan ke halaman HTML yang berbeda.

Di akhir alur login, array sandi yang di-scraping diambil dari halaman latar belakang. Ada tiga kemungkinan: tidak ada sandi yang diekstrak, tepat satu sandi yang diekstrak, atau lebih dari satu sandi yang diekstrak.

Tidak ada sandi yang di-scraping

Skrip konten gagal menemukan sandi di halaman HTML yang ditayangkan oleh penyedia identitas. Penyedia identitas mungkin tidak menggunakan sandi tradisional.

Dalam skenario ini, ChromeOS akan meminta pengguna untuk memilih sandi manual untuk perangkat. Jika sandi tidak ada (misalnya, autentikasi dengan kartu smart, NFC, biometri), proses autentikasi ChromeOS dapat dilanjutkan tanpa sandi.

Hanya satu sandi yang di-scraping

Skrip konten mengidentifikasi tepat satu sandi. Kemungkinan besar, ini adalah sandi pengguna yang digunakan untuk autentikasi.

Dalam skenario ini, kemungkinan besar kami telah meng-scraping sandi pengguna dengan benar. ChromeOS akan menggunakan sandi yang di-scrap sebagai sandi pengguna untuk melanjutkan proses autentikasi.

Lebih dari satu sandi telah diekstrak

Skrip konten mengidentifikasi beberapa sandi. Hal ini dapat terjadi dalam situasi seperti penyedia identitas yang mewajibkan pengguna memasukkan sandi permanen dan sandi sekali pakai ke dalam formulir login.

Dalam skenario ini, kita mungkin telah meng-scraping sandi sebenarnya pengguna dan beberapa kolom sandi tambahan yang tidak menarik bagi ChromeOS. Untuk menentukan mana yang merupakan sandi yang benar, ChromeOS akan meminta pengguna untuk memasukkan sandi sekali lagi ke dalam perintah sandi tambahan.

Jika sandi yang dimasukkan cocok dengan salah satu sandi yang di-scraping, sandi sebenarnya pengguna telah diidentifikasi dan proses autentikasi akan dilanjutkan. Jika tidak ada kecocokan, pengguna akan diminta untuk memasukkan sandi mereka lagi. Setelah dua kali tidak cocok, login akan gagal dengan pesan error.

Pendaftaran perusahaan

Untuk pendaftaran Enterprise, alamat email pengguna yang mendaftarkan perangkat diperlukan untuk mengaitkan perangkat dengan domain yang benar. Email dikirim dari Server Pengelolaan Perangkat (DM) ke Chrome di kolom nama pengguna pesan PolicyData selama pengambilan kebijakan perangkat. Tidak perlu menentukan sandi pengguna.