本指南概述了如何解决在准备应用以供生产时遇到的最常见开发者问题,从而确保应用符合相关要求。
概览
当您准备好将已实现的解决方案从开发环境部署到应用的用户时,可能需要采取额外的步骤来遵守 Google 的 OAuth 2.0 政策。本指南概述了如何解决在准备应用以供生产时遇到的最常见开发者问题,从而确保应用符合相关要求。这有助于您尽可能触达更多受众群体,同时减少错误。
- 使用单独的项目进行测试和生产
- 维护项目的相关联系人列表
- 如实说明您的身份
- 仅请求您需要的范围
- 提交使用非敏感或非受限范围的正式版应用以供验证
- 仅使用您拥有的网域
- 为正式版应用托管首页
- 使用安全的重定向 URI 和 JavaScript 来源
使用单独的项目进行测试和生产
Google 的 OAuth 政策要求为测试和生产环境分别创建项目。部分政策和要求仅适用于正式版应用。您可能需要创建并配置一个单独的项目,其中包含与面向所有 Google 账号的正式版应用对应的 OAuth 客户端。
与测试或调试同一应用时使用的类似 OAuth 客户端相比,在生产环境中使用的 Google OAuth 客户端有助于提供更稳定、可预测且安全的数据收集和存储环境。您的生产项目可以提交验证申请,因此需要遵守针对特定 API 范围的额外要求,这些要求可能包括第三方安全评估。
- 前往 Google API 控制台。点击创建项目,输入名称,然后点击创建。
- 查看此项目中可能与您的测试层级相关联的 OAuth 客户端。如果适用,请在生产项目中为生产客户端创建类似的 OAuth 客户端。
- 启用客户端使用的所有 API。
- 在 Cloud 控制台的品牌推广页面中,查看新项目的 OAuth 权限请求页面配置。
在生产环境中使用的 Google OAuth 客户端不得包含仅供您或您的开发团队使用的测试环境、重定向 URI 或 JavaScript 来源。下面列出了一些示例:
- 各个开发者的测试服务器
- 应用的测试版或预发布版
维护项目的相关联系人列表
Google 以及您启用的各个 API 可能需要就其服务的变更或您的项目及其客户端所需的新配置与您联系。查看项目的 IAM 列表,确保团队中的相关人员有权修改或查看项目配置。这些账号还可能会收到有关项目所需更改的电子邮件。
角色包含一组权限,可让您对项目资源执行特定操作。项目编辑者有权执行会修改状态的操作,例如能够更改项目的 OAuth 权限请求页面。拥有所有编辑者权限的项目所有者可以添加或移除与项目关联的账号,也可以删除项目。项目所有者还可以说明设置结算信息的原因。项目所有者可以为使用付费 API 的项目设置结算信息。
项目所有者和编辑者必须及时更新。您可以向项目添加多个相关账号,以确保能够继续访问项目并进行相关维护。当您的项目有通知或我们的服务有更新时,我们会向这些账号发送电子邮件。Google Cloud 组织管理员必须确保其组织中的每个项目都关联了可联系的联系人。如果我们没有您项目的最新联系信息,您可能会错过需要您采取行动的重要消息。
如实说明您的身份
提供有效的应用名称,还可以选择提供向用户展示的徽标。此品牌信息必须准确反映应用身份。应用品牌信息是在 OAuth “品牌”页面中配置的。
对于生产应用,OAuth 权限请求页面中定义的品牌信息必须经过验证,然后才能向用户显示。应用完成品牌验证后,用户可能更愿意向其授予访问权限。当用户查看其现有授权时,或当 Google Workspace 管理员查看其组织的应用使用情况时,授权屏幕上会向用户显示基本应用信息,包括应用的名称、首页、服务条款和隐私权政策。
如果应用虚报身份或试图欺骗用户,Google 可能会撤消或暂停该应用对 Google API 服务和其他 Google 产品及服务的访问权限。
仅请求您需要的范围
在应用开发期间,您可能使用过 API 提供的示例范围在应用中创建概念验证,以详细了解 API 的特性和功能。这些示例范围通常会请求比应用的最终实现所需更多的信息,因为它们全面涵盖了特定 API 的所有可能操作。例如,示例范围可能请求读取、写入和删除权限,而您的应用仅需要读取权限。请求相关权限,且仅限于实现应用功能所必需的关键信息。
查看应用调用的 API 端点的参考文档,并记下它们需要哪些范围才能访问应用所需的相关数据。查看 API 提供的所有授权指南,并更详细地描述其范围,以涵盖最常见的用法。选择应用需要的最少数据访问权限,以支持相关功能。
如需详细了解此要求,请参阅 OAuth 2.0 政策的仅请求所需的权限范围部分,以及《Google API 服务用户数据政策》的请求相关权限部分。
提交使用非敏感范围或非受限范围的正式版应用以供验证
在验证用户身份时,“使用 Google 账号登录”不会请求敏感范围和受限范围。如果您的应用仅使用“使用 Google 账号登录”功能进行身份验证,则必须提交应用以进行品牌验证。您可以在 Google Cloud 控制台中的品牌推广页面上提交验证申请。此验证是必需的,以便在权限请求页面上显示应用的品牌元素,包括名称、徽标、隐私权政策、服务条款和范围。
我们强烈建议您的应用遵循官方品牌推广指南来放置“登录”按钮。
仅使用您拥有的网域
Google 的 OAuth 权限请求页面验证流程要求验证与项目的首页、隐私权政策、服务条款、已获授权的重定向 URI 或已获授权的 JavaScript 来源关联的所有网域。查看 OAuth 权限请求页面编辑器中授权网域部分总结的应用所用网域列表,并找出您不拥有且因此无法验证的任何网域。如需验证项目的授权网域的所有权,请使用 Google Search Console。使用与您的 API 控制台项目相关联的 Google 账号(作为所有者或编辑者)。
如果您的项目使用的服务提供商具有通用的共享网域,我们建议您启用允许使用自有网域的配置。部分提供商允许您将其服务映射到您已拥有的网域的子网域。
为正式版应用托管首页
使用 OAuth 2.0 的每个正式版应用都必须具有可公开访问的主页。您的应用的潜在用户可能会访问首页,详细了解该应用提供的功能。现有用户可能会查看其现有授权列表,并访问您应用的主页,以提醒他们继续使用您的服务。
应用的首页必须包含应用的功能说明,以及指向隐私权政策和可选服务条款的链接。首页必须位于您拥有的经过验证的网域中。
使用安全的重定向 URI 和 JavaScript 来源
网络应用的 OAuth 2.0 客户端必须使用 HTTPS 重定向 URI 和 JavaScript 来源(而非纯 HTTP)来保护其数据。Google 可能会拒绝并非源自或解析为安全上下文的 OAuth 请求。
考虑哪些第三方应用和脚本可能会访问返回到您网页的令牌和其他用户凭据。通过仅限于验证和存储令牌数据的重定向 URI 位置来限制对敏感数据的访问权限。
后续步骤
确保您的应用符合本页上的 OAuth 2.0 政策后,请参阅提交品牌验证申请,详细了解验证流程。