Admin Auth API 簡介

Firebase Admin SDK可讓您將自己的伺服器與 Firebase Authentication 整合。您可以使用 Firebase Admin SDK 管理使用者或驗證權杖。您可能基於下列原因需要這麼做:

使用者管理

管理Firebase使用者Firebase時,不一定方便前往控制台。管理員使用者管理 API 可讓您以程式輔助方式存取這些使用者。您甚至可以透過這項工具執行 Firebase 控制台無法執行的操作,例如擷取使用者的完整資料,以及變更使用者的密碼、電子郵件地址或電話號碼。

自訂驗證

您可以將外部使用者系統與 Firebase 整合。舉例來說,您可能已有現成的使用者資料庫,或想與Firebase Authentication不支援的第三方身分識別提供者整合。

如要這麼做,您可以建立含有任意聲明的自訂權杖,用來識別使用者。然後,您可以使用這些自訂權杖登入用戶端應用程式的 Firebase Authentication 服務,並採用權杖聲明所描述的身分。存取其他Firebase服務 (例如 Cloud Storage) 時,系統會使用這個身分。

身分驗證

Firebase Authentication 主要用於識別應用程式使用者,以限制存取其他服務 (例如 Cloud Storage)。您也可以使用這項服務,在自己的伺服器上識別這些使用者。這樣一來,您就能代表以 Firebase Authentication 登入的使用者,安全地執行伺服器端邏輯。

如要執行這項操作,您可以從使用 Firebase Authentication 登入的用戶端應用程式擷取 ID 權杖,並在向伺服器提出的要求中加入該權杖。接著,伺服器會驗證 ID 權杖,並擷取可識別使用者的聲明 (包括使用者的 uid、登入時使用的身分識別資訊提供者等)。您的伺服器隨後可使用這項身分資訊,代表使用者執行動作。

Firebase Admin SDK 提供多種方法,可讓您管理使用者、產生自訂權杖及驗證 ID 權杖,完成上述驗證工作。

自訂使用者聲明

在某些情況下,您可能想為已透過支援的Firebase驗證供應商 (例如電子郵件/密碼、Google、Facebook、電話等) 登入的使用者,實作精細的存取權控管。自訂使用者聲明和應用程式安全規則的組合,可提供這項功能。舉例來說,如果使用者透過Firebase Authentication電子郵件和密碼供應商登入,您可以使用自訂聲明定義存取權控管。

使用者管理

Firebase Admin SDK 提供 API,可管理具有提升權限的Firebase使用者。管理員使用者管理 API 可讓您以程式輔助方式擷取、建立、更新及刪除使用者,不必使用現有憑證,也不必擔心用戶端速率限制。

管理使用者

建立自訂權杖

建立自訂權杖的主要用途,是允許使用者透過外部或舊版驗證機制進行驗證。這可能是您控管的項目,例如 LDAP 伺服器,或是原生不支援的第三方 OAuth 供應商,例如 Instagram 或 LinkedIn。Firebase

Firebase Admin SDK 內建建立自訂權杖的方法。您也可以使用第三方程式庫,以任何語言透過程式輔助方式建立自訂權杖。

伺服器應使用專屬 ID (uid) 建立自訂權杖,並將該權杖傳遞至用戶端應用程式,供其登入 Firebase。如需程式碼範例和自訂權杖建立程序的詳細資訊,請參閱「建立自訂權杖」。

建立自訂權杖

驗證 ID 權杖

如果Firebase用戶端應用程式會與後端伺服器通訊,您可能需要在伺服器上識別目前登入的使用者,以便代表他們執行伺服器端邏輯。您可以透過 ID 權杖安全地執行這項操作。當使用者登入應用程式時,Firebase會建立 ID 權杖。ID 權杖符合 OpenID Connect 規格,且包含可識別使用者的資料,以及其他設定檔和驗證相關資訊。Firebase您可以從自己的後端傳送、驗證及檢查這些權杖。這樣一來,您就能安全地識別目前登入的使用者,並授權他們存取自己的後端資源。

Firebase Admin SDK 內建驗證 ID 權杖的方法。您也可以使用第三方程式庫,以任何語言透過程式輔助方式驗證 ID 權杖。如要進一步瞭解 ID 權杖驗證程序,請參閱「驗證 ID 權杖」一文,並查看程式碼範例。

驗證 ID 權杖

自訂使用者憑證附加資訊

您可以使用 Firebase Admin SDK 為使用者帳戶設定自訂屬性。 透過自訂使用者聲明,您可以授予使用者不同層級的存取權 (角色),然後在應用程式的安全規則中強制執行。

透過 Firebase Admin SDK 修改使用者的自訂聲明後,系統會透過 ID 權杖將聲明傳播至用戶端已驗證的使用者。ID 權杖是傳送這些自訂聲明的可信機制,所有經過驗證的存取權都必須先驗證 ID 權杖,才能處理相關要求。

使用自訂聲明控管存取權