遵守 OAuth 2.0 政策

本指南概述了在准备应用以供发布时,如何解决最常见的开发者问题,以确保应用符合相关政策。

概览

当您准备好将已实现的解决方案部署到开发环境之外,供应用的用户使用时,您可能需要采取额外的步骤来遵守 Google 的 OAuth 2.0 政策。在本指南中,我们将概述如何解决开发者在准备应用以供发布时遇到的最常见问题,从而确保应用符合相关要求。这有助于您在错误有限的情况下覆盖尽可能多的受众群体。


使用不同的项目进行测试和生产

Google 的 OAuth 政策要求为测试和生产环境使用不同的项目。部分政策和要求仅适用于正式版应用。您可能需要创建和配置一个单独的项目,其中包含与面向所有 Google 账号提供的应用正式版相对应的 OAuth 客户端。

与测试或调试同一应用的类似 OAuth 客户端相比,在生产环境中使用的 Google OAuth 客户端有助于提供更稳定、可预测且安全的数据收集和存储环境。您的生产项目可以提交验证,因此需要遵守针对特定 API 范围的其他要求,其中可能包括第三方安全评估。

  1. 前往 Google API 控制台。点击创建项目,输入名称,然后点击创建。
  2. 查看此项目中可能与您的测试层级关联的 OAuth 客户端。如果适用,请在生产项目中为生产客户端创建类似的 OAuth 客户端。
  3. 启用客户端使用的所有 API。
  4. 在 Cloud 控制台的“品牌信息”页面中,查看新项目的 OAuth 权限请求页面配置。

在生产环境中使用的 Google OAuth 客户端不得包含仅供您或您的开发团队使用的测试环境、重定向 URI 或 JavaScript 来源。下面列出了一些示例:

  • 各个开发者的测试服务器
  • 应用的测试版本或预发布版本

维护项目的相关联系人列表

Google 以及您启用的各个 API 可能需要就其服务的变更或您的项目及其客户端所需的新配置与您联系。查看项目的 IAM 列表,确保团队中的相关人员有权修改或查看项目配置。这些账号可能还会收到有关项目所需更改的电子邮件。

角色包含一组权限,可让您对项目资源执行特定操作。项目 Editor 拥有执行会修改状态的操作的权限,例如能够更改项目的 OAuth 权限请求页面。拥有所有 Editor 权限的 Project Owner 可以添加或移除与项目关联的账号,也可以删除项目。项目所有者还可以提供设置结算信息的原因。项目所有者可以为使用付费 API 的项目设置结算信息。

Project Owner 和 Editor 必须保持最新状态。您可以向项目中添加多个相关账号,以确保能够持续访问项目并进行相关维护。当有关于您的项目的通知或我们的服务有更新时,我们会向这些账号发送电子邮件。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 来源

Web 应用的 OAuth 2.0 客户端必须使用 HTTPS 重定向 URI 和 JavaScript 来源(而非纯 HTTP)来保护其数据。Google 可能会拒绝并非源自安全上下文或未解析为安全上下文的 OAuth 请求。

考虑哪些第三方应用和脚本可能有权访问返回到您网页的令牌和其他用户凭据。通过将重定向 URI 位置限制为仅用于验证和存储令牌数据,限制对敏感数据的访问。


后续步骤

确保您的应用符合本页面上的 OAuth 2.0 政策后,请参阅提交以进行品牌验证,详细了解验证流程。