Catch up on highlights from Firebase at Google I/O 2023. Learn more

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 ) 的自定義令牌,並將該令牌傳遞給客戶端應用程序,客戶端應用程序將使用它登錄 Firebase。有關代碼示例和有關自定義令牌創建過程的更多詳細信息,請參閱創建自定義令牌。

創建自定義令牌

ID令牌驗證

如果您的 Firebase 客戶端應用程序與您的後端服務器通信,您可能需要識別服務器上當前登錄的用戶,以便您可以代表他們執行服務器端邏輯。您可以使用 ID 令牌安全地執行此操作,該令牌由 Firebase 在用戶登錄 Firebase 應用程序時創建。 ID 令牌符合OpenID Connect 規範並包含用於識別用戶的數據,以及其他一些配置文件和身份驗證相關信息。您可以從自己的後端發送、驗證和檢查這些令牌。這使您可以安全地識別當前登錄的用戶並授權他們進入您自己的後端資源。

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

驗證 ID 令牌

自定義用戶聲明

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

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

使用自定義聲明控制訪問