使用 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 權杖權限,並自訂 OAUTH_TOKEN。(貼到網址列中)。

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

回應應包含 https://www.googleapis.com/auth/cloud-platform 的範圍。如果不是,請按照上一節的說明正確設定範圍。

在正式環境中使用 OAuth

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

疑難排解

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