遵守 OAuth 2.0 政策

当您准备好在开发环境之外向应用用户部署已实现的解决方案时,您可能需要执行额外的步骤,以符合 Google 的 OAuth 2.0 政策。在本指南中,我们概述了在准备正式版应用时,我们应如何确保开发者遇到的最常见开发者问题。这有助于您在不超出限制的情况下覆盖尽可能多的受众群体。

将不同的项目用于测试和生产

Google 的 OAuth 政策要求使用单独的项目进行测试和生产。某些政策和要求仅适用于正式版应用。您可能需要创建和配置一个单独的项目,其中包含的 OAuth 客户端对应于可供所有 Google 帐号使用的正式版应用。

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

  1. Go to the Google API Console. Click Create project, enter a name, and click Create.
  2. 查看此项目中可能与测试层级关联的 OAuth 客户端。如果适用,请在生产项目中为生产客户端创建类似的 OAuth 客户端。
  3. 启用客户端正在使用的任何 API
  4. 查看新项目中的 OAuth 同意屏幕配置。

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

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

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

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

角色包含一组权限,可让您对项目资源执行特定操作。项目编辑者有权执行修改状态的操作,例如,能够更改项目的 OAuth 同意屏幕。拥有所有编辑者权限的项目所有者可以添加或移除与项目关联的帐号,也可以删除项目。项目所有者还可以提供相关背景信息,说明为什么可能需要设置结算信息。项目所有者可以为使用付费 API 的项目设置结算信息。

项目所有者和编辑者必须随时掌握最新动态。您可以向项目添加多个相关帐号,以确保能够继续访问项目并进行相关维护。如果有关于您的项目或 Google 服务更新的通知,我们会向这些账号发送电子邮件。Google Cloud 组织管理员必须确保其组织中的每个项目都与一位可取得联系的联系人相关联。如果我们没有您项目的最新联系信息,您可能会错过需要您采取措施的重要消息。

准确表述您的身份

请提供有效的应用名称和(可选)向用户显示的徽标。此品牌信息必须准确反映您的应用的身份。应用品牌信息通过 OAuth Consent Screen page配置。

对于正式版应用,您的 OAuth 权限请求页面中定义的品牌信息必须经过验证才能向用户显示。您的应用完成品牌验证后,用户更有可能授予对该应用的访问权限。当用户查看现有授权时,或查看组织对应用使用情况的 Google Workspace 管理员时,会在授权屏幕上向用户显示基本应用信息(包括应用的名称、首页、服务条款和隐私权政策)。

对于虚假陈述自身身份或试图欺骗用户的应用,Google 可以撤消或暂停其对 Google API 服务及其他 Google 产品和服务的访问权限。

仅请求您需要的范围

在应用开发过程中,您可能已使用 API 提供的示例范围在应用中创建了概念验证,以详细了解该 API 的特性和功能。这些示例范围请求的信息通常比应用的最终实现所需要的信息多,因为它们全面涵盖针对特定 API 的所有可能操作。例如,示例范围可能会请求读取、写入和删除权限,而您的应用只需要读取权限。 请求相关权限,权限范围仅限于实现应用所需的关键信息。

查看应用调用的 API 端点的参考文档,并记下它们访问应用所需的相关数据所需的范围。请查看该 API 提供的所有授权指南,并更详细地描述其范围以包括最常见的用途。请选择您的应用为实现相关功能所需的最小数据访问权限。

如需详细了解此要求,请参阅 OAuth 2.0 政策的仅您所需的请求范围部分,以及 Google API 服务用户数据政策的请求相关权限部分。

提交使用敏感或受限范围的正式版应用进行验证

某些范围被归类为“敏感”或“受限”,未经审核,无法在正式版应用中使用。请在 OAuth 同意屏幕配置中输入正式版应用使用的所有范围。如果您的正式版应用使用敏感或受限范围,您必须先提交使用这些范围进行验证,然后再将这些范围添加到授权请求中。

仅使用您拥有的网域

Google 的 OAuth 同意屏幕验证流程要求验证与项目的首页、隐私权政策、服务条款、已获授权的重定向 URI 或已获授权的 JavaScript 来源关联的所有网域。查看您的应用使用的网域列表(汇总了 OAuth 同意屏幕编辑器的已获授权的网域部分),并找出任何不归您所有且无法验证的网域。如需验证对项目已获授权的网域的所有权,请使用 Google Search Console。使用与您的 API Console 项目关联的 Google 帐号作为 Owner 或 Editor。

如果您的项目使用具有通用共享网域的服务提供商,我们建议您启用允许使用您自己的网域的配置。某些提供商会主动将其服务映射到您已拥有的域名的子域名。

托管正式版应用的首页

每个使用 OAuth 2.0 的正式版应用都必须拥有一个可公开访问的首页。您的应用的潜在用户可能会访问首页,详细了解该应用提供的特性和功能。现有用户可以查看其现有授权列表,并访问应用的首页,提醒他们继续使用您的产品。

应用的首页必须包含应用功能说明,以及指向隐私权政策和可选服务条款的链接。首页必须位于您所有权名下且经过验证的网域上。

使用安全重定向 URI 和 JavaScript 来源

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

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

后续步骤

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