受限范围验证

某些 Google API(接受敏感或受限范围的 API)对寻求访问消费者数据权限的应用有要求。这些针对受限范围的额外要求要求应用证明其属于允许的应用类型,并接受额外的审核,其中可能包括安全评估。

API 中受限范围的适用性主要取决于在应用中提供相关功能所需的访问权限级别:只读、只写、读写等。

当您使用 OAuth 2.0 从 Google 账号获取访问这些数据的权限时,您可以使用名为“范围”的字符串来指定要访问的数据类型以及所需的访问权限。如果您的应用请求敏感或受限范围,您需要完成验证流程,除非您的应用的使用情形符合例外情况。

与敏感范围相比,受限范围的数量较少。OAuth API 验证常见问题解答包含当前敏感和受限范围的列表。这些范围可提供对 Google 用户数据的广泛访问权限,并且要求您先完成范围验证流程,然后才能向任何 Google 账号请求这些范围。如需了解此要求,请参阅 Google API 服务用户数据政策和针对特定 API 范围的其他要求或特定于产品的 Google Developers 页面。如果您在服务器上存储或传输受限范围数据,则需要完成安全评估。


了解受限范围

如果您的应用请求任何受限范围,并且不符合例外情况,则您需要满足 Google API 服务用户数据政策的针对特定 API 范围的额外要求,或产品Google Developers 页面上的产品特定要求,这需要更广泛的审核流程。

了解您的范围使用情况

  • 查看您的应用正在使用或您希望使用的范围。如需查找现有的范围使用情况,请检查应用的源代码,看看是否有任何范围随授权请求一起发送。
  • 确定每个请求的范围对于应用功能的预期操作都是必要的,并使用提供该功能所需的最小权限。Google API 通常会在产品的 Google Developers 页面上提供其端点的参考文档,其中包括调用端点或其中特定属性所需的范围。如需详细了解应用调用的 API 端点所需的访问权限范围,请参阅这些端点的参考文档。例如,如果应用仅使用 Gmail API 偶尔代表用户发送电子邮件,请勿请求提供对用户电子邮件数据的完整访问权限的范围。
  • 您从 Google API 接收的数据只能按照 API 的政策以及您在应用的操作和隐私权政策中向用户说明的方式使用。
  • 请参阅 API 文档,详细了解每个范围,包括其潜在的敏感或受限状态。
  • 在 Cloud 控制台的“数据访问”页面中声明应用使用的所有范围。您指定的范围会归入敏感或受限类别,以突出显示所需的任何其他验证。
  • 找到与集成所用数据匹配的最佳范围,了解其用途,重新确认在测试环境中一切仍能正常运行,然后准备提交验证。

在为应用或任何需要新范围的新功能制定发布计划时,请务必考虑完成验证所需的时间。如果应用从服务器或通过服务器访问或能够访问 Google 用户数据,则需要满足其中一项额外要求。在这种情况下,系统必须接受由 Google 批准的独立第三方评估机构进行的年度安全评估。因此,受限范围验证流程可能需要几周时间才能完成。请注意,如果品牌信息自上次获批的 OAuth 权限请求页面验证以来发生了变化,则所有应用都必须先完成品牌验证步骤,这通常需要 2-3 个工作日。


允许的应用类型

某些应用类型可以访问每种产品的受限范围。您可以在具体产品的 Google Developers 页面(例如 Gmail API 政策)中找到这些应用类型。

您有责任了解并确定您的应用类型。 不过,如果您确实不确定应用的应用类型,则可以在提交应用进行验证时,不选择您将使用哪些功能?问题的任何选项。然后,Google API 的验证团队将确定应用类型。


Security assessment

每个请求访问 Google 用户的受限数据并且能够从第三方服务器或通过第三方服务器访问数据的应用,都必须接受 Google 选任的安全评估员进行的安全评估。此评估会验证所有访问 Google 用户数据的应用是否能够安全地处理数据,以及是否能够根据用户请求删除用户数据,从而帮助确保 Google 用户数据的安全。

为了使安全评估标准化,我们使用了应用防卫联盟和云应用安全评估框架 (CASA)。

如前所述,为了保持对任何已验证的受限范围的访问权限,应用必须在评估机构的评估函 (LOA) 批准日期后至少每 12 个月重新验证一次合规性并完成安全评估。如果您的应用添加了新的受限范围,并且该范围未包含在之前的安全评估中,则可能需要重新评估您的应用,以涵盖该额外范围。

Google 审核团队会在需要重新认证您的应用时向您发送电子邮件。为确保您团队中的正确成员收到此年度强制执行通知,请将其他 Google 账号作为所有者或编辑者与您的 Cloud 控制台项目相关联。此外,这还有助于及时更新 Google Cloud 控制台 OAuth 品牌信息页面中指定的用户支持和开发者联系电子邮件。


验证准备步骤

所有使用 Google API 请求访问数据的应用都必须执行以下步骤来完成品牌验证:

  1. 确认您的应用不属于验证要求的例外情况部分中的任何用例。
  2. 确保您的应用符合相关 API 或产品的品牌要求。例如,请参阅 Google 登录范围的品牌推广指南。
  3. 在 Google Search Console 中验证项目授权网域的所有权。使用与您的 API 控制台项目关联的 Google 账号(作为所有者或编辑者)。
  4. 确保 OAuth 权限请求页面上的所有品牌信息(例如应用名称、支持电子邮件、首页 URI、隐私权政策 URI 等)准确代表应用的身份。

应用首页要求

请确保您的首页符合以下要求:

  • 您的首页必须可公开访问,而不仅仅是可供网站的登录用户访问。
  • 您的首页与正在接受审核的应用之间的相关性必须清晰明确。
  • 指向您应用在 Google Play 商店中的详情页面或其 Facebook 页面的链接不被视为有效的应用首页。

应用隐私权政策链接要求

请确保应用的隐私权政策符合以下要求:

  • 隐私权政策必须对用户可见,托管在与应用首页相同的网域中,并链接到 Google API 控制台的 OAuth 权限请求页面。请注意,首页必须包含应用功能的说明,以及指向隐私权政策和可选服务条款的链接。
  • 隐私权政策必须披露您的应用访问、使用、存储或分享 Google 用户数据的方式。隐私权政策必须符合《Google API 服务用户数据政策》和针对受限范围的《使用限制要求》。您对 Google 用户数据的使用方式必须仅限于您已发布的隐私权政策中披露的做法。
  • 查看不符合“使用限制”要求的隐私权政策示例。

如何提交应用以进行品牌验证

Google Cloud 控制台项目用于整理您的所有 Cloud 控制台资源。项目包含一组有权执行项目操作的关联 Google 账号、一组已启用的 API,以及这些 API 的结算、身份验证和监控设置。例如,一个项目可以包含一个或多个 OAuth 客户端,配置供这些客户端使用的 API,以及配置在用户授权访问您的应用之前向用户显示的 OAuth 权限请求页面。

如果您的任何 OAuth 客户端尚未准备好投入生产,我们建议您将其从请求验证的项目中删除。您可以在“客户”页面中执行此操作。

如需提交验证申请,请按以下步骤操作:

  1. 确保您的应用符合 Google API 服务条款和 Google API 服务用户数据政策。
  2. 在 Cloud 控制台中,及时更新项目关联账号的所有者和编辑者角色,以及 OAuth 权限请求页面的用户支持电子邮件地址和开发者联系信息。这样可确保您团队中的相关成员能够收到任何新要求的通知。
  3. 前往 Cloud 控制台的 OAuth “品牌信息”页面。
  4. 点击项目选择器按钮。
  5. 在随即显示的请选择:对话框中,选择您的项目。如果您找不到项目,但知道项目 ID,则可以在浏览器中按以下格式构建网址:

    https://console.developers.google.com/auth/branding?project=[PROJECT_ID]
    

    将 [PROJECT_ID] 替换为您要使用的项目 ID。

  6. 在品牌页面中,提供应用的品牌信息,包括应用名称、徽标、开发者联系信息和相关链接。您所做的任何更改都会保存为品牌草稿。

  7. 点击验证品牌信息按钮,开始评估流程。自动审核通常会在几分钟内完成。

  8. 评估完成后,查看状态。如果成功,状态会更改为可发布。如果自动验证失败,您可以查看检测到的问题,然后解决这些问题或申请人工审核。

  9. 点击发布品牌信息按钮,使新品牌信息生效。

  10. 如果您的应用还需要针对敏感或受限范围进行验证,请前往 OAuth 验证中心,跟踪您的数据访问状态,并提供所要求的任何其他信息,例如演示视频。请注意,您必须先发布品牌,然后才能申请数据访问权限验证。

  11. 使用添加或移除范围按钮声明应用请求的所有范围。非敏感范围部分中预填充了 Google 登录所需的一组初始范围。添加的范围分为非敏感、敏感或受限。

  12. 最多可以提供三个指向应用中相关功能的相关文档的链接。

  13. 在后续步骤中,提供系统要求的关于您应用的所有其他信息。

    1. 确保您的应用符合针对特定 API 范围的其他要求,包括如果您的应用通过第三方服务器访问受限范围的 Google 用户数据,则需要进行年度安全评估。
    2. 确保您的应用属于针对特定 API 范围的其他要求页面的使用限制部分中指定的允许类型。
    3. 如果您的应用是任务自动化平台,则演示视频必须展示如何创建多个 API 工作流并使其自动化,以及用户数据的流向。
    4. 准备一个视频,完整演示用户如何发起和授予对所请求范围的访问权限,并详细展示应用如何使用已获授权的敏感范围和受限范围。将视频上传到 YouTube 工作室,并将公开范围设置为不公开列出。您需要在 YouTube 链接字段中提供演示视频的链接。
      1. 以英文展示用户将经历的 OAuth 授权流程。 这包括意见征求流程,如果您使用 Google 登录,还包括登录流程。
      2. 显示 OAuth 权限请求页面正确显示了应用名称。
      3. 显示 OAuth 权限请求页面的浏览器地址栏中正确包含应用的 OAuth 客户端 ID。
      4. 为了展示数据的使用方式,请演示您请求的每个敏感和受限范围所启用的功能。
      5. 如果您使用多个客户端,因而有多个 OAuth 客户端 ID,请展示每个 OAuth 客户端如何访问数据。
    5. 从“您将使用哪些功能?”列表中选择您获准的应用类型。
    6. 说明您将在应用中如何使用受限范围,以及限制条件更多的范围为何无法满足您的需求。

在您发布品牌信息或提交数据访问请求后,Google 的信任与安全团队可能会通过电子邮件跟进,告知您他们需要的任何其他信息或您必须完成的步骤。请查看开发者联系信息部分中的电子邮件地址以及 OAuth 权限请求页面中的支持电子邮件,了解是否收到了要求提供更多信息的请求。您还可以查看项目的“品牌信息”或“验证中心”页面,确认项目的当前审核状态,包括审核流程是否因等待您的回复而暂停。

验证要求的例外情况

如果您的应用将在以下各部分所述的任何场景中使用,则无需提交审核。

个人使用

一种用例是,您是应用的唯一用户,或者应用只有少数用户,且这些用户都是您本人认识的。您和您的少数用户可能愿意通过未经验证的应用屏幕,并授予您的个人账号对您应用的访问权限。

在开发、测试或预演层级中使用的项目

为了遵守 Google OAuth 2.0 政策,我们建议您为测试环境和生产环境分别创建不同的项目。我们建议您仅在希望将应用提供给拥有 Google 账号的任何用户时,才提交应用进行验证。因此,如果您的应用处于开发、测试或预演阶段,则无需进行验证。

如果您的应用处于开发或测试阶段,您可以将发布状态保留为默认设置测试。此设置意味着您的应用仍处于开发阶段,并且只能供添加到测试用户列表中的用户使用。您必须管理参与应用开发或测试的 Google 账号列表。

警告消息,指出 Google 尚未验证正在测试的应用。
图 1. 测试人员警告屏幕

仅限服务拥有的数据

如果您的应用使用服务账号仅访问其自己的数据,而不访问任何用户数据(与 Google 账号关联),则您无需提交验证。

如需了解什么是服务账号,请参阅 Google Cloud 文档中的服务账号。如需了解如何使用服务账号,请参阅将 OAuth 2.0 用于服务器到服务器应用。

仅限内部使用

这意味着该应用仅供您的 Google Workspace 或 Cloud Identity 组织中的用户使用。项目必须归组织所有,并且其 OAuth 权限请求页面需要配置为内部用户类型。在这种情况下,您的应用可能需要获得组织管理员的批准。如需了解详情,请参阅 Google Workspace 的其他注意事项。

全网域安装

如果您计划让应用仅面向 Google Workspace 或 Cloud Identity 组织的用户,并始终使用全网域安装,则您的应用不需要进行品牌验证。但是,如果您的应用使用受限或敏感范围,则需要进行应用验证。这是因为全网域安装允许网域管理员向第三方和内部应用授予对用户数据的访问权限。只有组织管理员账号才能将应用添加到许可清单,以便在其网域中使用。

如需了解如何将应用设为全网域安装,请参阅常见问题解答我的应用有来自其他 Google Workspace 网域的企业账号用户。