敏感范围验证

如果您的应用请求使用 Google API 访问 Google 用户的数据的权限,您可能需要先完成验证流程,然后才能首次公开提供您的应用。

此要求是否适用于您的应用主要取决于以下两个因素:

  1. 您访问的用户数据的类型 - 公开个人资料信息、日历条目、云端硬盘中的文件、某些健康与健身数据等。
  2. 您需要的访问权限级别 - 只读、读写等。

当您使用 OAuth 2.0 从 Google 账号获取访问其数据的权限时,您可以使用称为“范围”的字符串来指定您要代表他们访问的数据类型。 如果您的应用请求的范围被归类为敏感受限, 您可能需要完成验证流程,除非您的应用的使用 符合例外情况

敏感范围的示例包括读取 Google 日历中存储的活动、在 Google 通讯录中存储新联系人或删除 YouTube 视频。如需详细了解可用范围及其分类,请参阅您的应用调用的 API 端点的参考文档,以及为该 API 发布的任何相关授权指南。

您必须 请求提供该功能所需的对用户数据的最小访问权限 。例如,如果 API 及其相关端点有更窄的范围可用,则仅读取数据的应用不得请求读取、写入和删除内容的权限。您从 Google API 收到的数据必须仅按照 API 的政策使用,并且使用方式必须与您在应用的操作和隐私权政策中向用户说明的方式一致。

请务必将完成验证所需的时间纳入您的应用或任何需要新范围的新功能的发布计划中。敏感范围验证流程最多可能需要 10 天才能完成。请注意,您的应用可能有资格完成 品牌验证 ,作为敏感范围验证请求的一部分。

了解敏感范围

敏感范围需要经过 Google 审核,然后任何 Google 账号才能授予访问权限。Google Workspace 组织管理员可能会 限制对敏感范围的访问权限 ,以防止组织 未明确标记为受信任的 OAuth 客户端 ID 进行访问。

了解您的范围使用情况

  • 查看您的应用使用或想要使用的范围。如需查找您现有的范围使用情况, 请检查应用源代码中随授权请求发送的任何范围。
  • 确定每个请求的范围对于应用功能的预期操作是必需的 并且使用提供该功能所需的最小权限。 Google API 通常在其端点的产品 Google 开发者页面上提供参考文档,其中包含调用端点或其中特定属性所需的范围。如需详细了解您的应用调用的 API 端点所需的访问范围,请阅读这些端点的参考文档。
  • 您从 Google API 收到的数据必须仅按照 API 的政策使用,并且使用方式必须与您在应用的操作和隐私权政策中向用户说明的方式一致。
  • 请参阅 API 文档,详细了解每个范围,包括其潜在 状态。
  • 在 Cloud 控制台的 “数据访问”页面中声明您的应用使用的所有范围。 您指定的范围会分组到敏感或受限 类别中,以突出显示所需的任何其他验证。
  • 找到与您的集成所使用的数据最匹配的最佳范围,了解其用途, 重新确认一切正常运行,然后准备提交以进行 验证。
表格显示了 API 的名称、其中一个敏感范围以及该范围涵盖的内容的说明。
图 1.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 用户数据的使用限制在您发布的 隐私权政策中披露的做法范围内。

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

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 登录所需的一组初始范围。添加的范围分为非敏感范围、 sensitive, or <a href="/identity/protocols/oauth2/production-readiness/restricted-scope-verification"

    restricted。

  12. 为应用中相关功能的任何相关文档提供最多三个链接。
  13. 在后续步骤中提供有关您的应用的任何其他所需信息。

    1. Prepare a detailed justification for each requested sensitive scope, as well as an explanation for why a narrower scope isn't sufficient. For example: "My app will use https://www.googleapis.com/auth/calendar to show a user's Google calendar data on the scheduling screen of my app. This lets users manage their schedules through my app and sync the changes with their Google calendar."
    2. 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 its 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 scope that you request.

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

验证要求例外情况

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

个人使用

一种用例是,如果您是应用的唯一用户,或者您的应用仅供少数用户使用, 而您个人认识所有这些用户。您和您的少数用户可能会放心地跳过应用未经验证屏幕,并授予您的个人账号访问应用的权限。

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

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

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

2
警告消息:Google 尚未验证正在接受测试的应用。
图 2. 测试人员警告屏幕

仅限服务拥有的数据

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

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

仅限内部使用

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

全网域安装

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

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