Uwierzytelnianie SAML w ChromeOS

Domyślnie uwierzytelnianiem kont Google zajmuje się dostępna z zewnątrz usługa kont Google. Gdy nieuwierzytelniony użytkownik odwiedza stronę Google, która wymaga uwierzytelnienia, formularz logowania Google prosi o podanie adresu e-mail i hasła. Gdy użytkownik prześle swój adres e-mail i hasło, uwierzytelnianie Google sprawdzi, czy podane dane logowania są prawidłowe. Jeśli dane logowania są prawidłowe, uwierzytelnianie Google ustawia pliki cookie logowania użytkownika.

Niektóre przedsiębiorstwa stosują bardziej zaawansowany model, w którym uwierzytelnianiem zajmuje się zewnętrzny dostawca tożsamości. Uwierzytelnianie Google obsługuje ten model za pomocą standardowego protokołu Security Assertion Markup Language (SAML). Administrator może skonfigurować domenę tak, aby korzystała z uwierzytelniania SAML.

Uzyskiwanie hasła użytkownika

ChromeOS musi zidentyfikować hasło użytkownika wpisane podczas logowania, aby:

  • szyfrować dane użytkownika przechowywane na dysku.
  • Chroń ekran blokady.
  • Włącz logowanie offline, gdy nie ma dostępu do sieci.

W przypadku SAML hasło nie jest wpisywane bezpośrednio w oknie systemowym ChromeOS, ale w widoku internetowym hostowanym przez dostawcę tożsamości. ChromeOS ma dostęp do kodu HTML, ale nie ma prostego, kanonicznego sposobu na uzyskanie hasła, ponieważ nie wiadomo, które pola formularza zawierają dane.

W przypadku SAML hasło użytkownika można uzyskać na 2 sposoby: za pomocą interfejsu API przekazywania danych logowania i za pomocą wyodrębniania hasła.

Chrome Credentials Passing API

Google udostępnia interfejs Credentials Passing API, który dostawcy tożsamości mogą wdrożyć na stronach SAML w JavaScript, aby przekazywać wymagane dane do ChromeOS. Uwierzytelnianie Google korzysta z tego interfejsu API, ale może go używać dowolny dostawca tożsamości SAML.

Wyłudzanie haseł

Dostawca tożsamości SAML może używać wyodrębniania haseł, jeśli nie obsługuje interfejsu Credentials Passing API.

W tej metodzie:

  1. Ekran uwierzytelniania wstrzykuje skrypt treści do widoku internetowego, w którym odbywa się proces logowania.
  2. Skrypt treści identyfikuje pola wejściowe HTML typu password i kopiuje ich zawartość do tablicy. Tablica jest aktualizowana za każdym razem, gdy zmienia się zawartość pola hasła.
  3. Wyodrębnione hasła są wysyłane na stronę w tle, która je gromadzi. W ten sposób hasło może zostać przechwycone nawet wtedy, gdy proces logowania obejmuje wiele przekierowań do różnych stron HTML.

Na końcu procesu logowania tablica pobranych haseł jest pobierana ze strony w tle. Możliwe są 3 sytuacje: nie udało się pobrać żadnego hasła, udało się pobrać dokładnie 1 hasło lub udało się pobrać więcej niż 1 hasło.

Nie udało się pobrać hasła

Skrypt treści nie może znaleźć hasła na stronach HTML dostarczanych przez dostawcę tożsamości. Dostawca tożsamości może nie używać tradycyjnych haseł.

W takim przypadku ChromeOS poprosi użytkownika o wybranie hasła ręcznego do urządzenia. Jeśli hasło nie istnieje (np. uwierzytelnianie za pomocą kart inteligentnych, NFC lub danych biometrycznych), proces uwierzytelniania w ChromeOS może przebiegać bez hasła.

Wyodrębniono dokładnie 1 hasło

Skrypt treści identyfikuje dokładnie 1 hasło. Najprawdopodobniej jest to hasło użytkownika używane do uwierzytelniania.

W tym scenariuszu najprawdopodobniej prawidłowo pobraliśmy hasło użytkownika. ChromeOS użyje wyodrębnionego hasła jako hasła użytkownika, aby kontynuować proces uwierzytelniania.

Wykradziono więcej niż jedno hasło

Skrypt treści wykrywa wiele haseł. Może się to zdarzyć w sytuacjach, w których dostawca tożsamości wymaga od użytkownika wpisania w formularzu logowania stałego hasła i hasła jednorazowego.

W takim przypadku prawdopodobnie pobraliśmy prawdziwe hasło użytkownika i dodatkowe pola haseł, które nie są interesujące dla ChromeOS. Aby określić, które hasło jest prawidłowe, ChromeOS poprosi użytkownika o ponowne wpisanie hasła w dodatkowym oknie.

Jeśli wpisane hasło pasuje do jednego z przechwyconych haseł, oznacza to, że prawdziwe hasło użytkownika zostało zidentyfikowane, a proces uwierzytelniania będzie kontynuowany. Jeśli nie ma dopasowania, użytkownik zostanie poproszony o ponowne wpisanie hasła. Po 2 niezgodnościach logowanie nie powiedzie się i wyświetli się komunikat o błędzie.

Rejestracja w firmie

W przypadku rejestracji w wersji Enterprise adres e-mail rejestrującego użytkownika jest potrzebny do powiązania urządzenia z odpowiednią domeną. E-mail jest wysyłany z serwera zarządzania urządzeniami (DM) do Chrome w polu nazwy użytkownika wiadomości PolicyData podczas pobierania zasad dotyczących urządzenia. Nie musisz ustalać hasła użytkownika.