瞭解驗證相關資訊和授權

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

「驗證」和「授權」是分別用於驗證身分和資源存取權的機制。本文件說明在應用程式中實作驗證和授權前應瞭解的重要詞彙。

注意:本總覽會著重於 Google Workspace API 的驗證和授權作業。本文中的某些資訊可能不適用於其他 Google API。

流程總覽

下圖概略說明 Google Workspace API 的驗證和授權步驟:

驗證和授權實作的大致步驟
圖 1. 驗證和授權實作的大致步驟
  1. 設定 Google Cloud 專案和應用程式:在開發過程中,您會在 Google Cloud Console 中註冊應用程式,定義授權範圍和存取憑證以使用 API 金鑰、使用者憑證或服務帳戶憑證來驗證應用程式。

  2. 驗證應用程式的存取權以供存取:當應用程式執行時,系統會評估已註冊的存取憑證。如果您的應用程式以使用者身分進行驗證,系統可能會顯示登入提示。

  3. 要求資源:當應用程式需要存取 Google 資源時,會要求 Google 使用您先前註冊的相關存取權範圍。

  4. 要求使用者同意:如果應用程式是以使用者的身分進行驗證,Google 會顯示 OAuth 同意畫面,讓使用者可以決定是否要授權您的應用程式存取要求的資料。

  5. 傳送已核准的資源要求:如果使用者同意存取範圍,應用程式會將憑證和使用者核准範圍的組合封裝為要求。系統會將要求傳送至 Google 授權伺服器來取得存取權杖。

  6. Google 傳回存取權杖:存取權杖內含已授予存取權的範圍清單。如果傳回的範圍清單超過要求的存取權範圍,應用程式就會停用權杖限制的任何功能。

  7. 存取要求的資源:應用程式會使用 Google 的存取權杖來叫用相關 API,並存取資源。

  8. 取得更新權杖 (選用):如果應用程式需要在單一存取權杖的生命週期後存取 Google API,可以取得更新權杖。

  9. 要求更多資源:如果應用程式需要其他存取權,應用程式會要求使用者授予新的存取權範圍,進而產生新的存取權杖要求 (步驟 3 至 6)。

重要術語

與驗證和授權相關的字詞清單如下:

驗證

這項「行為」可確保使用者 (代表使用者或代表使用者的應用程式) 是自己的身分。編寫 Google Workspace 應用程式時,請注意下列驗證類型:

使用者驗證
使用者驗證 (登入) 應用程式的動作。使用者驗證通常是在登入流程中執行,此程序透過使用者名稱和密碼組合向應用程式驗證身分。使用者可透過使用 Google 帳戶登入功能納入使用者驗證。
應用程式驗證
應用程式代表使用者執行應用程式,直接向 Google 服務進行驗證。應用程式驗證通常是使用應用程式程式碼中建立的預建憑證。
授權

權限或「原創性」是指主體必須存取資料或執行作業。授權行為會透過您在應用程式中編寫的程式碼執行。這個程式碼會告知使用者想代表應用程式執行動作,並在適用情況下使用您應用程式的專屬憑證,從 Google 取得存取權杖,以存取資料或執行作業。

憑證

軟體安全性中使用的識別資訊。在驗證方面,憑證通常是使用者名稱/密碼的組合。在 Google Workspace API 的授權方面,憑證通常是某種形式的身分識別,例如不重複的密鑰字串,只在應用程式開發人員和驗證伺服器之間知道。Google 支援這些驗證憑證:API 金鑰、OAuth 2.0 用戶端 ID 和服務帳戶。

API 金鑰
用於要求存取公開資料的憑證,例如使用 Maps API 提供的資料,或是利用「透過這個連結取得網際網路的所有人」在 Google Workspace 共用設定中的設定共用的資料。
OAuth 2 用戶端 ID
用來要求存取使用者所擁有資料的憑證。這是使用 Google Workspace API 要求資料存取權的主要憑證。此憑證需要使用者同意聲明
用戶端密鑰
應由應用程式和授權伺服器知道的字元字串。用戶端密鑰只會將權杖授權給要求者,以保護使用者資料。請勿在應用程式中納入用戶端密鑰。
服務帳戶金鑰
可供服務帳戶使用 Google 服務的授權。
服務帳戶
用於伺服器對伺服器互動的憑證,例如用於存取部分資料或執行部分作業的無面應用程式。 服務帳戶通常用於存取雲端式資料與作業。不過,當您與全網域的授權委派搭配使用時,就可以存取使用者資料。
範圍

這是 OAuth 2.0 URI 字串,用於定義授予應用程式的資源或動作存取層級。如果是 Google Workspace,授權範圍 URI 會包含 Google Workspace 應用程式名稱、存取的資料類型,以及存取權層級。應用程式使用者可以查看要求的範圍,並選擇要授予的存取權,Google 的驗證伺服器會在「存取權杖」中,將允許的範圍傳回您的應用程式。詳情請參閱「如何選擇應用程式範圍」。

授權伺服器

Google 的伺服器,會使用存取權杖來向應用程式要求的資料和作業授予存取權。

授權碼

從取得授權的伺服器所取得的程式碼,用於取得存取權杖。只有在應用程式類型是網路伺服器應用程式或已安裝的應用程式時,才需要使用代碼。

存取權杖

授予 Google Workspace API 存取權的權杖。單一存取權杖可授予不同程度的存取權,稱為不同「範圍」的存取權。應用程式的授權代碼會要求存取權杖,並使用這些權杖叫用 Google Workspace API。

資源伺服器

代管應用程式要呼叫的 API 的伺服器。

OAuth 2.0 架構

應用程式一種標準,可代表「使用者」提供「安全委派」的存取權,或代表應用程式使用者存取資料和作業。您在應用程式中使用的驗證和授權機制代表您實作 OAuth 2.0 架構

主體

實體 (又稱為「身分」),可授予資源存取權。Google Workspace API 支援兩種主體:使用者帳戶和服務帳戶。詳情請參閱主體

資料類型

在驗證和授權方面,資料類型是指應用程式嘗試存取的資料擁有的實體。資料類型分為三種:

公共領域資料
任何人都能存取的資料,例如部分 Google 地圖資料。一般來說,您可以使用 API 金鑰存取這類資料。
使用者資料
屬於特定使用者或群組的資料,例如特定使用者的 Google 雲端硬碟檔案。這個資料類型通常是使用 OAuth 2 用戶端 ID 或服務帳戶存取。
雲端資料
Google Cloud 專案擁有的資料。這個類型通常是由服務帳戶存取。
使用者同意聲明

授權應用程式,必須讓應用程式的使用者代表使用者存取資料並代為執行作業。

應用程式類型

您要建立的應用程式類型。使用 Google Cloud Console 建立憑證時,系統會要求您選取應用程式類型。應用程式類型包括:網頁應用程式 (JavaScript)、Android、Chrome 應用程式、iOS、電視和受限制的輸入裝置、電腦版應用程式 (也稱為「已安裝的應用程式」) 和通用 Windows 平台 (UWP)。

服務帳戶

一種特殊的 Google 帳戶,代表需要驗證且有權存取資料的非人使用者。您的應用程式會假設服務帳戶的身分呼叫 Google API,因此使用者不會直接參與。服務帳戶本身無法用來存取使用者資料,而是根據 Workspace API 自訂存取。不過,服務帳戶可以透過導入全網域的授權委派功能,存取使用者資料。詳情請參閱瞭解服務帳戶

全網域授權委派

這項管理功能可授權應用程式代表 Google Workspace 機構中的使用者存取使用者資料。全網域委派可用於對使用者資料執行管理員相關工作。如要以這種方式委派授權,Google Workspace 管理員可以使用具備 OAuth 2.0 的服務帳戶。由於這項功能的緣故,只有超級管理員才能啟用全網域的授權委派功能。詳情請參閱將全網域授權委派給服務帳戶

後續步驟

設定應用程式的 OAuth 同意畫面,確保使用者可瞭解及核准應用程式對個人資料的存取權限。