샘플

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

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 신원 및 인증 유효성 검사

다음 예시를 사용하여 보안 비밀 문자열을 생성합니다.

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에 등록 요청을 전송해야 합니다.