私たちはいつも、Google アカウントのセキュリティ保護の改善に努めています。私たちのセキュリティ システムは、さまざまなセキュリティ脅威を自動的に検知して警告し、ユーザーを保護しています。「中間者攻撃」(MITM)として知られる形態のフィッシングは、ブラウザ フレームワーク(例: Chromium Embedded Framework - CEF)に埋め込まれたり、他の自動化プラットフォームが認証に使われていたりすると、検出が難しくなります。MITM は、このようなプラットフォームの認証フローを表示し、ユーザーと Google との間の通信をインターセプトすることで、ユーザーの認証情報(場合によっては、多要素認証の 2 段階目の要素も含まれます)を集めてログインを行います。このようなタイプの攻撃からユーザーを保護するため、2021 年 1 月 4 日以降、すべての埋め込みフレームワークからの Google アカウントへのログインがブロックされます。CEF ベースのアプリやその他のサポート外ブラウザは、このブロックによって影響を受けます。
パートナーへのサービス中断を最低限にとどめるため、デベロッパーがサポート対象のユーザー エージェントで OAuth 2.0 フローを設定する際に役立ててもらえるよう、この情報を提供します。本ドキュメントでは、以下について概要を説明します。
- 埋め込みフレームワーク ベースのアプリで、ブラウザベースの OAuth 2.0 フローを使ってログインを実現する方法
- 互換性テストの方法
埋め込みフレームワークを使うアプリ
デバイスでの認証に CEF などのクライアントを使っているアプリのデベロッパーは、ブラウザベースの OAuth 2.0 フローを使ってください。または、対応するネイティブの完全なブラウザを使ってログインすることもできます。
ブラウザにアクセスできない場合や入力機能が限られている場合など、入力に制限のあるデバイスのアプリケーションでは、入力が制限されるデバイスの OAuth 2.0 フローを使ってください。
ブラウザ
セキュリティ アップデートが行われているモダンブラウザは、引き続きサポートされます。
ブラウザ標準
ブラウザでは、JavaScript が有効になっている必要があります。詳細については、以前のブログ投稿をご覧ください。
ブラウザは、ネットワーク通信のプロキシとなったり、変換を行ったりしてはいけません。ブラウザでは、以下のことを行ってはいけません。
- サーバーサイド レンダリング
- HTTPS プロキシ
- リプレイ リクエスト
- HTTP ヘッダーの書き換え
ブラウザは、妥当な範囲のウェブ標準とブラウザ機能の実装を完了している必要があります。ブラウザには、以下が含まれていないことを確認する必要があります。
- ヘッドレス ブラウザ
- Node.js
- テキストベースのブラウザ
ブラウザは、User-Agent で自身を明確に識別できる必要があります。ブラウザは、Chrome や Firefox などの別のブラウザになりすまそうとしてはいけません。
ブラウザは、自動化機能を提供してはいけません。これには、キー入力やクリックを自動化するスクリプト(特に自動ログイン)を含みます。CEF や Embedded Internet Explorer などのフレームワークに基づいたブラウザからのログインは許可されません。
互換性テスト
現在 CEF を使ってログインを行っているデベロッパーは、このタイプの認証のサポートが 2021 年 1 月 4 日で終了することに注意してください。変更によって影響を受けるかどうかを確認するには、アプリケーションで互換性テストを行います。アプリケーションをテストするには、特殊な HTTP ヘッダーと値を追加して許可リストを無効にします。以下の手順で、許可リストを無効にする方法を説明します。
- accounts.google.com にリクエストを送信する場所に移動します。
- HTTP リクエスト ヘッダーに Google-Accounts-Check-OAuth-Login:true を追加します。
次の例は、CEF で許可リストを無効にする方法を説明しています。
注: カスタム ヘッダーは、CefRequestHandler#OnBeforeResourceLoad で追加できます。
CefRequest::HeaderMap hdrMap;
request->GetHeaderMap(hdrMap);
hdrMap.insert(std::make_pair("Google-Accounts-Check-OAuth-Login", "true"));
Chrome で手動テストを行うには、 ModHeader を使ってヘッダーを設定します。このヘッダーを使うと、特定のリクエストに対して変更が有効になります。