驗證和授權用途

專案:/docs/authentication/_project.yaml 書籍:/sdk/_book.yaml

本頁面列出一些常見的驗證和授權用途,並提供連結,方便您進一步瞭解如何實作各項用途。

如要瞭解 Google 的驗證方式,請參閱「Google 的驗證方式」。

向 Google API 驗證

每次提出要求時,Google API 都需要有效的存取權杖或 API 金鑰。如何提供這些必要憑證,取決於程式碼的執行位置,以及 API 接受的憑證類型。

使用用戶端程式庫和應用程式預設憑證

建議使用用戶端程式庫和應用程式預設憑證 (ADC) 來使用 Google API。 Application Default Credentials (ADC) 是驗證程式庫採用的策略,可根據應用程式環境自動尋找憑證。驗證程式庫會將這些憑證提供給 Cloud 用戶端程式庫和 Google API 用戶端程式庫。使用 ADC 時,您的程式碼可以在開發或正式環境中執行,無需變更應用程式向 Google Cloud 服務和 API 驗證的方式。

設定 ADC 的方式取決於程式碼的執行位置。 ADC 支援以服務帳戶進行驗證以使用者身分進行驗證

從 Google Kubernetes Engine (GKE) 進行驗證

您可以使用 Workload Identity Federation for GKE,讓在 GKE 上執行的工作負載安全地存取 Google API。透過 Workload Identity Federation for GKE,GKE 叢集中的 GKE 服務帳戶可以做為 Identity and Access Management (IAM) 服務帳戶。

透過 Knative serving 進行驗證

您可以使用 Workload Identity Federation for GKE 驗證 Knative 服務服務,藉此存取 Google API。

使用接受 API 金鑰的 API

如果 API 支援 API 金鑰,則要求可以提供 API 金鑰,而非存取權杖。API 金鑰會將要求與 Google Cloud 專案建立關聯,以利帳單處理和配額管理。

如要判斷 API 是否支援 API 金鑰,請參閱該 API 的說明文件。

使用自行簽署的 JSON Web Token (JWT)

部分 Google API 支援自行簽署的 JSON Web Token (JWT),而非存取權杖。使用自行簽署的 JWT,即可避免向 Google 授權伺服器發出網路要求。這種方法需要自行建立已簽署的 JWT。如要進一步瞭解權杖,請參閱權杖類型

使用驗證程式庫和套件

如果您的環境無法使用 ADC,以及 Cloud 用戶端程式庫或 Google API 用戶端程式庫提供的 OAuth 實作項目,則可以使用驗證程式庫和套件。

以下是可用的驗證程式庫和套件:

您也可以使用 Google 的 OAuth 2.0 端點實作 OAuth 2.0 流程。 這種方法需要更深入瞭解 OAuth 2.0OpenID Connect 的運作方式。詳情請參閱「針對網路伺服器應用程式使用 OAuth 2.0」一文。

Google Cloud 服務專屬用途

部分 Google Cloud 服務支援該服務專屬的驗證流程。

使用已簽署的網址提供 Cloud Storage 資源的限時存取權

已簽署的網址提供對特定 Cloud Storage 資源的限時存取權

向 GKE Enterprise 叢集進行驗證

您可以透過身分或第三方識別資訊提供者,向 GKE Enterprise 叢集進行驗證: Google Cloud

設定透過 API Gateway 或 Cloud Endpoints 部署的 API 進行驗證

API Gateway 和 Cloud Endpoints 支援服務對服務驗證,以及使用 Firebase、Google 簽署的 ID 權杖、Okta、Auth0 和 JWT 的使用者驗證。

如需相關資訊,請參閱產品說明文件:

在 Cloud Run 或 Cloud Run functions 上代管應用程式的驗證

在 Cloud Run 和 Cloud Run 函式上代管的應用程式需要 OpenID Connect (OIDC) 權杖或ID 權杖,才能進行驗證。

詳情請參閱下列託管服務的產品說明文件。如要瞭解取得 ID 權杖的其他方式,請參閱「取得 ID 權杖」。如要進一步瞭解 ID 權杖,包括如何驗證 ID 權杖,請參閱「ID 權杖」。

Cloud Run

您可以透過多種方式設定 Cloud Run 服務,具體取決於服務的叫用方式。您可能也需要從 Cloud Run 服務向其他服務進行驗證,這時就需要 OIDC ID 憑證。

如要從網路或行動應用程式驗證服務使用者身分,請使用 Identity Platform 或 Firebase 驗證。您也可以使用 Identity-Aware Proxy (IAP) 驗證內部使用者

Cloud Run 函式

叫用函式時,您必須驗證叫用作業。您可以使用使用者憑證或 OIDC ID 權杖。

驗證應用程式使用者

視應用程式環境的其餘部分而定,您可以選擇各種方式驗證應用程式的終端使用者。請參閱下方的說明,瞭解最適合您應用程式的選項。

驗證服務 說明
Google Identity 服務

Google Identity Services 包含「使用 Google 帳戶登入」功能、Google 的使用者登入按鈕,以及 Identity Services API 和 SDK。Google Identity Services 採用 OAuth 2.0 和 OpenID Connect (OIDC) 通訊協定。

如果您要建立行動應用程式,並想使用 Gmail 和 Google Workspace 帳戶驗證使用者,或許可以考慮使用「使用 Google 帳戶登入」。「使用 Google 帳戶登入」功能也支援搭配現有登入系統使用 Google 帳戶。

更多資訊

「使用 Google 帳戶登入」功能提供 Gmail 和 Google Workspace 帳戶登入服務,並支援一次性密碼 (OTP)。「使用 Google 帳戶登入」適用於行動應用程式,可支援僅限 Google 帳戶,或現有登入系統中的 Google 帳戶。

使用 Google 帳戶登入適用於 iOSAndroid網頁應用程式

Firebase 驗證

Firebase 驗證提供驗證服務和程式庫,可驗證應用程式中各種使用者帳戶類型的使用者。

如果您想接受來自多個平台的使用者登入,Firebase 驗證是不錯的選擇。

更多資訊

Firebase 驗證支援多種使用者帳戶類型。Firebase 驗證支援密碼驗證,以及透過 Google、Facebook、Twitter 和其他平台進行聯合登入。

Identity Platform 和 Firebase Authentication 都是以 Google Identity Services 為基礎。Firebase 驗證適用於消費者應用程式。 如果您想自行擔任身分識別提供者,或是需要 Identity Platform 提供的企業級功能,Identity Platform 就是理想選擇。如要進一步瞭解這兩項產品的差異,請參閱「 Identity Platform 與 Firebase 驗證的差異」。

如需更多資訊,請參閱下列連結:

Identity Platform

Identity Platform 是客戶身分與存取權管理 (CIAM) 平台,可協助機構將企業級身分與存取權管理功能導入應用程式。

如果您要建立應用程式,並搭配使用 Google 身分識別提供者 (例如 Google Workspace) 或您自己的身分與存取權管理服務,Identity Platform 會是不錯的選擇。

更多資訊

Identity Platform 提供可自訂的置入式身分識別和驗證服務,能用於使用者的註冊及登入程序。Identity Platform 支援多種驗證方法:SAML、OIDC、電子郵件/密碼、社交媒體、手機和其他自訂選項。

Identity Platform 和 Firebase Authentication 都是以 Google Identity Services 為基礎。Firebase 驗證適用於消費者應用程式。 如果您想自行擔任身分識別提供者,或是需要 Identity Platform 提供的企業級功能,Identity Platform 就是理想選擇。如要進一步瞭解這兩項產品的差異,請參閱「 Identity Platform 與 Firebase 驗證的差異」。

OAuth 2.0 和 OpenID Connect

OpenID Connect 可讓您處理及使用驗證權杖,且提供最多自訂空間。

如果您想盡可能控管 OAuth 2.0 實作方式,且能輕鬆實作 OAuth 2.0 流程,請考慮這個選項。

更多資訊

Google 的 OAuth 2.0 實作方式符合 OpenID Connect 規格,且已通過 OpenID 認證。OpenID Connect 是以 OAuth 2.0 通訊協定為基礎的識別層級。應用程式可以使用 OpenID Connect 驗證 ID 憑證,並擷取使用者個人資料資訊

OAuth 2.0 可用於以程式輔助方式,對受 Identity-Aware Proxy 保護的資源進行驗證。

Identity-Aware Proxy (IAP)

IAP 可讓您在要求傳送到應用程式資源之前,控管應用程式的存取權。

與這個表格中的其他驗證服務不同,IAP 會在應用程式可供存取前執行驗證,而其他服務則是在應用程式內實作。

更多資訊

透過 IAP,您可以為應用程式建立中央授權層,並使用簽署標頭保護應用程式。只有具備正確 IAM 角色主體,才能存取受 IAP 保護的應用程式。使用者嘗試存取 IAP 保護的資源時,IAP 會為您執行驗證及授權檢查。IAP 無法保護專案內的活動,例如同一個專案中的其他服務。

如果是 Google 身分,IAP 會使用ID 權杖。詳情請參閱程式輔助驗證

如要瞭解 IAP 如何保護應用程式資源,請參閱 IAP 總覽

以下是應用程式內商品適用的特定語言教學課程:

App Engine Users API 對於在 App Engine 標準環境中執行的應用程式,Users API 可用於為部分語言提供使用者驗證。
授權存取使用者資源 如果應用程式要存取使用者擁有的資源,您必須確保應用程式有權這麼做。這種用途有時稱為「三向 OAuth」或「3LO」,因為這類用途涉及三個實體:應用程式、授權伺服器和使用者。

Google Cloud 和 Google Workspace 的驗證和授權選項

Google Cloud 和 Google Workspace 提供多種選項,可供您設定存取權、提升帳戶安全性及管理帳戶。

授予外部工作負載的 Google Cloud 資源存取權

工作負載身分聯盟可讓您授予地端部署或多雲端工作負載存取 Google Cloud資源的權限。過去,這個用途需要使用服務帳戶金鑰,但 Workload Identity Federation 可避免使用服務帳戶金鑰帶來的維護和安全負擔。Workload Identity Federation 支援與 OIDC 或 SAML 2.0 相容的識別資訊提供者

設定識別資訊提供者

您可以將 Google 設為身分識別提供者,方法是使用 Cloud Identity 或 Google Workspace。您也可以將 Cloud Identity 或 Google Workspace 帳戶與外部身分識別提供者建立聯盟。這種方法會使用 SAML,讓員工使用現有的身分和憑證登入 Google 服務。

設定雙重驗證

要求使用雙重驗證是最佳做法,有助於防止不良行為者在取得帳戶憑證後存取帳戶。啟用雙重驗證後,使用者必須提供第二項資訊或身分識別,才能通過驗證。Google 提供多種解決方案,支援 FIDO (Fast IDentity Online) 標準。

Identity Platform 支援網頁iOSAndroid 應用程式的雙重驗證。

Google Identity Services 支援 FIDO (Fast IDentity Online) 驗證

Google 支援多種雙重驗證硬體解決方案,例如 Titan 金鑰

設定以憑證為準的存取權

憑證式存取權是 Chrome Enterprise Premium 零信任解決方案的一環,可限制只有受信任裝置上的已驗證使用者才能存取,並透過 X.509 憑證識別裝置。以憑證為基礎的存取權有時也稱為雙向傳輸層安全標準 (mTLS)。

一般帳戶和驗證資訊

取得 Google 帳戶存取協助

如需存取或管理 Google 帳戶的相關協助,請參閱 Google 帳戶支援頁面

處理遭盜用的憑證

如果您認為自己的憑證遭到盜用,可以採取一些步驟 (或請管理員採取步驟) 減輕影響。詳情請參閱「處理遭盜用的憑證 Google Cloud 」。

取得憑證授權單位問題的協助

如果看到與憑證或憑證授權單位 (CA) (包括根 CA) 相關的問題,請參閱 Google Trust Services 常見問題瞭解詳情。