管理員身份驗證 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 管理 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 令牌。

使用自訂聲明控制訪問