身份验证和授权是分别用于验证身份和访问资源的机制。本文档介绍了在应用中实现身份验证和授权之前您应该了解的关键术语。
注意:本概览重点介绍 Google Workspace API 的身份验证和授权。本文档中的某些信息可能与其他 Google API 无关。
流程概览
下图显示了 Google Workspace API 身份验证和授权的简要步骤:

配置 Google Cloud 项目和应用:在开发过程中,您可以在 Google Cloud 控制台中注册应用,定义授权范围和访问凭据,以便使用 API 密钥、最终用户凭据或服务帐号凭据对应用进行身份验证。
对应用进行身份验证以访问:当您的应用运行时,系统会评估已注册的访问凭据。如果您的应用以最终用户的身份进行身份验证,则系统可能会显示登录提示。
请求资源:当您的应用需要访问 Google 资源时,它会使用您之前注册的相关访问范围要求 Google。
征求用户同意:如果您的应用以最终用户的身份进行身份验证,Google 会显示 OAuth 权限请求页面,以便用户决定是否授予应用访问请求的数据的权限。
发送已批准的资源请求:如果用户同意访问范围,您的应用会将凭据和用户批准的访问权限范围捆绑到请求中。系统会向 Google 授权服务器发送请求,以获取访问令牌。
Google 返回访问令牌:访问令牌包含授予的访问权限范围列表。如果返回的范围列表比请求的访问权限范围更有限,则您的应用会停用受该令牌限制的任何功能。
访问请求的资源:您的应用使用 Google 提供的访问令牌来调用相关 API 并访问资源。
获取刷新令牌(可选):如果您的应用需要访问某个访问令牌生命周期之外的 Google API,则可以获取刷新令牌。
请求更多资源:如果需要更多访问权限,您的应用会要求用户授予新的访问权限范围,从而产生获取访问令牌的新请求(第 3-6 步)。
重要术语
下面列出了与身份验证和授权相关的术语:
- 身份验证
确保主帐号(即用户或代表用户执行操作的应用)的行为符合其身份。编写 Google Workspace 应用时,您应该了解以下类型的身份验证:
- 用户身份验证
- 用户身份验证(登录)您的应用的行为。用户身份验证通常通过登录流程来完成,在此过程中,用户会使用用户名和密码来验证其对应用的身份。可以使用登录 Google 将用户身份验证整合到应用中。
- 应用身份验证
- 应用代表运行应用的用户直接向 Google 服务进行身份验证的行为。应用身份验证通常使用应用代码中的预创建凭据执行。
- 授权
主帐号访问数据或执行操作的权限或“授权”。授权行为是通过您在应用中编写的代码执行的。此代码会通知用户希望应用代表其执行操作,并在允许的情况下使用您的应用的唯一凭据从 Google 获取用于访问数据或执行操作的访问令牌。
- 凭据
一种在软件安全中使用的一种身份识别方法。对于身份验证,凭据通常是用户名/密码组合。对于 Google Workspace API 的授权,凭据通常是某种形式的标识,例如唯一秘密字符串,仅在应用开发者和身份验证服务器之间已知。Google 支持下列身份验证凭据:API 密钥、OAuth 2.0 客户端 ID 和服务帐号。
- API 密钥
- 用于请求访问公共数据的凭据,例如使用 Maps API 提供的数据,或使用 Google Workspace 共享设置中的“知道此链接的互联网上的任何人”设置共享的 Google Workspace 文件。
- OAuth 2 客户端 ID
- 用于请求访问用户拥有的数据的凭据。这是请求使用 Google Workspace API 访问数据时使用的主要凭据。此凭据需要征得用户同意。
- 客户端密钥
- 一个只有您的应用和授权服务器应该知道的字符串。客户端密钥通过仅向已获授权的请求者授予令牌来保护用户数据。您绝不能在应用中包含客户端密钥。
- 服务帐号密钥
- 供服务帐号用于获取 Google 服务授权。
- 服务帐号
- 用于服务器到服务器交互的凭据,例如以进程的形式访问某些数据或执行某些操作的无面应用。服务帐号通常用于访问云端数据和操作。不过,如果与全网域授权搭配使用,则可用于访问用户数据。
- 范围
OAuth 2.0 URI 字符串,用于定义对应用授予的资源或操作的访问权限级别。对于 Google Workspace,授权范围 URI 包含 Google Workspace 应用名称、访问的数据类型以及访问权限级别。应用用户可以审核请求的范围并选择要授予的访问权限,然后 Google 的身份验证服务器会以访问令牌的形式向您的应用返回允许的范围。如需了解详情,请参阅如何为应用选择范围。
- 授权服务器
Google 服务器用于使用访问令牌向应用请求的数据和操作授予访问权限。
- 授权代码
从授权服务器发送的代码,用于获取访问令牌。只有在您的应用类型为网络服务器应用或安装版应用时,才需要使用代码。
- 访问令牌
授予对 Google Workspace API 访问权限的令牌。单个访问令牌可以授予对多个 API 的不同级别的访问权限(称为“范围”)。您的应用的授权代码会请求访问令牌并使用它们来调用 Google Workspace API。
- 资源服务器
托管您的应用要调用的 API 的服务器。
- OAuth 2.0 框架
一种标准,应用可通过它代表应用用户向其提供“安全委托访问权限”或数据和操作的访问权限。您在应用中使用的身份验证和授权机制表示 OAuth 2.0 框架的实现。
- 主帐号
可授予对资源访问权限的实体,也称为身份。Google Workspace API 支持两种类型的主帐号:用户帐号和服务帐号。如需了解详情,请参阅主帐号。
- 数据类型
在身份验证和授权的上下文中,数据类型是指拥有应用尝试访问的数据的实体。有三种数据类型:
- 公共领域数据
- 任何人都可以访问的数据,例如某些 Google 地图数据。这些数据通常使用 API 密钥访问。
- 最终用户数据
- 属于特定最终用户或群组的数据,例如特定用户的 Google 云端硬盘文件。此数据类型通常使用 OAuth 2 客户端 ID 或服务帐号进行访问。
- 云数据
- 拥有 Google Cloud 项目的数据。此数据类型通常由服务帐号访问。
- 用户意见征求
一个授权步骤,要求应用的用户授权应用代表其访问数据和执行操作。
- 应用类型
将要创建的应用的类型。使用 Google Cloud 控制台创建凭据时,系统会要求您选择应用类型。 应用类型包括:Web 应用 (JavaScript)、Android、Chrome 应用、iOS、TV 和受限输入设备、桌面应用(也称为“安装版应用”)以及通用 Windows 平台 (UWP)。
- 服务帐号
一种特殊类型的 Google 帐号,旨在代表需要进行身份验证并获得授权才能访问数据的非人类用户。您的应用会假定服务帐号的身份来调用 Google API,这样用户就不必直接参与。服务帐号本身不能用于访问用户数据;数据通常使用 Workspace API 访问。不过,服务帐号可以通过实施全网域授权委派来访问用户数据。如需了解详情,请参阅了解服务帐号。
- 全网域授权
一项管理功能,用于授权应用代表 Google Workspace 组织中的用户访问用户数据。全网域授权可用于对用户数据执行与管理相关的任务。为了以这种方式委托权限,Google Workspace 管理员需要将服务帐号与 OAuth 2.0 搭配使用。由于此功能强大,因此只有超级用户可以启用全网域授权。如需了解详情,请参阅将全网域授权委派给服务帐号。
后续步骤
配置应用的 OAuth 权限请求页面,确保用户可以了解和批准您的应用对其数据的访问权限。