谷歌将弃用通过“网络视图”等方式发送OAuth请求
Google 身份团队一直致力于帮助 Google 用户以安全无缝的方式使用他们的 Google 帐户登录第三方应用,以及让用户能够在必要时将其帐户中的特定信息(如日程或联系信息)分享给其他应用。
在后台,这些交互是通过 OAuth 请求进行的,多年以来,Google 支持开发者以多种方式实现与我们之间的 OAuth 流程。为了提高安全性和易用性,我们不久将会终止对其中一种方式的支持。
在未来数月中,我们将不再允许使用称为“网络视图”的嵌入式浏览器向 Google 发送 OAuth 请求,如 Android 上的 WebView UI 元素和 iOS 上的 UIWebView/WKWebView 以及 Windows 和 OS X 上的等效项。
使用设备浏览器替代嵌入式网络视图来发送 OAuth 请求可显著提高您的应用的易用性:用户在每台设备上只需登录 Google 帐户一次,从而提高您的应用内登录和授权流程的转化率。某些操作系统上提供的现代化“应用内浏览器标签”模式(如 Android 上的 Chrome 自定义标签页和 iOS 上的 SFSafariViewController)为基于浏览器的 OAuth 流程提供了进一步的用户体验改善。
相比之下,使用嵌入式浏览器发送 OAuth 请求这种过时方法意味着,用户每次都必须登录 Google,而不能利用设备上现有的已登录会话。设备浏览器还能提供更高的安全性,因为应用虽然能够检查和修改网络视图中的内容,却无法对显示在浏览器中的内容进行检查和修改。
为帮助您进行迁移,我们提供下列遵循现代化最佳做法的内容库和示例供您使用:
面向 Android 和 iOS 平台的 Google Sign-In,这是我们推荐使用的 SDK,用于使用 Google 帐户进行登录和 OAuth。
Sign-In for Android:https://developers.google.com/identity/sign-in/android
Sign-In for iOS:https://developers.google.com/identity/sign-in/ios
面向 Android、iOS 和 OS X 平台的 AppAuth,这个开放源代码 OAuth 客户端内容库可与 Google 以及其他 OAuth 提供商一起使用。我们还提供GTMAppAuth(面向 iOS 和 OS X 平台),这个内容库可实现对 Google APIs Client Library for Objective-C 和 GTM Session Fetcher 项目的 AppAuth 支持。
AppAuth for Android:http://openid.github.io/AppAuth-Android
AppAuth for iOS, and OS X:http://openid.github.io/AppAuth-iOS/
GTMAppAuth (for iOS and OS X) :https://github.com/google/GTMAppAuth
Google APIs Client Library for Objective-C:https://github.com/google/google-api-objectivec-client-for-rest
GTM Session Fetcher:https://github.com/google/gtm-session-fetcher
面向 Windows 平台的 Google Sign-in 和 OAuth 示例:https://github.com/googlesamples/oauth-apps-for-windows
这些示例展示了如何利用浏览器在通用 Windows 平台 (UWP)、控制台和桌面应用等各类 Windows 环境中对 Google 用户进行身份验证。
您还可以阅读我们面向本机应用的基于标准 OAuth 支持的协议级文档(https://developers.google.com/identity/protocols/OAuth2InstalledApp),以及有关这一主题的 IETF 现行最佳做法草案(https://tools.ietf.org/html/draft-ietf-oauth-native-apps-03)。
iOS 平台上 3.0 之前的 Google Sign-In 版本不支持应用内浏览器标签最新行业最佳做法,因此同样会被弃用。如果您使用 Google Sign-In,请更新至最新版本,以获得所有最新的安全性和易用性改进。这一政策暂时尚未取消对 iOS 8 上 WebView 的支持,但我们可能会开始显示通知,鼓励用户升级其设备以提高安全性。
弃用通过网络视图向 Google 发送 OAuth 请求的实施时间表如下:从 2016 年 10 月 20 日开始,我们将阻止新的 OAuth 客户端在具有可行替代方案的平台上使用网络视图,并将分阶段向现有 OAuth 客户端发送面向用户的通知。
在 2017 年 4 月 20 日,我们将着手在存在可行替代方案的平台上封锁所有 OAuth 客户端使用网络视图发送的 OAuth 请求。
如果您对迁移有任何疑问,请在 Stack Overflow 上的“google-oauth”标签下发帖提问。
查看原文所有链接,请点击文末阅读原文。
9.3 Google Doodle: Asep Sunandar 诞辰 61 周年