示例

在以下示例中,我们假设您已使用服务账号获取令牌

TOKEN=$(gcloud auth print-access-token)

我们还假设您已将 ${CLIENT_PROJECT} 设置为 Google Cloud 项目的项目 ID。

列出当前客户

以下命令会返回调用者有权访问的所有客户:

curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \"https://sasportal.googleapis.com/v1alpha1/customers"

为方便起见,请将返回的客户名称保存到变量中:

CUSTOMER_NAME=customers/...

创建新的设备配置

首先,设置要创建的设备的 ${FCCID}${SN}

FCCID=f1
SN=sn1

然后使用以下命令创建设备配置:

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices" \
  -d "{ \"fcc_id\": \"$FCCID\", \"serial_number\": \"$SN\", \"preloaded_config\": { \"call_sign\": \"cs1\", \"category\": \"DEVICE_CATEGORY_A\"}}"

该命令会返回新创建的设备配置。为方便起见,请将设备名称保存到变量中:

DEVICE_NAME=customers/.../devices/...

列出当前设备

以下命令会列出现有设备。

curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices"

按名称检索设备

以下命令按名称检索设备。

curl -X GET -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}"

更新现有设备

以下命令会更新现有设备。

curl -X PATCH -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}" \

验证您的 CPI 身份和认证

使用以下示例生成 Secret 字符串:

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/installer:generateSecret" \
  -d "{}"

这会返回一个采用以下形式的值:

{
  "secret": "<generated secret>"
}

然后,必须将密钥字符串编码为 JWT。使用 JSON Web 令牌格式。我们假设您已将 ${SECRET} 设置为密钥字符串,将 ${ENCODED_SECRET} 设置为 JWT 字符串,并将 ${CPI_ID} 设置为要验证的 CPI 的 ID。

以下命令用于验证 CPI 的身份和认证。

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/installer:validate" \
  -d "{ \"installer_id\": \"${CPI_ID}\", \"secret\": \"${SECRET}\", \"encoded_secret\": \"${ENCODED_SECRET}\" }"

CPI 现在能够安装具有所有必需参数的 CBSD。

多步 CBSD 注册

您可以通过两种方式执行多步 CBSD 注册,以下两个部分将对此进行介绍。 您可以执行多步 CBSD 注册,使用之前由 CPI 签名的参数或使用 CPI 账号。

使用之前由 CPI 签名的设备参数

此示例展示了如何创建具有 CPI 之前编码的 CBSD 安装参数的非活动设备配置,以便即使是非 CPI 用户也可以创建该配置。 使用 CPI 的私钥对 CBSD 参数进行编码。我们使用 JSON Web 令牌格式来实现此目的。 我们假设您已将 ${ENCODED_DEVICE} 设置为 JWT 字符串,并将 ${CPI_ID} 设置为 CPI 的 ID。

然后,可以使用以下命令创建非活跃设备配置:

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer ${TOKEN}" \ "https://sasportal.googleapis.com/v1alpha1/${CUSTOMER_NAME}/devices:createSigned" \
  -d "{ \"installer_id\": \"${CPI_ID}\", \"encoded_device\": \"${ENCODED_DEVICE}\", \"parent\": \"${CUSTOMER_NAME}\" }"

然后,CBSD 必须向 SAS 发送注册请求,以完成注册。

使用 CPI 账号

首先,在尝试验证设备配置之前,必须先验证 CPI 的身份。完成后,请使用以下命令创建非活跃设备配置:

curl -X POST -H "X-Goog-User-Project: ${CLIENT_PROJECT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \ "https://sasportal.googleapis.com/v1alpha1/${DEVICE_NAME}:signDevice" \
  -d "${DEVICE}"

我们假设您已将 ${DEVICE} 设置为 此格式的 CBSD 注册参数的 JSON 表示形式。

然后,CBSD 必须向 SAS 发送注册请求,以完成注册。