凭据用于从 Google 的授权服务器获取访问令牌,以便您的应用可以调用 Google Workspace API。本文档介绍了如何选择和设置应用所需的凭据。
选择适合您的访问凭据
所需的凭据取决于应用的数据类型、平台和访问方法。有三种类型的凭据可用:
| 使用场景 | 身份验证方法 | 关于此身份验证方法 |
|---|---|---|
| 在应用中匿名访问公开提供的数据。 | API 密钥 | 在使用此身份验证方法之前,请确定您要使用的 API 支持 API 密钥。 |
| 访问用户数据,例如用户的电子邮件地址或年龄。 | OAuth 客户端 ID | 要求应用向用户进行请求并获得用户同意。 |
| 访问应用拥有的数据、特定的共享文档(例如 Google 表格),或通过 全网域授权代表用户访问 Google Workspace 资源。 | 服务账号 | 当应用是使用服务账号证明其身份时,它可以访问该服务账号有权访问的所有 资源。 |
如需了解本页面中所用术语的定义,请参阅身份验证和 授权概览。
API 密钥凭据
API 密钥是一个包含大写字母、小写字母、数字、下划线和连字符的长字符串,例如
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe。
此身份验证方法用于匿名访问公开提供的数据,例如使用“拥有此链接的任何人”共享设置共享的
Google Workspace 文件。如需了解详情,请参阅管理 API
密钥。
如需创建 API 密钥,请执行以下操作:
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > API 和服务 > 凭据。
- 点击创建凭据 > API 密钥。
- 系统会显示新的 API 密钥。
- 点击“复制”图标 ,复制 API 密钥以在应用的代码中使用 。您还可以在项目的凭据的"API 密钥"部分中找到 API 密钥。
- 为防止未经授权的使用,我们建议您限制此 API 密钥 可用于哪些位置和 API。如需了解详情,请参阅 添加 API 限制。
OAuth 客户端 ID 凭据
如需对最终用户进行身份验证并访问应用中的用户数据,您需要创建一个或多个 OAuth 2.0 客户端 ID。客户端 ID 用于向 Google 的 OAuth 服务器标识单个应用。如果您的应用在多个平台上运行,则必须为每个平台创建一个单独的客户端 ID。选择您的 应用 类型 ,以获取有关如何创建 OAuth 客户端 ID 的具体说明:
Web 应用
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > Google 身份验证平台 > 客户端。
- 点击创建客户端 。
- 依次点击应用类型 > Web 应用。
- 在名称 字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。
- 添加与您的应用相关的已获授权的 URI:
- 客户端应用 (JavaScript) \- 在已获授权的 JavaScript 来源 下,点击添加 URI 。然后,输入要用于浏览器请求的 URI。这会标识您的应用可以向 OAuth 2.0 服务器发送 API 请求的网域。
- 服务器端应用(Java、Python 等) \- 在已获授权的重定向 URI 下,点击添加 URI 。然后,输入 OAuth 2.0 服务器可以向其发送响应的端点 URI。
- 点击创建 。
新创建的凭据会显示在 OAuth 2.0 客户端 ID 下。
请注意,客户端密钥不适用于 Web 应用。
Android
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > Google 身份验证平台 > 客户端。
- 点击创建客户端 。
- 依次点击应用类型 > Android。
- 在名称 字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。
- 在软件包名称 字段中,输入
AndroidManifest.xml文件中的软件包名称。 - 在 SHA-1 证书指纹 字段中,输入您的 生成的 SHA-1 证书指纹。
- 点击创建 。
新创建的凭据会显示在“OAuth 2.0 客户端 ID”下。
iOS
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > Google 身份验证平台 > 客户端。
- 点击创建客户端 。
- 依次点击应用类型 > iOS。
- 在名称 字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。
- 在软件包 ID 字段中,输入应用的
Info.plist文件中列出的软件包标识符。 - 可选:如果您的应用显示在 Apple App Store 中,请输入 App Store ID。
- 可选:在团队 ID 字段中,输入由 Apple 生成并分配给您的团队的唯一字符串,该字符串包含 10 个字符。
- 点击创建 。
新创建的凭据会显示在“OAuth 2.0 客户端 ID”下。
Chrome 扩展程序
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > Google 身份验证平台 > 客户端。
- 点击创建客户端 。
- 依次点击应用类型 > Chrome 扩展程序。
- 在名称 字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。
- 在商品 ID 字段中,输入应用的唯一 32 字符 ID 字符串。您可以在应用的 Chrome 应用商店网址和 Chrome 应用商店开发者信息中心内找到此 ID 值。
- 点击创建 。
新创建的凭据会显示在“OAuth 2.0 客户端 ID”下。
桌面应用
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > Google 身份验证平台 > 客户端。
- 点击创建客户端 。
- 依次点击应用类型 > 桌面应用。
- 在名称 字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。
- 点击创建 。
新创建的凭据会显示在“OAuth 2.0 客户端 ID”下。
电视和受限输入设备
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > Google 身份验证平台 > 客户端。
- 点击创建客户端 。
- 依次点击应用类型 > 电视和受限输入设备。
- 在名称 字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。
- 点击创建 。
新创建的凭据会显示在“OAuth 2.0 客户端 ID”下。
服务账号凭据
服务账号是一种由应用(而非个人)使用的特殊账号。您可以使用服务账号通过机器人账号访问数据或执行操作,也可以代表 Google Workspace 或 Cloud Identity 用户访问数据。如需了解详情,请参阅 服务账号概览。请注意,在 Google Cloud 控制台中配置的 Identity and Access Management (IAM) 角色不会授予对 Google Workspace 资产 (例如 Google 表格或 Gmail)的访问权限。如需授予服务账号对 Google Workspace 资源的访问权限,您可以使用以下方法:
| 如果您的应用需要... | 在哪里进行配置... |
|---|---|
| 访问特定文件(例如 Google 表格) | 直接与服务账号的电子邮件地址共享文件或文件夹 |
| 执行网域管理(例如创建 Google Workspace 用户) | 直接为服务账号分配管理员角色 |
| 访问整个网域的用户数据(例如读取任何用户的 Gmail 或 Google 日历活动) | 授权服务账号使用全网域授权 |
创建服务账号
您可以使用 Google Cloud 控制台或 gcloud 命令行工具创建服务账号。
Google Cloud 控制台
-
在 Google Cloud 控制台中,依次点击“菜单”图标
> IAM 和管理
> 服务账号。
其余步骤会显示在 Google Cloud 控制台中。
- 选择 Google Cloud 项目。
- 点击创建服务账号 。
- 输入要在 Google Cloud 控制台中显示的服务账号名称。
- 如果您现在不想设置访问权限控制,请点击完成 以完成服务账号的创建过程。如需立即设置访问权限控制,请点击创建并继续 ,然后继续执行下一步。
- 可选:为服务账号分配角色,以授予对 Google Cloud 项目的资源以及 Google Workspace 资源的访问权限。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限。
- 点击继续 。
- 可选:输入可以管理此服务账号并使用其执行操作的用户或群组。如需了解详情,请参阅服务账号模拟。
- 点击完成 以完成服务账号的创建过程。
记下服务账号的电子邮件地址。
gcloud CLI
- 创建服务账号:
gcloud iam service-accounts createSERVICE_ACCOUNT_NAME\ --display-name="SERVICE_ACCOUNT_NAME" - 可选:为服务账号分配角色,以授予对 Google Cloud 项目的资源以及 Google Workspace 资源的访问权限。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限。
使用服务账号直接访问 Google Workspace 文件
如果您的应用只需要读取或写入特定文件(例如 Google 表格或 Google 云端硬盘文件夹),则无需分配管理员角色或配置全网域授权。相反,您可以使用标准界面直接与服务账号的电子邮件地址共享各个文件。您可以将服务账号的电子邮件地址视为文档共享设置中的用户账号,而无需管理员权限。
要授予访问权限:
- 复制服务账号的电子邮件地址。例如,
my-service-account@my-project.iam.gserviceaccount.com。 - 打开您要访问的 Google 表格文档或 Google 云端硬盘文件夹。
- 点击共享 。
- 添加服务账号的电子邮件地址,并分配适当的访问权限级别(例如“编辑者”或“查看者”)。
- 取消选中通知用户 (由于服务账号没有收件箱,因此不会收到邮件邀请,但权限仍会授予)。
- 点击共享 。
创建服务账号密钥
您需要以公钥/私钥对的形式获取凭据。您的代码使用这些凭据来授权应用中的服务账号操作。如需创建服务账号密钥,请执行以下操作:
-
在 Google Cloud 控制台中,依次点击“菜单”图标
> IAM 和管理
> 服务账号。
其余步骤会显示在 Google Cloud 控制台中。
- 选择 Google Cloud 项目。
- 点击要为其创建密钥的服务账号的电子邮件地址。
- 点击密钥 标签页。
- 点击添加密钥 下拉菜单,然后选择创建新密钥 。
- 选择 JSON 作为密钥类型 ,然后点击创建 。
系统会生成新的公钥/私钥对,并以服务账号密钥文件的形式下载到您的 计算机。将下载的 JSON 文件另存为工作目录中的
credentials.json。此文件是此密钥的唯一副本。下载密钥文件后,您无法再次下载。如需了解如何安全存储 密钥,请参阅 管理服务账号密钥的最佳实践。
为服务账号分配 Google Workspace 管理员角色
您可以将任何预先创建的或自定义的 Google Workspace 角色分配给服务账号,但超级用户角色除外。
在 Google 管理控制台中,依次点击“菜单”图标 > 账号 > 管理员角色。
您必须以超级用户身份登录才能执行此任务。
其余步骤会显示在 Google 管理控制台中。
将光标指向要分配的角色,点击
Actions下拉菜单,然后选择分配管理员角色 。点击分配服务账号 。
输入服务账号的电子邮件地址。
依次点击添加 > 分配角色。
可选:为服务账号设置全网域授权
当您的应用需要代表组织中的多个个人用户访问 Google Workspace 数据(例如使用 Gmail API 发送电子邮件)而无需获得个人用户同意时,请使用全网域授权。 如需代表 Google Workspace 组织中的用户调用 API,请使用 超级用户 账号在 Google 管理控制台中向服务账号授予全网域授权。如需了解详情,请参阅 向服务账号进行全网域授权。如需为服务账号设置全网域授权,请执行以下操作:
- 在 Google Cloud 控制台中,依次点击“菜单”图标 > IAM 和管理 > 服务账号。
- 选择 Google Cloud 项目。
- 点击要为其设置全网域授权的服务账号的电子邮件地址。
- 点击显示高级设置 。
- 在“全网域授权”下,找到服务账号的“客户端 ID”。
- 点击“复制”图标 ,将客户端 ID 值复制到剪贴板。
如果您拥有对相关 Google Workspace 账号的超级用户访问权限,请点击查看 Google Workspace 管理控制台,使用超级用户账号登录,然后继续执行以下步骤。
如果您没有对相关 Google Workspace 账号的超级用户访问权限, 请与该账号的超级用户联系。向他们发送服务账号的客户端 ID 以及应用所需的 OAuth 范围列表,以便他们可以在 Google 管理控制台中完成以下步骤。
- 在 Google 管理控制台中,依次点击“菜单”图标 > 安全性 > 访问权限和数据控件 > API 控件。
- 点击管理全网域授权 。
- 点击新增 。
- 在客户端 ID 字段中,粘贴您之前复制的客户端 ID。
- 在 OAuth 范围 字段中,输入应用所需的范围的英文逗号分隔列表。这与您在配置 OAuth 权限请求页面时定义的一组范围相同。
- 点击授权 。
更改最长可能需要 24 小时生效,但通常会更快完成。如需了解详情,请参阅使用全网域授权功能控制 API 访问权限。
下一步
您已准备好在 Google Workspace 上进行开发!查看 Google Workspace 开发者产品 列表以及 如何 寻求帮助。