다음 예에서는 이미 서비스 계정으로 토큰을 획득했다고 가정합니다.
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에 등록 요청을 전송해야 합니다.