デフォルトでは、Google の外部からアクセス可能なアカウント サービスが Google アカウントの認証を処理します。認証されていないユーザーが認証を必要とする Google ページにアクセスすると、Google ログイン フォームでユーザーのメールアドレスとパスワードが要求されます。ユーザーがメールアドレスとパスワードを送信すると、Google 認証によって入力された認証情報が正しいことが確認されます。認証情報が正しい場合、Google 認証によってユーザーのログイン Cookie が設定されます。
一部の企業では、サードパーティの ID プロバイダ(IdP)が認証を処理する、より高度なモデルを使用しています。Google 認証は、業界標準の Security Assertion Markup Language(SAML)プロトコルを介してこのモデルをサポートしています。管理者は、SAML 認証を使用するようにドメインを構成できます。
ユーザーのパスワードの取得
ChromeOS は、ログイン時に入力されたユーザーのパスワードを次の目的で識別する必要があります。
- ディスク ドライブに保存されているユーザーのデータを暗号化します。
- ロック画面を保護します。
- ネットワーク アクセスがない場合にオフライン ログインを有効にします。
SAML を使用する場合、パスワードは ChromeOS システム ダイアログに直接入力するのではなく、ID プロバイダがホストするウェブビュー内に入力します。ChromeOS は HTML にアクセスできますが、どのフォーム フィールドにデータが含まれているかが不明なため、パスワードを簡単に取得する方法はありません。
SAML を使用してユーザーのパスワードを取得する方法は、Credentials Passing API とパスワード スクレイピングの 2 つがあります。
Chrome Credentials Passing API
Google は、ID プロバイダが SAML ページで JavaScript を使用して実装し、必要なデータを ChromeOS に渡すことができる Credentials Passing API を提供しています。Google 認証ではこの API を使用しますが、任意の SAML ID プロバイダも使用できます。
パスワードのスクレイピング
SAML ID プロバイダは、Credentials Passing API をサポートしていない場合、パスワード スクレイピングを使用することがあります。
この方法では、次のようになります。
- 認証画面は、ログイン プロセスをホストするウェブビューにコンテンツ スクリプトを挿入します。
- コンテンツ スクリプトは、タイプがパスワードの HTML 入力フィールドを特定し、その内容を配列にコピーします。配列は、パスワード フィールドの内容が変更されるたびに更新されます。
- スクレイピングされたパスワードは、それらを蓄積するバックグラウンド ページに送信されます。これにより、ログインフローが複数のリダイレクトにまたがって異なる HTML ページに移動する場合でも、パスワードをキャプチャできます。
ログイン フローの最後に、スクレイピングされたパスワードの配列がバックグラウンド ページから取得されます。パスワードがスクレイピングされなかった場合、1 つのパスワードがスクレイピングされた場合、複数のパスワードがスクレイピングされた場合の 3 つのケースが考えられます。
パスワードはスクレイピングされていません
コンテンツ スクリプトが、ID プロバイダから提供された HTML ページでパスワードを見つけられません。ID プロバイダは従来のパスワードを使用しない場合があります。
この場合、ChromeOS はユーザーにデバイスの手動パスワードを選択するよう求めます。パスワードが存在しない場合(スマートカード、NFC、生体認証による認証など)、ChromeOS の認証プロセスはパスワードなしで続行されることがあります。
パスワードが 1 つだけスクレイピングされた
コンテンツ スクリプトは、パスワードを 1 つだけ識別します。通常、これは認証に使用されるユーザーのパスワードです。
このシナリオでは、ユーザーのパスワードが正しくスクレイピングされた可能性が高いです。ChromeOS は、スクレイピングされたパスワードをユーザーのパスワードとして使用し、認証プロセスを続行します。
複数のパスワードがスクレイピングされた
コンテンツ スクリプトが複数のパスワードを特定します。たとえば、ID プロバイダがユーザーにログイン フォームに永続パスワードとワンタイム パスワードを入力するよう要求する場合などです。
このシナリオでは、ユーザーの実際のパスワードと、ChromeOS には関係のない追加のパスワード フィールドがスクレイピングされた可能性があります。どちらが正しいパスワードかを判断するため、ChromeOS はユーザーに追加のパスワード プロンプトにパスワードをもう一度入力するよう求めます。
入力されたパスワードがスクレイピングされたパスワードのいずれかと一致した場合、ユーザーの実際のパスワードが特定され、認証プロセスが続行されます。一致しない場合は、パスワードの再入力を求めるメッセージが表示されます。2 回不一致が続くと、エラー メッセージが表示されてログインに失敗します。
企業の登録
エンタープライズ登録では、デバイスを正しいドメインに関連付けるために、登録ユーザーのメールアドレスが必要です。メールは、デバイス ポリシーの取得中に、デバイス管理(DM)サーバーから PolicyData メッセージのユーザー名フィールドの Chrome に送信されます。ユーザーのパスワードを特定する必要はありません。