Cloud Endpoints 支援多種適合不同應用程式和用途的驗證方式。可擴充服務 Proxy (ESP) 採用您在服務設定中指定的驗證方式,用於在將傳入要求傳送到您的 API 後端之前進行驗證。本文件針對每種支援的驗證方式提供概覽及用途範例。
API 金鑰
API 金鑰是一種加密字串,用於識別Google Cloud 專案的配額、帳單及監控等功能。開發人員會在 Google Cloud 主控台的專案中產生 API 金鑰,然後將該金鑰以查詢參數的形式,嵌入在對 API 發出的每一個呼叫中。
如果您在服務設定中指定 API 金鑰需求,ESP 會使用該 API 金鑰查詢與該 API 金鑰相關聯的 Google Cloud 專案。除非該 API 金鑰是在 Google Cloud 專案中或在已啟用您 API 的其他Google Cloud 專案中產生的,否則 ESP 會拒絕要求。詳情請參閱「透過 API 金鑰限制 API 存取權」
不同於使用短期憑證或簽署要求的憑證,API 金鑰是要求的一部分,因此容易遭受中間人攻擊,安全程度較低。除了下列所述的驗證方法,您還可以使用 API 金鑰。基於安全考量,當 API 呼叫包含使用者資料時,請勿單獨使用 API 金鑰。
用途
如果您想要使用如配額之類的 Endpoints 功能,則必須使用 API 金鑰傳送每個要求,Endpoints 才可以識別與用戶端應用程式相關聯的 Google Cloud 專案。
如要進一步瞭解 API 金鑰,請參閱 API 金鑰的使用原因與時機。
Firebase 驗證
Firebase 驗證提供後端服務、SDK 和程式庫,可用於驗證行動或網路應用程式使用者。這種驗證方式會使用 Google、Facebook、Twitter 或 GitHub 等各種憑證來驗證使用者。
使用者登入成功後,Firebase 用戶端程式庫會簽署含私密金鑰的 JSON Web Token (JWT)。ESP 會驗證 JWT 是由 Firebase 簽署,且 JWT 中的 iss
(核發單位) 憑證附加資訊 (用於辨別您的 Firebase 應用程式) 與服務設定中的 x-google-issuer
設定相符。
用途
如果 API 呼叫包含任何使用者資料,且旨在用於使用者擁有使用者介面的流程中 (例如透過行動和網路應用程式),我們建議您使用 Firebase。詳情請參閱「使用 Firebase 驗證使用者」。
Auth0
Auth0 會驗證並授權應用程式和 API,不分識別資訊提供者、平台、堆疊以及裝置。
Auth0 支援許多提供者及安全宣告標記語言規範,並提供後端服務、SDK,以及使用者介面程式庫,可用於驗證網路和行動應用程式使用者。Auth0 整合數個第三方識別資訊提供者,也提供自訂使用者帳戶管理功能。
Auth0 提供的用戶端程式庫會在使用者登入後產生並簽署 JWT。ESP 會驗證 JWT 是由 Auth0 簽署的,且 JWT 中的 iss
憑證附加資訊 (用於辨別您的 Auth0 應用程式) 與服務設定中的 x-google-issuer
設定相符。
用途
Auth0 適用於消費者與企業網站及行動應用程式,詳情請參閱「Auth0」分頁 詳情請參閱使用 Auth0 驗證使用者。
Google ID 憑證驗證
使用 Google ID 憑證進行驗證,可讓使用者透過登入 Google 帳戶進行驗證。驗證完畢後,使用者就可以存取所有 Google 服務。您可以使用 Google ID 憑證來呼叫 Google API 和由 Endpoints 代管的 API。ESP 會使用公開金鑰驗證 Google ID 憑證,並確保 JWT 中的 iss
憑證附加資訊為 https://accounts.google.com
。
用途
如果所有使用者都有 Google 帳戶,建議您使用 Google ID 憑證進行驗證。如果您的 API 範圍包含 Google 應用程式 (例如 Google 雲端硬碟隨附應用程式),您可以選擇使用 Google ID 憑證驗證方式。Google ID 憑證驗證允許使用者透過登入 Google 帳戶進行驗證。驗證完畢後,使用者就可以存取所有 Google 服務。詳情請參閱「使用 Google ID 憑證驗證使用者」。
服務帳戶
如要識別傳送要求到您 API 的服務,您可以使用服務帳戶。呼叫服務會使用服務帳戶的私密金鑰來簽署安全的 JSON Web Token (JWT),並將要求中的已簽署 JWT 傳送到您的 API。
用途
JWT 和服務帳戶非常適合用於微服務。詳情請參閱服務之間的驗證。
自訂驗證
您可以使用其他驗證平台來驗證使用者,只要該平台遵循 JSON Web Token RFC 7519 即可。
詳情請參閱「使用自訂方法來驗證使用者」。