本站已关停,现有内容仅作科研等非赢利用途使用。特此声明。
查看: 1704|回复: 0
打印 上一主题 下一主题

通过将本机应用中的 OAuth 交互现代化来提高易用性和安全性

[复制链接]
跳转到指定楼层
1#
发表于 2016-9-2 16:06:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
发布人:身份和身份验证产品经理 William Denniss

身份团队一直致力于帮助 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,而不能利用设备上现有的已登录会话。设备浏览器还能提供更高的安全性,因为应用虽然能够检查和修改网络视图中的内容,却无法对显示在浏览器中的内容进行检查和修改。

为帮助您进行迁移,我们提供下列遵循现代化最佳做法的内容库和示例供您使用:
  • 面向 AndroidiOS 平台的 Google Sign-In,这是我们推荐使用的 SDK,用于使用 Google 帐户进行登录和 OAuth。
  • 面向 AndroidiOS 和 OS X 平台的 AppAuth,这个开放源代码 OAuth 客户端内容库可与 Google 以及其他 OAuth 提供商一起使用。我们还提供GTMAppAuth(面向 iOS 和 OS X 平台),这个内容库可实现对 Google APIs Client Library for Objective-CGTM Session Fetcher 项目的 AppAuth 支持。
  • 面向 Windows 平台的 Google Sign-in 和 OAuth 示例,这些示例展示了如何利用浏览器在通用 Windows 平台 (UWP)、控制台和桌面应用等各类 Windows 环境中对 Google 用户进行身份验证。

您还可以阅读我们面向本机应用的基于标准 OAuth 支持的协议级文档,以及有关这一主题的 IETF 现行最佳做法草案。

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”标签下发帖提问。

ChinaGDG.com
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表