GoogleのOAuth 2.0認証エンドポイントに関する重要な変更
1. Googleの新しいセキュリティポリシーについて
2021年6月29日、Googleは自身のOAuth 2.0認証エンドポイントに関する新しいセキュリティポリシーを発表しました。これにより、**埋め込まれたWebビュー**を利用するアプリ内でのGoogle OAuthリクエストが禁止されることとなりました。この変更は、ユーザーのアカウントがより安全に保護されることを目的としています。
埋め込まれたWebビューとは、アプリケーション内に表示されるWebページを指しますが、その機能には重大なセキュリティリスクが潜んでいます。具体的には、悪意ある開発者によってユーザーとGoogleの間の通信が乗っ取られたり、悪用される可能性があります。
2. 要点:埋め込まれたWebビューのリスク
以下に埋め込まれたWebビューがもたらす主要なリスクを挙げます。
- ユーザーの入力情報の盗聴:悪意のあるスクリプトがキー入力を記録する可能性があります。
- セッションのクッキーへのアクセス:クッキー情報が漏洩するリスクがあります。
- 信頼性の欠如:ユーザーはどのサーバーが応答を返しているのか確認できず、不安を感じます。
- OAuth 2.0のガイドライン違反:ネイティブアプリは埋め込まれたユーザーエージェントを使用してはならないという規則があります。
3. 開発者向けのガイダンス
この新しいポリシーの実施に伴い、開発者は以下の手順を踏む必要があります。
- 自分のアプリが動作するプラットフォームごとにOAuthクライアントを登録すること。GoogleのOAuth 2.0ポリシーに準拠している必要があります。
- アプリがOpen Web Linksをデフォルトのブラウザで扱うようにすること。AndroidではAndroid App Linksを通じて、iOSではUniversal Linksを利用します。
- 現在の実装に対して、GoogleのOAuth 2.0認証エンドポイントがブロックされる可能性があるため、事前にテストを行う必要があります。
4. 互換性テストの手順
埋め込まれたWebビューを使用してGoogle OAuth 2.0認証フローを実装している場合、2021年9月30日以降にすべての埋め込まれたWebビューがブロックされることに注意が必要です。以下はテスト手順です。
- OAuth 2.0認証エンドポイントへのリクエストを送信するところに移動します。例:https://accounts.google.com/o/oauth2/v2/auth
- URIのクエリコンポーネントに、disallow_webview パラメータを追加し、その値をtrueとします。
実装が新しいポリシーの影響を受ける場合、disallowed_useragentエラーが表示されるでしょう。
5. ユーザー向けの警告メッセージ
2021年8月30日以降、非準拠の認証リクエストでは警告メッセージが表示される可能性があります。このメッセージは、ユーザーサポート用のメールアドレスを含んでおり、適切なブラウザを用いたサインインを促す内容となります。
開発者がこの警告メッセージを抑えるためには、以下の手順を行わなければなりません。
- OAuth 2.0認証エンドポイントへのリクエストを送信するところに移動します。
- URIに、ack_webview_shutdown パラメータを追加し、その値を強制施行日である「2021-09-30」とします。
正しく設定されたリクエストは、警告メッセージを抑えることができます。
6. まとめ
Googleの新しいセキュリティポリシーは、ユーザーのアカウント情報を守るために不可欠なものです。開発者はこれに適応し、埋め込まれたWebビューの使用を避けることで、ユーザーにとって安全で信頼できる体験を提供することが求められます。
今後もGoogleは、より安全で便利なサービスを提供するために、様々な施策を講じていくことでしょう。ユーザーと開発者が共に、安全なオンライン環境を作るために協力することが大切です。