当您准备好将部署后的解决方案(超出开发环境)部署到应用的用户时,您可能需要采取其他措施才能符合 Google 的 OAuth 2.0 政策。在本指南中,我们概述了如何解决在准备应用进行生产环境时遇到的最常见的开发者问题。这有助于您尽量减少错误,尽可能覆盖最多的受众群体。
- 使用单独的项目进行测试和生产
- 维护项目的相关联系人列表
- 准确表述您的身份
- 仅请求您需要的范围
- 提交使用敏感范围或受限范围的正式版应用进行验证
- 仅使用您拥有的域名
- 托管正式版应用的首页
- 使用安全的重定向 URI 和 JavaScript 源
使用单独的项目进行测试和生产
Google 的 OAuth 政策要求将单独的项目用于测试和生产。某些政策和要求仅适用于正式版应用。您可能需要创建和配置一个单独的项目,其中包含与适用于所有 Google 帐号的正式版应用相对应的 OAuth 客户端。
与测试或调试同一应用的类似 OAuth 客户端相比,生产环境中使用的 Google OAuth 客户端有助于提供更稳定、可预测且更安全的数据收集和存储环境。您的生产项目可以提交进行验证,因此需要满足特定 API 范围的额外要求,其中可能包括第三方安全评估。
- Go to the Google API Console. Click Create project, enter a name, and click Create.
- 查看此项目中可能与测试层级关联的 OAuth 客户端。如果适用,请为生产项目中的生产客户端创建类似的 OAuth 客户端。
- 启用客户端正在使用的任何 API。
- 在新项目中查看您的 OAuth 同意屏幕配置。
生产中使用的 Google OAuth 客户端不得包含只有您或您的开发团队可以使用的测试环境、重定向 URI 或 JavaScript 源。以下是一些示例:
- 各个开发者的测试服务器
- 测试或预发布版本
维护项目的相关联系人列表
Google 以及您启用的各个 API 可能需要就您的项目及其客户端所需的服务更改或新配置与您联系。检查您的项目的 IAM 列表,以确保您团队中的相关人员有权修改或查看您的项目配置。这些帐号还可能收到关于项目必要更改的电子邮件。
角色包含一组权限,可让您对项目资源执行特定操作。项目编辑者有权修改状态,例如有权更改项目的 OAuth 权限请求页面。拥有所有编辑者权限的项目所有者可以添加或移除与项目关联的帐号,也可以删除项目。项目所有者还可以提供相关信息,说明为何需要设置结算信息。项目所有者可以为使用付费 API 的项目设置结算信息。
项目所有者和编辑者必须保持最新状态。您可以向项目添加多个相关帐号,以确保继续访问项目及相关维护工作。当有关于您的项目的通知或我们的服务有更新时,我们会向这些帐号发送电子邮件。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。使用与您的项目相关联的 Google 帐号作为所有者或编辑者。 API Console
如果您的项目使用具有通用共享网域的服务提供商,我们建议您启用允许使用您自己的网域的配置。一些提供商会询问是否将其服务映射到您已拥有网域的子网域。
托管正式版应用的首页
每个使用 OAuth 2.0 的正式版应用都必须具有可公开访问的首页。您的应用的潜在用户可能会访问首页,详细了解该应用提供的特性和功能。现有用户可以查看现有授权列表,并访问应用的首页,提醒他们继续使用相应产品。
应用的首页必须包含对应用功能的说明、隐私权政策链接和可选服务条款。首页必须位于您名下已经过验证的网域上。
使用安全的重定向 URI 和 JavaScript 源
适用于 Web 应用的 OAuth 2.0 客户端必须使用 HTTPS 重定向 URI 和 JavaScript 源(而不是普通的 HTTP)来保护数据。Google 可以拒绝并非源自或无法解析为安全上下文的 OAuth 请求。
考虑哪些第三方应用和脚本可能有权访问返回网页的令牌和其他用户凭据。通过仅限验证和存储令牌数据的重定向 URI 位置来限制对敏感数据的访问。
后续步骤
确保您的应用符合本页上的 OAuth 2.0 政策后,请参阅提交品牌验证以详细了解验证流程。