使用 OAuth (Automotive)

您必須有關聯 Google Cloud 專案許可清單中的服務帳戶,才能授權傳送至 annotatePaths 要求。接著,您可以模擬服務帳戶,並產生 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 控制台新增有權模擬服務帳戶的使用者。詳情請參閱「建立服務帳戶」一節。

排解指令失敗問題

如果指令執行失敗,請要求專案擁有者為您執行指令,或執行下列指令,將 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. 登入 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 會傳回短期 OAuth 存取權杖,現在可用於向 annotatePaths 發出要求。

(選用) 檢查 OAuth 權杖權限

遇到授權問題時,您可以將憑證插入下列網址來自訂 OAUTH_TOKEN,以檢查 OAuth 權杖權限。(將此貼到網址列中。)

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

回應應包含 https://www.googleapis.com/auth/cloud-platform 的範圍。否則,請確認範圍設定正確無誤 (如上一節所示)。

在正式環境中使用 OAuth

如需在「實際工作環境」環境中使用 OAuth 的操作說明,請參閱「Google 的驗證」一文。

疑難排解

如果您的要求傳回錯誤訊息,指出此 API 不支援使用者憑證,請參閱使用者憑證無法運作一文。