瞭解驗證相關資訊和授權

驗證和授權機制分別用於驗證身分和資源存取權。本文件將介紹在應用程式中實作驗證及授權之前,應瞭解的重要詞彙。

驗證會指出提出要求的使用者。 「授權」用於識別要求者可存取的「資源」,以及它們擁有的存取層級。驗證作業需要授權。您必須先建立要求者的身分,才能判定應存取哪些資源。詳細定義請參見「重要術語」一節

請參考下列簡化的飯店預訂示例。當你抵達飯店時,櫃台人員會要求提供身分證件來驗證預訂資訊。你的 ID 會驗證飯店。櫃台提供飯店金鑰,這組金鑰可讓您存取飯店的特定資源,例如飯店、健身房和商務中心。飯店金鑰會授權讓您存取這些資源。

流程總覽

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

驗證和授權程序的概要步驟
圖 1. 驗證和授權實作的概要步驟
  1. 設定 Google Cloud 專案和應用程式:在開發期間,您可以在 Google Cloud 控制台中註冊應用程式、定義授權範圍和存取憑證,以便使用 API 金鑰、使用者憑證或服務帳戶憑證來驗證應用程式。

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

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

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

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

  6. Google 會傳回存取權杖:存取權杖包含已授予的存取權範圍清單。如果傳回的範圍清單超出要求的存取權範圍,應用程式就會停用所有受到權杖限制的功能。

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

  8. 取得更新權杖 (選填):如果應用程式需要存取單一 API 權杖,而需要存取 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 存取權的權杖。單一存取權杖可以授予不同程度的存取權,稱為「範圍」,可以存取多個 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 同意畫面,確保使用者瞭解及核准應用程式對其資料的存取權限。