Admin Auth API 簡介

Firebase Admin SDK 允許您將自己的服務器與 Firebase 身份驗證集成。您可以使用 Firebase Admin SDK 來管理您的用戶或管理身份驗證令牌。您想要這樣做的原因有很多:

用戶管理

必須訪問 Firebase 控制台來管理您的 Firebase 用戶並不總是很方便。管理員用戶管理 API 提供對這些相同用戶的編程訪問。它甚至允許您執行 Firebase 控制台無法執行的操作,例如檢索用戶的完整數據以及更改用戶的密碼、電子郵件地址或電話號碼。

自定義身份驗證

您可以將外部用戶系統與 Firebase 集成。例如,您可能已經有一個預先存在的用戶數據庫,或者您可能想要與 Firebase 身份驗證本身不支持的第三方身份提供程序集成。

為此,您可以創建具有標識用戶的任意聲明的自定義令牌。然後,這些自定義令牌可用於登錄客戶端應用程序上的 Firebase 身份驗證服務,並採用令牌聲明所描述的身份。然後,在訪問其他 Firebase 服務(例如 Cloud Storage)時將使用此身份。

身份驗證

Firebase 身份驗證主要用於識別您應用的用戶,以限制對其他服務(如 Cloud Storage)的訪問。您還可以使用該服務在您自己的服務器上識別這些用戶。這讓您可以代表已使用 Firebase 身份驗證登錄的用戶安全地執行服務器端邏輯。

為此,您可以從使用 Firebase 身份驗證登錄的客戶端應用程序中檢索 ID 令牌,並將該令牌包含在對您的服務器的請求中。您的服務器然後驗證ID令牌,並提取用於識別用戶的權利(包括其uid ,他們在登錄身份提供商等)。然後,您的服務器可以使用此身份信息代表用戶執行操作。

Firebase Admin SDK 提供了用於完成上述身份驗證任務的方法,使您能夠管理用戶、生成自定義令牌和驗證 ID 令牌。

自定義用戶聲明

在某些情況下,您可能希望為已通過受支持的 Firebase 身份驗證提供商之一(例如電子郵件/密碼、Google、Facebook、電話等)登錄的用戶實施細粒度訪問控制。自定義用戶聲明和應用程序安全性的組合規則提供了這種能力。例如,使用 Firebase 身份驗證電子郵件和密碼提供程序登錄的用戶可以使用自定義聲明定義訪問控制。

用戶管理

Firebase Admin SDK 提供了一個 API,用於管理具有提升權限的 Firebase 用戶。管理員用戶管理 API 使您能夠以編程方式檢索、創建、更新和刪除用戶,而無需用戶的現有憑據,也無需擔心客戶端速率限制。

管理用戶

自定義令牌創建

創建自定義令牌的主要用途是允許用戶根據外部或遺留身份驗證機制進行身份驗證。這可能是您控制的,例如您的 LDAP 服務器,或 Firebase 本身不支持的第三方 OAuth 提供商,例如 Instagram 或 LinkedIn。

Firebase Admin SDK 具有用於創建自定義令牌的內置方法。您還可以使用第三方 JWT 庫以任何語言以編程方式創建自定義令牌。

您的服務器創建一個唯一的標識符(令牌的定制uid ),並通過該令牌的客戶端應用程序,這將使用它來火力地堡簽署。請參閱創建自定義標記的代碼示例和有關自定義令牌創建過程的更多細節。

創建自定義令牌

ID 令牌驗證

如果您的 Firebase 客戶端應用與您的後端服務器通信,您可能需要識別您服務器上當前登錄的用戶,以便您可以代表他們執行服務器端邏輯。您可以使用 ID 令牌安全地執行此操作,ID 令牌是在用戶登錄 Firebase 應用時由 Firebase 創建的。 ID標記符合ID連接規格和包含的數據來識別用戶,以及其他一些輪廓和認證相關的信息。您可以從自己的後端發送、驗證和檢查這些令牌。這允許您安全地識別當前登錄的用戶並授權他們進入您自己的後端資源。

Firebase Admin SDK 具有用於驗證 ID 令牌的內置方法。您還可以使用第三方 JWT 庫以編程方式驗證任何語言的 ID 令牌。見驗證ID的令牌有關ID令牌驗證過程的詳細信息和代碼示例。

驗證 ID 令牌

自定義用戶聲明

Firebase Admin SDK 允許您為用戶帳戶設置自定義屬性。通過自定義用戶聲明,您可以為用戶提供不同級別的訪問權限(角色),然後在應用程序的安全規則中強制執行。

通過 Firebase Admin SDK 修改用戶的自定義聲明後,它們將通過其 ID 令牌傳播到客戶端的經過身份驗證的用戶。 ID 令牌是用於傳遞這些自定義聲明的可信機制,所有經過身份驗證的訪問都必須在處理關聯請求之前驗證 ID 令牌。

使用自定義聲明控制訪問