您重定向到瀏覽器的登錄和許可認證流程呼叫三足Oauth,因爲它涉及三個步驟:1)請求令牌2)登錄和同意3)帶令牌的API調用。
不涉及用戶登錄和同意的認證流程稱爲雙腿Oauth(服務器到服務器):1)使用私鑰簽名的令牌請求2)帶令牌的API調用。服務器到服務器身份驗證要求您設置具有適當權限(範圍)的服務帳戶。您還必須安全地分發該服務帳戶的私鑰,以便您可以簽署您的請求。查看OAuth2ServiceAccount instructions
Bitnami Jenkins圖片確實爲您提供了很多開箱即用的功能。當您設置Push-to-Deploy時,您將使用gcloud啓動一個實例。該啓動命令使用--scopes參數指定您希望圖像訪問的範圍,其中包括"https://www.googleapis.com/auth/appengine.admin"
。這些範圍的權限被賦予默認項目服務帳戶。當Jenkins部署您的代碼時,服務帳戶證書通過Jenkins Google Oauth插件提供。
您可以構建另一個工具,以編程方式推送代碼。您將需要創建一個生成JSON Web令牌(JWT)的服務帳戶。請再次參閱Outh2ServiceAccount說明。 JWT是您的私人憑證,您需要找到一個安全的地方來存儲它。 App Engine SDK知道如何使用JWT獲取授權令牌。
在運行時期間,您可以將路徑作爲--service_account_json_key_file參數傳遞給JWT文件到appcfg.py。要通過Maven插件調用該參數,您必須使用-DadditionalParams =「 - service_account_json_key_file」,該參數可在github.com/GoogleCloudPlatform/appengine-maven-plugin/master的提示中找到。 (將在App Engine版本1.9.27中發佈,但您可以從Github上下載,直到那時)。
這很有用,但我問是否有一種方法可以初始自動執行整個過程? – Fraser
通過手動步驟獲得OAuth令牌後,您可以僅使用'mvn appengine:update'進行部署。但是你不能自動離開授權。你必須做一些設置。 –