您必須具備相關聯 Google Cloud 專案許可清單上的服務帳戶,才能授權向 annotatePaths
提出的要求。接著,您可以模擬服務帳戶並產生 OAuth 權杖,此權杖會在要求中做為標頭傳遞。
設定服務帳戶
由於只有許可清單中的服務帳戶可以呼叫 annotatePaths
,因此您必須透過服務帳戶模擬功能以服務帳戶身分執行作業。
按照建立服務帳戶的指示操作。服務帳戶電子郵件地址的一般格式如下:
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
將服務帳戶電子郵件傳送給您的 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 權杖。(權杖會在一小時後失效)。詳情請參閱「建立服務帳戶的短期憑證」。下方僅提供簡要的操作說明。
登入 gcloud:
gcloud auth login
gcloud 會開啟瀏覽器視窗並提示您授予權限。
設定專案:
gcloud config set project PROJECT_ID
使用 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 不支援使用者憑證,請參閱使用者憑證無效一節。