驗證和授權機制分別用於驗證身分和資源存取權。本文列出您在應用程式中實作驗證和授權功能前,應瞭解的重要術語。
「驗證」會識別提出要求的「對象」。「授權」會判斷要求者可以存取哪些資源,以及存取層級。授權的先決條件是驗證。您必須先確認要求者的身分,才能判斷要存取哪些資源。如需更詳細的定義,請參閱「重要術語」一節。
請看以下簡化版飯店預訂範例。抵達飯店時,櫃檯人員會要求您出示身分證件,以驗證預訂資訊。你的 ID 可向飯店驗證身分,櫃台人員會給你房卡。這把鑰匙可讓你使用飯店的特定資源,例如飯店客房、健身房和商務中心。飯店金鑰可授權您存取這些資源。
流程總覽
下圖顯示 Google Workspace API 的驗證和授權步驟概要:

設定 Google Cloud 專案和應用程式:在開發期間,您會在 Google Cloud 控制台中註冊應用程式,定義授權範圍和存取憑證,以便使用 API 金鑰、使用者憑證或服務帳戶憑證驗證應用程式。
驗證應用程式的存取權:應用程式執行時,系統會評估已註冊的存取憑證。如果應用程式是以一般使用者身分進行驗證,系統可能會顯示登入提示。
要求資源:當應用程式需要存取 Google 資源時,會使用您先前註冊的相關存取範圍向 Google 提出要求。
要求使用者同意:如果應用程式是以使用者身分進行驗證,Google 會顯示 OAuth 同意畫面,讓使用者決定是否要授權應用程式存取所要求的資料。
傳送已核准的資源要求:如果使用者同意存取範圍,應用程式會將憑證和使用者核准的存取範圍,一併封裝到要求中。要求會傳送至 Google 授權伺服器,以取得存取權杖。
Google 會傳回存取權杖:存取權杖包含已授予的存取範圍清單。如果傳回的範圍清單比要求的存取範圍更有限,應用程式會停用權杖限制的任何功能。
存取要求的資源:應用程式會使用 Google 提供的存取權杖,叫用相關 API 並存取資源。
取得更新權杖 (選用):如果應用程式需要存取 Google API,且存取時間超過單一存取權杖的有效期限,可以取得更新權杖。
要求更多資源:如果需要額外存取權,應用程式會要求使用者授予新的存取權範圍,因此會產生新的存取權杖取得要求 (步驟 3 至 6)。
重要術語
以下列出與驗證和授權相關的術語:
- 驗證
確保主體 (可以是使用者或代表使用者執行的應用程式) 的身分與其聲稱的身分相符。撰寫 Google Workspace 應用程式時,請注意下列驗證類型:
- 使用者驗證
- 使用者向應用程式進行驗證 (登入) 的行為。使用者驗證通常是透過登入程序進行,使用者會使用使用者名稱和密碼組合向應用程式驗證身分。使用者驗證可透過「使用 Google 帳戶登入」功能整合至應用程式。
- 應用程式驗證
- 應用程式代表執行應用程式的使用者,直接向 Google 服務進行驗證的行為。應用程式驗證通常是使用應用程式程式碼中預先建立的憑證進行。
- 授權
主體存取資料或執行作業的權限或「授權」。授權作業是透過您在應用程式中編寫的程式碼執行。這段程式碼會告知使用者,應用程式想代表他們採取行動,並在獲得允許後,使用應用程式的專屬憑證,從 Google 取得存取權杖,用於存取資料或執行作業。
- 憑證
軟體安全中使用的識別形式。就驗證而言,憑證通常是使用者名稱和密碼的組合。就 Google Workspace API 的授權而言,憑證通常是某種形式的識別資訊,例如只有應用程式開發人員和驗證伺服器知道的專屬密鑰字串。Google 支援下列驗證憑證:API 金鑰、OAuth 2.0 用戶端 ID 和服務帳戶。
- API 金鑰
- 用於要求存取公開資料的憑證,例如使用 Maps API 提供的資料,或在 Google Workspace 分享設定中,使用「網路上擁有這個連結的任何人」設定分享的 Google Workspace 檔案。
- OAuth 2 用戶端 ID
- 用於要求存取使用者擁有資料的憑證。這是使用 Google Workspace API 要求存取資料時的主要憑證。這項憑證需要使用者同意聲明。
- 用戶端密鑰
- 一串字元,只有應用程式和授權伺服器知道。用戶端密鑰只會授予權杖給授權要求者,藉此保護使用者資料。您絕不應在應用程式中加入未加密的用戶端密鑰。建議您安全地儲存用戶端密鑰。詳情請參閱「安全地處理用戶端憑證」。
- 服務帳戶金鑰
- 服務帳戶會使用這項憑證取得 Google 服務的授權。
- 服務帳戶
- 用於伺服器對伺服器互動的憑證,例如以程序形式執行的無介面應用程式,可存取某些資料或執行某些作業。服務帳戶通常用於存取雲端資料和作業。不過,如果搭配「全網域授權委派」功能使用,這些 API 就能存取使用者資料。
- 範圍
OAuth 2.0 URI 字串,用於定義授予應用程式的資源或動作存取層級。以 Google Workspace 來說,授權範圍 URI 包含 Google Workspace 應用程式名稱、存取的資料類型,以及存取層級。應用程式使用者可以查看要求的範圍,並選擇要授予哪些存取權,然後 Google 的驗證伺服器會將允許的範圍以存取權杖的形式傳回給應用程式。詳情請參閱「如何為應用程式選擇範圍」。
- 授權伺服器
Google 的伺服器會使用存取權杖,授予應用程式存取所要求資料和作業的權限。
- 授權碼
授權伺服器傳送的代碼,用於取得存取權杖。只有在應用程式類型為網頁伺服器應用程式或已安裝的應用程式時,才需要程式碼。
- 存取權杖
可授予 Google Workspace API 存取權的權杖。單一存取權杖可授予多個 API 不同程度的存取權,稱為「範圍」。應用程式的授權碼會要求存取權杖,並使用這些權杖叫用 Google Workspace API。
- 資源伺服器
應用程式要呼叫的 API 伺服器。
- OAuth 2.0 架構
應用程式可使用這項標準,為應用程式使用者提供「安全委派存取權」,或代表使用者存取資料和執行作業。應用程式中使用的驗證和授權機制,代表您實作的 OAuth 2.0 架構。
- 原理
可以取得資源存取權的實體,也稱為「身分」。Google Workspace API 支援兩種主體:使用者帳戶和服務帳戶。詳情請參閱「主體」。
- 資料類型
在驗證和授權的脈絡中,資料類型是指擁有應用程式嘗試存取資料的實體。資料類型有三種:
- 公有領域資料
- 任何人都能存取的資料,例如部分 Google 地圖資料。這類資料通常是透過 API 金鑰存取。
- 使用者資料
- 特定使用者或群組的資料,例如特定使用者的 Google 雲端硬碟檔案。通常會使用 OAuth 2 用戶端 ID 或服務帳戶存取這類資料。
- 雲端資料
- Google Cloud 專案擁有的資料。服務帳戶通常會存取這類資料。
- 使用者同意聲明
授權步驟:要求應用程式使用者授權應用程式存取資料,並代表使用者執行作業。
- 應用程式類型
您要建立的應用程式類型。使用 Google Cloud 控制台建立憑證時,系統會要求您選取應用程式類型。應用程式類型包括:網頁應用程式 (JavaScript)、Android、Chrome 應用程式、iOS、電視和有限輸入裝置、桌面應用程式 (也稱為「已安裝的應用程式」) 和通用 Windows 平台 (UWP)。
- 服務帳戶
這是一種特殊的 Google 帳戶類型,主要用於代表需要驗證且必須取得授權才能存取資料的非人類使用者。您的應用程式會以服務帳戶的身分呼叫 Google API,因此不會直接牽涉到使用者。服務帳戶本身無法用於存取使用者資料,這類資料通常是透過 Workspace API 存取。不過,服務帳戶可以實作全網域授權委派,藉此存取使用者資料。詳情請參閱「瞭解服務帳戶」。
- 全網域授權委派
這項管理功能可授權應用程式,代表 Google Workspace 機構中的使用者存取使用者資料。網域範圍的委派作業可用於對使用者資料執行管理員相關工作。如要以這種方式委派授權,Google Workspace 管理員必須使用 OAuth 2.0 服務帳戶。由於這項功能權限較高,只有超級管理員才能啟用全網域授權委派。詳情請參閱「將網域層級的權限委派給服務帳戶」。
下一步
設定應用程式的 OAuth 同意畫面,確保使用者瞭解並同意應用程式對其資料的存取權。