您必須有關聯 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_TOKEN,以檢查 OAuth 權杖權限。(將此貼到網址列中。)
https://oauth2.googleapis.com/tokeninfo?access_token=OAUTH_TOKEN
回應應包含 https://www.googleapis.com/auth/cloud-platform
的範圍。否則,請確認範圍設定正確無誤 (如上一節所示)。
在正式環境中使用 OAuth
如需在「實際工作環境」環境中使用 OAuth 的操作說明,請參閱「Google 的驗證」一文。
疑難排解
如果您的要求傳回錯誤訊息,指出此 API 不支援使用者憑證,請參閱使用者憑證無法運作一文。