샘플

다음 예시에서는 서비스 계정으로 이미 토큰을 획득했다고 가정합니다.

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 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/installer:generateSecret" \
  -d "{}"

그러면 다음과 같은 형식의 값이 반환됩니다.

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

그런 다음 보안 비밀 문자열을 JWT로 인코딩해야 합니다. JSON 웹 토큰 형식을 사용합니다. 여기서는 ${SECRET}를 보안 비밀 문자열로, ${ENCODED_SECRET}를 JWT 문자열로, ${CPI_ID}을 검증할 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/installer:validate" \
  -d "{ \"installer_id\": \"${CPI_ID}\", \"secret\": \"${SECRET}\", \"encoded_secret\": \"${ENCODED_SECRET}\" }"

이제 CPI에 필요한 매개변수가 모두 포함된 CBSD를 설치할 수 있습니다.

다단계 CBSD 등록

다음 두 섹션에서 설명하는 여러 단계로 구성된 CBSD 등록을 수행하는 방법에는 두 가지가 있습니다. 이전에 CPI로 서명한 매개변수 또는 CPI 계정으로 다단계 CBSD 등록을 실행할 수 있습니다.

이전에 CPI로 서명한 기기 매개변수 사용

이 샘플은 이전에 CPI로 인코딩된 CBSD 설치 매개변수로 비활성 기기 구성을 만들어 CPI가 아닌 사용자도 구성을 만들 수 있는 방법을 보여줍니다. CPI의 비공개 키를 사용하여 CBSD 매개변수를 인코딩합니다. 이를 위해 JSON 웹 토큰 형식을 사용합니다. 여기서는 사용자가 ${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 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/${DEVICE_NAME}:signDevice" \
  -d "${DEVICE}"

여기서는 ${DEVICE}이 형식의 CBSD 등록 매개변수의 JSON 표현으로 설정했다고 가정합니다.

그런 다음 CBSD에서 SAS에 등록 요청을 전송하여 등록을 완료해야 합니다.