受限范围验证

某些 Google API(接受 敏感 受限 范围的 Google API)对请求访问消费者数据的应用有要求。 这些针对受限范围的附加要求要求应用证明其是获得许可的应用类型,并提交至额外审核(包括可能进行的安全性评估)。

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

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

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

了解受限范围

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

了解范围使用情况

  • 查看您的应用使用或想要使用的范围。如需查找现有范围的使用情况,请检查应用的源代码,找出随授权请求发送的所有范围。
  • 确定每个请求的范围对于应用功能的预期操作来说都是必要的,并使用提供该功能所需的最小权限。通常,Google API 会在产品的 Google 开发者页面上针对其端点提供参考文档,其中包括调用该端点所需的范围或其中的特定属性。如需详细了解应用调用的 API 端点的必要访问权限范围,请参阅这些端点的参考文档。 For example, for an app that only uses Gmail APIs to occasionally send emails on a user's behalf, don't request the scope that provides full access to the user's email data.
  • 您只能按照该 API 的政策以及在应用的操作和隐私权政策中向用户传达的方式使用从 Google API 接收的数据。
  • 如需详细了解每个范围(包括其可能的 sensitive or restricted 状态),请参阅 API 文档。
  • 在 API Console的 OAuth 同意屏幕配置范围页面中声明您的应用使用的所有范围。您指定的范围会归入敏感类别或受限类别,以突出显示所需的任何其他验证。
  • 找到与您的集成所用数据匹配的最佳范围,了解其使用情况,重新确认一切在测试环境中仍然正常运行,然后准备提交以进行验证。

请务必考虑在应用或任何需要新范围的新功能的发布计划中完成验证所需的时间。如果应用通过服务器或能够访问 Google 用户数据,则需满足下列附加要求之一。在这些情况下,系统必须每年接受由 Google 批准的独立第三方评估机构进行的安全性评估。因此,受限范围验证流程可能需要几周才能完成。请注意,所有应用都必须先完成品牌验证步骤,此过程通常需要 2-3 个工作日(如果自上次获批的 OAuth 同意屏幕验证以来品牌信息发生了更改)。

允许的应用类型

某些应用类型可以访问每个产品的受限范围。您可以在特定产品的 Google 开发者页面(例如 Gmail API 政策)上找到应用类型。

了解和确定您的应用类型是您有责任。 不过,如果您确实不确定应用的应用类型,在提交应用进行验证时,无法针对“您将使用哪些功能?”问题选择任何选项。 然后,Google API 的验证团队将确定应用类型。

安全性评估

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

为了实现安全评估标准化,我们利用 应用防御联盟 云应用安全性评估框架 (CASA)

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

Google 审核团队会在需要重新认证您的应用时向您发送电子邮件。为了确保您团队中的合适成员能收到这项年度违规处置通知,请以所有者或编辑者身份将其他 Google 账号与您的 API Console 项目关联。这也有助于及时了解 Google API Console OAuth Consent Screen page中指定的用户支持和开发者联系电子邮件地址。

准备验证的步骤

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

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

应用首页要求

请确保您的首页满足以下要求:

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

应用隐私权政策链接要求

请确保您的应用的隐私权政策满足以下要求:

  • 隐私权政策必须向用户显示,托管在应用首页所在的网域中,并且链接到 Google API Console的 OAuth 同意屏幕上。请注意,首页必须包含应用功能说明,以及指向隐私权政策和可选服务条款的链接。
  • 隐私权政策必须披露您的应用访问、使用、存储或共享 Google 用户数据的方式。 The privacy policy must comply with the Google API Services User Data Policy and the Limited Use requirements for restricted scopes. 您在使用 Google 用户数据时,必须严格遵循已发布的隐私权政策中披露的做法。
  • Review example cases of privacy policies that don't meet the Limited Use requirements.

如何提交应用进行验证

Google API Console 项目用于组织您的所有 API Console 资源。项目包含一组有权执行项目操作的关联 Google 账号、一组已启用的 API,以及这些 API 的结算、身份验证和监控设置。例如,一个项目可以包含一个或多个 OAuth 客户端,配置 API 以供这些客户端使用,并配置一个 OAuth 同意屏幕,在用户授权访问您的应用之前向其显示该屏幕。

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

若要提交以进行验证,请按以下步骤操作:

  1. 确保您的应用遵守 Google API 服务条款Google API 服务用户数据政策
  2. 请确保项目关联账号的所有者和编辑者角色处于最新状态,并在 API Console中包含 OAuth 同意屏幕的用户支持电子邮件地址和开发者联系信息。这样可确保任何新要求都能通知团队中相应的成员。
  3. 前往 API ConsoleOAuth Consent Screen page
  4. 点击 Project selector 按钮。
  5. 在随即显示的请选择:对话框中,选择您的项目。如果您找不到项目,但知道项目 ID,则可以在浏览器中构建以下格式的网址:

    https://console.developers.google.com/apis/credentials/consent?project=[PROJECT_ID]

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

  6. 选择 Edit App 按钮。
  7. 在 OAuth 同意屏幕页面上输入必要的信息,然后选择保存并继续按钮。
  8. 使用添加或移除范围按钮来声明应用请求的所有范围。非敏感范围部分会预填充 Google 登录所需的一组初始范围。添加的范围被归类为非敏感 sensitive, or restricted。
  9. 提供最多三个链接,指向应用中相关功能的任何相关文档。
  10. 在后续步骤中,按照要求提供关于您应用的任何其他信息。

    1. Ensure your app complies with the Additional requirements for specific API scopes, which includes undergoing an annual security assessment if your app accesses restricted scope Google users' data from or through a third-party server.
    2. Ensure your app is one of the allowed types specified in the Limited Use section of the Additional requirements for specific API scopes page.
    3. If your app is a task automation platform, your demonstration video must showcase how multiple API workflows are created and automated, and in which directions user data flows.
    4. Prepare a video that fully demonstrates how a user initiates and grants access to the requested scopes and shows, in detail, the usage of the granted sensitive and restricted scopes in the app. Upload the video to YouTube Studio and set Visibility as Unlisted. You need to provide a link to the demonstration video in the YouTube link field.

      1. Show the OAuth grant process that users will experience, in English. This includes the consent flow and, if you use Google Sign-In, the sign-in flow.
      2. Show that the OAuth consent screen correctly displays the App Name.
      3. Show that the browser address bar of the OAuth consent screen correctly includes your app's OAuth client ID.
      4. To show how the data will be used, demonstrate the functionality that's enabled by each sensitive and restricted scope that you request.
      5. If you use multiple clients, and therefore have multiple OAuth client IDs, show how the data is accessed on each OAuth client.
    5. Select your permitted application type from the "What features will you use?" list.
    6. Describe how you will use the restricted scopes in your app and why more limited scopes aren't sufficient.
  11. 如果您提供的应用配置需要验证,您可以选择提交应用进行验证。填写必填字段,然后点击提交以启动验证流程。

您提交应用后,Google 的信任与安全团队会通过电子邮件与您联系,告知您他们需要的任何其他信息或您必须完成的步骤。请查看开发者联系信息部分中的电子邮件地址,以及 OAuth 同意屏幕上的支持电子邮件地址,以请求获取其他信息。您还可以查看项目的 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 网域的企业帐号