Google OAuth2.0 介紹

Google 認證可分為兩種形式:OAuth與API Keys。與用戶隱私有關的認證,就必須要使用OAuth2.0方式進行認證與授權,而Google OAuth2.0 依據不同的使用方式,又可以分為下列三種認證方式:

  • Server-Side Web App
  • Application on limited-input devices
  • Server-to-Server

Server-Side Web APP

APP主動觸發,讓用戶登入Google帳號並授權,接著透過 redirect 或其他方式取得code,最後用code去換token。

Application on limited-input devices

適用於在沒有螢幕或是輸入的裝置,例如列印機、TV等嵌入式裝置

Server to Server

在Google APIs Console中的憑證欄位,除了API金鑰 / OAuth 2.0 用戶端 ID ,第三個能夠創建的就是 服務帳戶金鑰,服務帳號像是創建一個新的用戶,只是此用戶是被用於 Server 端授權,並透過 IAM 管理權限。

透過服務帳號最大好處是應用程式是授權於服務帳號,而非個體用戶,像是遇到人員流動就不需要手動在管理授權;
而且也不需要在 Client又要跳出用戶授權頁面,非常適合用於對內的專案開發(此流程又稱為 two-legged OAuth)。

這部分Google文件強烈建議使用sdk而非 REST API,主要是因為Server-to-Server是透過加密JSON Web Tokens (JWTs)實作,如果出錯容易有資安風險

取得憑證步驟:

  • 首先先到 Google APIs Console 加入服務帳號金鑰,並下載 json檔的金鑰檔案
  • 接著到 IAM管理權限,找到剛才的服務帳號 Email,類似於 ….@….iam.gserviceaccount.com,加入「Service Management 管理員」權限,才能操作API。
  • 到剛才的服務帳號加入表單的共同編輯者。