本頁面由 Cloud Translation API 翻譯而成。
Switch to English

Admin Auth API簡介

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

用戶管理

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

自訂驗證

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

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

身份驗證

Firebase身份驗證主要用於識別您的應用程序用戶,以限制對其他服務(如雲存儲)的訪問。您還可以使用該服務在您自己的服務器上識別這些用戶。這樣,您就可以代表已使用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令牌安全地執行此操作,ID令牌是在用戶登錄Firebase應用程序時由Firebase創建的。 ID令牌符合OpenID Connect規範,並包含用於標識用戶的數據以及一些其他與配置文件和身份驗證有關的信息。您可以從自己的後端發送,驗證和檢查這些令牌。這使您可以安全地標識當前登錄的用戶,並將其授權到您自己的後端資源中。

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

驗證ID令牌

自定義用戶聲明

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

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

使用自定義聲明控制訪問