设置 Devices API

本页介绍了如何设置 Cloud Identity Devices API。您可以使用 Devices API 代表管理员以编程方式预配资源(例如管理 Google 群组)。

启用 API 并设置凭据

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Identity API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Identity API.

    Enable the API

使用具有全网域授权的服务账号设置 API 访问权限

本部分介绍了如何创建和使用服务账号来访问 Google Workspace 资源。不支持使用服务账号直接向 Devices API 进行身份验证,因此您必须使用此方法。

创建一个服务账号并将其配置为进行全网域授权

如需创建服务账号并下载服务账号密钥,请执行以下操作:

  1. 如需创建服务账号,请执行以下操作:

    1. 在 Google Cloud 控制台中,前往“IAM 服务账号”页面:

      转到“服务账号”

    2. 点击 创建服务账号

    3. 服务账号详情下,输入服务账号的名称、ID 和说明,然后点击创建并继续

    4. 可选:在向此服务账号授予对项目的访问权限下,选择要向服务账号授予的 IAM 角色。

    5. 点击继续

    6. 可选:在向用户授予访问此服务账号的权限下,添加允许使用和管理该服务账号的用户或群组。

    7. 点击完成

  2. 如需让服务账号使用全网域委托访问 Devices API,请按照为服务账号设置全网域委托中的说明操作。

  3. 如需创建和下载服务账号密钥,请执行以下操作。

    1. 点击您创建的服务账号的电子邮件地址。
    2. 点击密钥标签页。
    3. 添加密钥下拉列表中,选择创建新密钥
    4. 点击创建

      系统会生成一个 JSON 格式的凭据文件,其中包含新的公钥和私钥对,并将其下载到您的计算机。该文件包含密钥的唯一副本。您负责安全地存储该密钥。如果您丢失了密钥对,则必须生成新的密钥对。

查看日志条目

查看日志条目时,请注意,审核日志会将任何服务账号操作显示为由用户发起。这是因为全网域授权的工作原理是允许服务账号模拟管理员用户。

初始化凭据

在代码中初始化凭据时,通过对凭据调用 with_subject() 来指定服务账号要操作的电子邮件地址。例如:

Python

credentials = service_account.Credentials.from_service_account_file(
  'SERVICE_ACCOUNT_CREDENTIAL_FILE',
  scopes=SCOPES).with_subject(USER
)

替换以下内容:

  • SERVICE_ACCOUNT_CREDENTIAL_FILE:您在本文档中前面部分创建的服务账号密钥文件
  • USER:服务账号所模拟的用户

实例化客户端

以下示例展示了如何使用服务账号凭据对客户端进行实例化。

Python

from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices']

def create_service():
  credentials = service_account.Credentials.from_service_account_file(
    'SERVICE_ACCOUNT_CREDENTIAL_FILE',
    scopes=SCOPES
  )

  delegated_credentials = credentials.with_subject('USER')

  service_name = 'cloudidentity'
  api_version = 'v1'
  service = googleapiclient.discovery.build(
    service_name,
    api_version,
    credentials=delegated_credentials)

  return service

替换以下内容:

  • SERVICE_ACCOUNT_CREDENTIAL_FILE:您在本文档中前面部分创建的服务账号密钥文件
  • USER:服务账号所模拟的用户

现在,您可以开始调用 Devices API。

如需改为以最终用户身份进行身份验证,请将服务账号中的 credential 对象替换为您可以在获取 OAuth 2.0 令牌中获取的 credential

安装 Python 客户端库

如需安装 Python 客户端库,请运行以下命令:

  pip install --upgrade google-api-python-client google-auth \
    google-auth-oauthlib google-auth-httplib2

如需详细了解如何设置 Python 开发环境,请参阅 Python 开发环境设置指南