GoogleがOAuthフローにおけるユーザー安全性を向上させる新しい制限を発表
2023年10月2日、GoogleのプロダクトマネージャーであるVikrant Rana氏は、OAuth 2.0カスタムURIスキームが持つ脆弱性について言及しました。これまでのカスタムURIスキームは、アプリの成りすまし攻撃のターゲットになることが知られており、ユーザーのセキュリティを脅かしていました。この問題に対処するため、Googleは新たな対策を講じ、第三者アプリケーションがGoogleユーザーデータにアクセスする際の安全性を向上させることを目指しています。
新しいChrome拡張機能に対するカスタムURIスキームの禁止
Googleは、新しいChrome拡張機能がカスタムURIスキームを使用できないようにしました。この変更は、悪意のあるユーザーがChrome拡張機能になりすまし、認証情報を盗むことを防ぐためのものです。そのため、開発者はOAuthをChrome Identity APIを使用して実装する必要があります。これにより、OAuth 2.0の応答をアプリに安全に届けることが可能になります。
- Chrome拡張機能を新たに開発する場合:Chrome Identity APIメソッドを使用して認証を行う必要があります。
- 既存のOAuthクライアント設定:この変更の影響はないものの、Chrome Identity APIメソッドへの移行を強く推奨します。
- 将来的には:カスタムURIスキームメソッドを無効にし、すべての拡張機能がChrome Identity APIメソッドを使用することになる可能性があります。
AndroidクライアントへのカスタムURIスキームのデフォルト無効化
新しいAndroidアプリはデフォルトでカスタムURIスキームを使用して認証リクエストを行うことができなくなります。開発者は、Google Identity Services for Android SDKを使用して、直接アプリにOAuth 2.0の応答を届けることを検討する必要があります。
- 既存のアプリ:Google Identity Services for Android SDKへの切り替えを強く推奨します。
- 新たにアプリを開発する場合:推奨される代替手段がニーズに合わない場合、Google API Consoleのクライアント設定ページの「高度な設定」セクションでカスタムURIスキームメソッドを有効にできます。
ユーザー向けエラーメッセージと開発者向けサポート
ユーザーがカスタムURIスキームメソッドを使用して不正なリクエストを行おうとした場合、「無効なリクエスト」のエラーメッセージが表示されます。このエラーについてより詳しく知りたい場合は、エラーメッセージ内の「詳細を学ぶ」リンクをクリックすることで、さらなる情報を得ることができます。
- ユーザー向けエラーメッセージ:「無効なリクエスト」と表示され、詳細を確認するためのリンクが提供される。
- 開発者向けエラーメッセージ:アプリケーションのユーザーフローをテストするときに、追加のエラー情報を表示することができます。エラーの詳細や解決策についてのリンクも提供されます。
まとめ
Googleは、ユーザーのデータを安全に保つために、OAuthフローにおける新たな制限を導入しました。開発者はこの変化を理解し、必要なステップを踏んで高いセキュリティレベルを維持することが求められます。また、ユーザーもこれらの新しいセキュリティ対策により、更なる安全性を享受できることでしょう。新しいChrome拡張機能やAndroidアプリを開発する際には、Chrome Identity APIやGoogle Identity Servicesの利用が必須となるため、その導入を早めに行うことが重要です。