OAuth (Automotive) 사용

annotatePaths에 대한 요청을 승인하려면 연결된 Google Cloud 프로젝트의 허용 목록에 있는 서비스 계정이 필요합니다. 그런 다음 서비스 계정을 가장하여 요청에서 헤더로 전달되는 OAuth 토큰을 생성할 수 있습니다.

서비스 계정 설정

허용 목록에 있는 서비스 계정annotatePaths를 호출할 수 있으므로 서비스 계정 가장을 통해 서비스 계정 역할을 해야 합니다.

  1. 서비스 계정 만들기의 안내를 따릅니다. 서비스 계정 이메일의 일반적인 형식은 다음과 같습니다.

    SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  2. Google 비즈니스 담당자에게 서비스 계정 이메일을 보냅니다. 담당자는 이 서비스 계정을 annotatePaths 호출 권한이 있는 허용 목록에 추가합니다.

서비스 계정을 가장할 수 있는 사용자 추가

서비스 계정을 가장할 권한이 있는 사용자를 추가합니다.

gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT \
    --member=user:USER_EMAIL \
    --role=roles/iam.serviceAccountTokenCreator \
    --project=PROJECT_ID

Cloud Console을 통해 서비스 계정을 가장하도록 승인된 사용자를 추가할 수도 있습니다. 서비스 계정 만들기를 참조하세요.

명령어 실패 시 문제 해결

이 명령어가 실패하면 프로젝트 소유자에게 명령어를 대신 실행하거나 다음을 실행하여 서비스 계정에 대한 roles/iam.serviceAccountAdmin 역할을 부여해 달라고 요청합니다.

gcloud iam service-accounts add-iam-policy-binding \
   SERVICE_ACCOUNT \
    --member=USER_EMAIL \
    --role=roles/iam.serviceAccountAdmin \
    --project=PROJECT_ID

수명이 짧은 OAuth 토큰 생성

OAuth 토큰을 사용하여 annotatePaths를 설정하려고 하지만 토큰을 생성하기 위한 환경 설정이 없는 경우 이 섹션의 절차에 따라 gcloud CLI를 사용하여 수명이 짧은 OAuth 토큰을 가져옵니다. 토큰은 1시간 후에 만료됩니다. 자세한 내용은 서비스 계정에 단기 사용자 인증 정보 만들기를 참조하세요. 다음 단계는 이 안내를 간략하게 보여줍니다.

  1. gcloud에 로그인합니다.

    gcloud auth login
    

    gcloud가 브라우저 창을 열고 권한을 요청하는 메시지를 표시합니다.

  2. 프로젝트를 설정합니다.

    gcloud config set project PROJECT_ID
    
  3. print-access-token을 사용해 수명이 짧은 액세스 토큰을 가져옵니다.

    gcloud auth print-access-token
    

    이 명령어는 토큰을 반환합니다. 토큰을 복사하고 다음 명령어의 YOUR_ACCESS_TOKEN에 삽입합니다.

    curl -X POST \
    https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT:generateAccessToken \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d '{"scope": ["https://www.googleapis.com/auth/cloud-platform"],"lifetime": "3600s"}'
    

    CLI가 이제 annotatePaths에 요청할 때 사용할 수 있는 단기 OAuth 액세스 토큰을 반환합니다.

(선택사항) OAuth 토큰 권한 확인

승인 문제가 발생하면 OAUTH_TOKEN을 맞춤설정하여 다음 URL에 토큰을 삽입하여 OAuth 토큰 권한을 확인할 수 있습니다. (주소 표시줄에 붙여넣습니다.)

https://oauth2.googleapis.com/tokeninfo?access_token=OAUTH_TOKEN

응답에는 https://www.googleapis.com/auth/cloud-platform의 범위가 포함되어야 합니다. 그렇지 않은 경우 이전 섹션에 표시된 대로 범위를 올바르게 설정해야 합니다.

프로덕션 환경에서 OAuth 사용

프로덕션 환경에서 OAuth를 사용하는 방법은 Google의 인증을 참조하세요.

문제 해결

이 API에서 지원하지 않는 최종 사용자 인증 정보에 대한 오류 메시지가 요청에서 반환되는 경우 사용자 인증 정보가 작동하지 않음을 참조하세요.